Difference between revisions of "Committing policies"
(Change from using ChangeLog files to Subversion log messages.) |
(Add more information about merging) |
||
Line 10: | Line 10: | ||
==Bugfixes In Branches== | ==Bugfixes In Branches== | ||
− | Whenever a bug is fixed in a branch, it | + | Whenever a bug is fixed in a branch, it is the committer's responsibility to make sure the fix is also committed to the trunk. This can be accomplished using one of three methods. All methods require a working copy of trunk and the branch. |
− | You | + | ;Using svn merge |
− | + | The most common way to move changes between branches is by using the svn merge command. Assuming you have a working copy of trunk in ~/gramps/trunk and a working copy of the 3.0 branch in ~gramps/gramp30: | |
− | + | gramps30$ svn commit | |
+ | gramps30$ cd ../trunk | ||
+ | trunk$ svn merge -c REVISION https://gramps.svn.sourceforge.net/svnroot/gramps/branches/gramps30 | ||
+ | trunk$ svn commit | ||
+ | |||
+ | ;Using svn diff | ||
+ | You can also create a patch on gramps30 branch and apply it to trunk: | ||
+ | gramps30$ svn diff -r PREV > ~/mypatch.patch | ||
+ | gramps30$ cd ../trunk | ||
trunk$ patch -p0 < ~/mypatch.patch | trunk$ patch -p0 < ~/mypatch.patch | ||
Then you may have to fix things that could not be applied due to conflicts. The patch program would mark the conflicts with the <<<<<<, ======, and >>>>>> signs. You will then need to commit your changes: | Then you may have to fix things that could not be applied due to conflicts. The patch program would mark the conflicts with the <<<<<<, ======, and >>>>>> signs. You will then need to commit your changes: | ||
trunk$ ./svnci | trunk$ ./svnci | ||
+ | |||
+ | ;Manually | ||
+ | Make the change in the branch. Commit the change to the branch. | ||
+ | |||
+ | Make the change in trunk. Commit the change to trunk. | ||
More info: http://svnbook.red-bean.com/ | More info: http://svnbook.red-bean.com/ |
Revision as of 03:51, 10 March 2008
Adding New Files
All the files with the translatable strings must be listed in the po/POTFILES.in file. This means that most new files must have their names added to that file.
All the files that need to be released must be listed in the Makefile.am in the same directory. Please remember to do this for new files that you add to SVN.
You'll also need to set several properties for new files. For .py files, try the following:
svn propset svn:mime-type text/plain src/somefile.py svn propset svn:eol-style native src/somefile.py svn propset svn:keywords 'Id' src/somefile.py
Bugfixes In Branches
Whenever a bug is fixed in a branch, it is the committer's responsibility to make sure the fix is also committed to the trunk. This can be accomplished using one of three methods. All methods require a working copy of trunk and the branch.
- Using svn merge
The most common way to move changes between branches is by using the svn merge command. Assuming you have a working copy of trunk in ~/gramps/trunk and a working copy of the 3.0 branch in ~gramps/gramp30:
gramps30$ svn commit gramps30$ cd ../trunk trunk$ svn merge -c REVISION https://gramps.svn.sourceforge.net/svnroot/gramps/branches/gramps30 trunk$ svn commit
- Using svn diff
You can also create a patch on gramps30 branch and apply it to trunk:
gramps30$ svn diff -r PREV > ~/mypatch.patch gramps30$ cd ../trunk trunk$ patch -p0 < ~/mypatch.patch
Then you may have to fix things that could not be applied due to conflicts. The patch program would mark the conflicts with the <<<<<<, ======, and >>>>>> signs. You will then need to commit your changes:
trunk$ ./svnci
- Manually
Make the change in the branch. Commit the change to the branch.
Make the change in trunk. Commit the change to trunk.
More info: http://svnbook.red-bean.com/
Log Messages
Every commit to Subversion 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:
- Messages should attempt to describe how the change affects the functionality from the user's perspective.
- It is not necessary to describe minute details about the change nor the files that are affected because that information is already stored by Subversion.
- If the commit fixes a bug on the bug tracker, the log message shall include the bug ID and summary from the tracker.
- When committing contributed code, the log message shall list the contributor's name and email.