1

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!

romuland
  • 13
  • 4
  • This seems to suggest that you are trying to use version control on machine-generated artefacts. This is usually a bad idea (but then you apparently bought into bad ideas already when Lotus Notes first entered the picture ...) You may be able to work around this by filtering your check-ins so that these attributes are always normalized by a dedicated script. Look at [`svn` hooks](http://svnbook.red-bean.com/nightly/en/svn.reposadmin.create.html). – tripleee Nov 14 '13 at 09:38
  • A big problem with version control in Lotus Notes is that metadata for certain source files is kept within the source file itself. It is horrible, but when you are stuck with Lotus Notes, you have to learn to live with it. Filtering the files so that the metadata is ignored by the source control is a good idea if you can make it work. – Øystein Grande Jaren Nov 14 '13 at 10:40
  • possible duplicate of [Best practices for version control for Lotus Notes/Domino development](http://stackoverflow.com/questions/285503/best-practices-for-version-control-for-lotus-notes-domino-development) – alroc Nov 14 '13 at 13:45
  • You may want to consider abandoning SVN for this usage and instead find a VCS that's designed specifically for Notes/Domino. – alroc Nov 14 '13 at 13:46
  • @ØysteinJarenSamuelsen Changing the entire platform is just a *little* outside the scope of the question & SO in general – alroc Nov 14 '13 at 14:23
  • 1
    Or consider abandoning Notes/Domino and instead find a platform that supports modern version control tools, not to mention modern development practices in general. – Øystein Grande Jaren Nov 14 '13 at 14:31
  • @alroc Yes, I know. I just couldn't resist. Lotus Notes has been giving me a particularly bad day today. ;) – Øystein Grande Jaren Nov 14 '13 at 14:36

2 Answers2

3

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.

Community
  • 1
  • 1
  • Thank you for you reply! It's sadly that no simple way to do version control. – romuland Nov 14 '13 at 10:54
  • Indeed. I won't say it's more trouble than it's worth, but it is certainly more trouble than it should be. Lotus Notes is a painful platform for developers coming from more modern alternatives. These developers don't choose to use Lotus Notes. They are typically stuck with it. Don't get me wrong; there may be positive aspects to Lotus Notes, but from a developer's perspective it feels frustratingly outdated. – Øystein Grande Jaren Nov 14 '13 at 12:39
-2

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.

  • This seems like more of an ad than an answer to the question – fejese Apr 16 '14 at 18:02
  • Not meant as advert, I am not associated in any way with Team Studio. It is simply the best solution I have found for source control in Domino. – user3542315 Aug 10 '18 at 18:32