Changeset 394 for trunk/README.developer

Jun 25, 2007, 9:37:08 PM (16 years ago)
Jari Häkkinen

Fixes #202. wiki developer information moved to README.developer.

1 edited


  • trunk/README.developer

    r388 r394  
    55This file contains developer specific information.
     8=== Coding style ===
     10Developers should follow the coding style outlined in the
     11[ C++ coding guidelines].
     14=== Subversion usage ===
     16Commits should be minimalistic and the projects should always compile
     17(`make` and `make test`) when someone makes a clean checkout. There is
     18a short introduction to subversion and its usage available as
     19[ Subversion guidelines].
     20We follow these guidelines.
    723=== bootstrap ===
    1430to setup autoconf files.
    1633=== configure ===
    2441additional tests. All tests are not enabled by default since some of
    2542the tests depend on being run from a subversion WC.
     45=== Testing ===
     47Test programs should be created and added to the `make check`
     48execution. Always check that the test runs before committing code to
     49the repository, i.e., run `make check`.
     51There is a test repository in source:trunk/test/repo that is a part of
     52the svndigest repository. The logic behind this is that it is nice to
     53have a common test repository that can be used off-line. Changes to
     54the repository are usually made to create new test cases and it is
     55important that these changes are committed to svndigest repository as
     56well. All changes to the test repository are not automatically
     57propagated to the svndigest repository and it is important that some
     58files created in the test repository are manually added to the
     59svndigest repository. Assuming that `make check` is run before a
     60commit, a warning is generated if the test repository is inconsistent
     61with the svndigest repository. There will be a diagnostic message and
     62a resolution hint, however the developer must examine and resolve the
     63problem manually.
     65The problem is simply that the file source:trunk/test/repo/db/current
     66is changed compared to the svndigest repository. The `current` file
     67indicates a specific number of change sets within the test repository
     68and the directories source:trunk/test/repo/db/revs and
     69source:trunk/test/repo/db/revprops contains a matching number of
     70change sets. However, the change sets added to the test repository are
     71not automatically added to the svndigest repository, therefore the new
     72files in the `revs` and `revprops` directories must be added manually
     73to the svndigest repository.
     75There is also a race condition when developers make changes to the
     76test repository simultaneously: It is easy to create severe conflicts
     77in the test repository. Imaging the case when two developers adds test
     78commits to the test repository, and then tries to add these to the
     79svndigest repository. Since there are different versions of the same
     80test repository revisions, the second developer committing to the
     81svndigest will get messages about files being in the way. This is just
     82one situation with possible conflicts. This conflict is of course
     83resolved by the second developer having to throw away his changes and
     84redo them after a new checkout of the test repository.
     86The take home message is that developers should communicate with each
     87other when changing the test repository in order to avoid to large
     88repository conflicts. AND read the output of `make check`.
    2791=== Create a distribution ===
    44 Also see
     108== Releasing ==
    48115Copyright (C) 2006 Jari Häkkinen
    49 Copyright (C) 2007 Jari Häkkinen Peter Johansson
     116Copyright (C) 2007 Jari Häkkinen, Peter Johansson
    51118This file is part of svndigest,
Note: See TracChangeset for help on using the changeset viewer.