Question

We want to use Version Control System in our application development process. But we have serious problem that make using version control systems impossible for us.

We have applications on server and we want to modify them with controlling all changes in version control system, for example SVN. One of developers makes on-disk project and then shares it in repository. Then other developers check out this project. Before this all things goes well.

Every design element have two properties called 'modified':

  • modified (initially);
  • modified (In this file).

For unknown reasons these properties may be different in one replica. When one developer make changes, "modified (initially)" datetime sets in his on-disk project, but in other developers on-disk projects sets "modified (In this file)" datetime. For example:

  1. From Modified (initially): <modified><datetime>20131114T120023,10+04</datetime></modified>
  2. From Modified (In this file): <modified><datetime>20131114T120025,04+04</datetime></modified>

As a result we have DIFFERENT on-disk projects from the SINGLE nsf application. Version control turns to constant struggle with conflicts.

Is it possible to solve this problem? Or there's only one possibility to use local copies\replicas for each developer?

Thank you for any help!

Was it helpful?

Solution

You should not have several people keeping on-disk projects based on the same nsf. This will unavoidably lead to conflicts and lots and lots of pain.

What you want to do is to have each developer make his own local copies of the Notes databases. The local copies can then be associated with on-disk projects, which are kept under source control. The developers synchronize code between each other through the source control system, and code is pushed to the server by replacing design with that of the local copy.

For a detailed explanation and example (using Git instead of SVN, but the principle is the same) see How to incorporate version control (Git) in a large Lotus Notes project

Also take a look at this presentation by Per Henrik Lausten on using source control with Domino Designer. Be sure to read the discussion below the presentation as well, as it contains some useful clarifications.

Note that you may still get synchronization conflicts because of DXL metadata in the source files, such as the modified and lastaccessed tags. This is not something you should worry about. However it is annoying, as it clutters the change history/diff badly. If you were using Git instead of SVN, you could use a tool called DORA to filter these out, giving you cleaner diffs that show no useless metadata changes. I do not know of a similar tool for SVN, unfortunately.

OTHER TIPS

Apologies for the time lapse in posting this, just saw the question today. Team Studio (www.teamstudio.com) has a module built specifically for Domino versioning control: CIAO. This is not an Open Source solution but it is built specifically for the Notes/Domino platform but if management has spent the $s investing in the Domino platform, they should also invest in the tools that allow a development team to do parallel development on the same project. You should also take look at some of their other tools as well: Design Manager, Configurator and Delta as invaluable tools for Domino developers. Code Snippets also allows you to easily reuse code.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top