Dear Wiki user, You have subscribed to a wiki page or wiki category on "Cassandra Wiki" for change notification.
The "HowToContribute" page has been changed by JonathanEllis. The comment on this change is: add section on svn merging. http://wiki.apache.org/cassandra/HowToContribute?action=diff&rev1=33&rev2=34 -------------------------------------------------- 1. If not, create a ticket describing the change you're proposing in the issue tracker 1. Check out the latest version of the source code * svn checkout http://svn.apache.org/repos/asf/cassandra/trunk cassandra-trunk - or + . or * git clone git://git.apache.org/cassandra.git 1. Modify the source to include the improvement/bugfix * Verify that you follow Cassandra's CodeStyle. @@ -37, +37 @@ ''Note: If you're setup with both the Thrift and Avro dependencies, you can run all of the tests by simply typing `nosetests` from the top-level directory'' === Running the code coverage task === - 1. Unzip this one: http://sourceforge.net/projects/cobertura/files/cobertura/1.9.4.1/cobertura-1.9.4.1-bin.zip/download 1. `ant codecoverage -Dcobertura.dir=/path/to/cobertura` 1. `/path/to/cobertura/cobertura-report.sh --destination build/cobertura/html source code src/java` @@ -49, +48 @@ == IDE == * [[RunningCassandraInIDEA]] - * [[RunningCassandraInEclipse]] + * RunningCassandraInEclipse * IntelliJ Project Settings: * Main Class for Thrift: org.apache.cassandra.thrift.CassandraDaemon (Used to be org.apache.cassandra.service.CassandraDaemon ) * Main Class for Avro: org.apache.cassandra.avro.CassandraDaemon (Exprimental, introduced in 0.6) @@ -99, +98 @@ git config svn.authorsfile ".git/authors.txt" git svn init --prefix=origin/ --branches=branches https://svn.apache.org/repos/asf/cassandra }}} + == Committing == + Got commit access? Outstanding! Here are the conventions we follow. + * Commit messages take the form of + {{{ + <explanation> + patch by <author>; reviewed by <committer> for CASSANDRA-<ticket> + }}} + * When committing to multiple branches, start with the most-stable and merge forwards. For instance, if you had a fix to apply to 0.6, 0.7, and trunk, you would first commit to 0.6. Then, from your 0.7 branch checkout, you would run "svn merge https://svn.apache.org/repos/asf/cassandra/branches/cassandra-0.6", resolve any conflicts, and commit. Then, from your trunk checkout, you would run "svn merge https://svn.apache.org/repos/asf/cassandra/branches/cassandra-0.7", again resolve conflicts, and commit. + + See http://video.google.com/videoplay?docid=-577744660535947210 for an in-depth explanation of why fixes should be merged forwards from more-stable branches, rather than backported from trunk. + + This workflow also makes it so svn knows what commits have been made to earlier branches but not to trunk: if you forget to merge a fix immediately, the next time someone goes to merge from the branch, svn will incorporate the forgotten ones too. +
