...
Fine grained commits: Don't commit unrelated changes together with a fix.
Be responsible: Always check what you're committing: make sure you're only committing what you need. Do a svn diff of the files you're going to commit and check the changes.
Never break the build: Do not commit code that would break the compile. Try to build your sources and make sure that you add all the new files before you do a commit.
Document your commit: Always add a message with a meaningful explanation about the commit. If you are fixing a bug, remember to put a link to the bug in Jira.
Committing:
Always mention the JIRA issue that is related to your commit.
Always follow these steps when committing changes:
...
Ex: Justin wants to commit the ability to delete images from slideshows. If that doesn't exist in Jira, he creates a new issue (TH-XXX) and links the main slideshow issue as being dependent on TH-XXX. Then he includes "TH-XXX" somewhere in his commit message.
Merging: a Thalia specific version of the SVN guide
To merge a branch back to the trunk:
1. Check out the trunk.svn checkout svn+ssh://svn.mit.edu/zest/thalia/
laszloui/
thaliatrunk
2. Find out when the branch was created.svn log
--verbose --stop-on-copy svn+ssh://svn.mit.edu/zest/thalia
-/ui/branches/thalia-UI1.0-
sprint1/sprint4 | grep '^r' | tail -n 1
3. Merge branch changes into local copy of trunk (foo == last rev listed by the above svn log).
cd working/copy/of/trunk
svn merge -r foo:HEAD svn+ssh://svn.mit.edu/zest/thalia
-/ui/branches/thalia-UI1.0-
sprint1/sprint4
4. Inspect merged files and resolve conflicts.
5. Commit changes to trunk, noting in the log message the range of revisions merged.
svn commit -m "Merged sprint 1 branch r123 - 456 into trunk."
Note: If a branch was merged with the trunk at some point in the past, foo above is the rev of the last merge. Do a find for "Merged" instead of looking at the end of the log.
Backing out changes:
Given a rev 'foo' that you want to undo:
cd working/copy/
svn merge -c -foo .
svn commit -m "Backing out change foo"
The '-' before foo is important. From svn help merge
:
-c [--change] arg : the change made by revision ARG (like -r ARG-1:ARG)
If ARG is negative this is like -r ARG:ARG-1