914
edits
Changes
→Pull requests
==Branches==
* Only new features should be committed to the master branch.
* Only bug fixes should be committed to maintenance branches.
* The current maintenance branch should be merged regularly into the master branch.
* Translations may be committed to any active branch.
==Merging==
* Most changes should be squashed and fast-forwarded.
* Major new features should be merged no-ff to maintain their development identity.
* This applies both to pull requests and to work by developers with write permission to the repository.
==Pull requests==
* Pull requests must be code-reviewed and tested by a developer.
* PR authors should not be assumed to be Git experts, so it's up to the Gramps developer doing the merge to ensure that the PR is clean and won’t make a mess of history.
* The GitHub "Squash and merge" button can be used for most small changes.
* A no-ff merge outside of GitHub should be used when it is useful to keep the commit history.
* Bug fixes must be committed to the current stable branch.
* Only new features should be committed to master directly.
==Log messages==
Every commit to Subversion Git must be accompanied by a log message. These messages will be generated into a ChangeLog when a release is made and should conform to the following guidelines: ===Summary===* The first line of the commit message should consist of a short summary of the change.* Maximum 70 characters.
===Description===* Messages The description should attempt be separated from the summary by a single blank line.* Attempt to describe how the change affects the functionality from the user's perspective.* Use complete sentences when possible.* It is not necessary to describe minute details about the change nor the files that are affected because that information is already stored by SubversionGit and can be viewed with "git diff".* If When committing contributed code, the commit fixes a bug on author should be credited using the [http://bugs.gramps-project.org bug tracker], the log message shall include the bug ID and summary from the tracker-author option.* When committing contributed codeIf you want to refer to another commit, use the log message shall list full commit hash. It will automatically be converted into a hyperlink by the contributor's name and emailGitHub web interface.Note: a 6 hexa digit hash enclosed in brackets WILL NOT WORK with GitHub auto-hyperlinking :-(
To link to a bug or bugs use: * Bug #12345* Issue #12345* Report #12345* Bugs #12345, #67890* Issues #12345, #67890* Reports #12345, #67890 For this to work, either the author or committer will need to be a developer on the Mantis bug tracker. The Git name must match either the Mantis username or real name, or the Git email must match the Mantis email. ==Adding new files=Useful commands===All You can see the files last changes with the translatable strings git log command, an example usage of this command: git log --oneline You can also limit the number of entries shown by passing in the '''-n'''mustflag to git. Add '''--stat''' be listed in to see the po/POTFILES.in file. This means that most new files must have their names added to that file.affected by the commit: git log -5
==Bugfixes in branchesAdding new files==Whenever a bug is fixed in a branch, it is All the files with the committertranslatable strings 's responsibility to make sure ''must''' be listed in the fix is also committed to the trunk<code>po/POTFILES.in</code> or <code>po/POTFILES.skip</code> files. This can be accomplished using one of three methods. All methods require a working copy of trunk and the branchmeans that most new files must have their names added to these files.
[[Category:Developers/General]]