If you want to commit new code to MercuryDPM, follow these steps.
- Update your svn repository to the latest version of Mercury. This ensures that you have no conflicts with the changes other people have made since you last checked out.
$ cd MercurySource
$ svn up
Updating '.':
U Drivers/MercurySimpleDemos/CMakeLists.txt
A Documentation/Pages/DoxygenDocumentationForDummies.dox
Updated to revision 1556.
If you do get conflicted files, read the svn manual to find out how to resolve these conflicts.
- Check your changes; you can use svn status to see which files have changed,
$ svn status
M Documentation/Pages/DevelopersGuide.dox
Use svn diff to see which changes you have made to each file and review them. A full list of svn commands can be found using svn help. $ svn diff Documentation/Pages/DevelopersGuide.dox
Index: Documentation/Pages/DevelopersGuide.dox
===================================================================
@@ -236,36 +236,62 @@
-## Submitting your code to SVN
+# Committing your code to SVN
- Test have to be run before any new feature is committed, and return a positive result. Any commit that breaks one or more tests is a violation of the MercuryDPM coding standard, and is punishable by a round of beers to all other developers. To execute all test, run the following command before committing:
$ cd MercuryBuild
$ make fullTest
- Write a message detailing your changes, and submit:
$ more file
Feature finished: Mercury Logger
-I have adapted the logger such that it works now fully as it should
-Asserts will be handled by the logger using logger.assert_debug(..) and logger.assert_always(..)
-Only ExtendedMath MatrixSymmetric and NumericalVector contained asserts, they have been rewritten to the logger.assert
$ svn commit -F file
Alternatively, use a simple message string, $ svn commit -m 'MDPM-116 #resolve #comment Updating instructions on how to submit to MercuryDPM to the Code Developer Guidelines'
- Jira markups: If the change concerns a specific jira job, mention the job number in the message; you can also pass commands like #resolve to jira, so the job is automatically closed. Examples:
$ svn commit -m 'MDPM-116 #resolve #comment Updating instructions on how to submit to MercuryDPM to the Code Developer Guidelines'
$ svn commit -m 'Updating instructions on how to submit to MercuryDPM to the Code Developer Guidelines #MDPM-43'