Committing your code to SVN

If you want to commit new code to MercuryDPM, follow these steps.

  1. 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.
  2. 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
  3. 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
  4. 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'
  5. 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'