In a project me and my colleague faced major complications working towards a GIT repository on TFS. In short: she did not see the changes I had made in her Domino Designer even though her GIT client had transferred everything correctly to the On Disk Project (ODP) on her local drive.
It seemed that the problem was totally focusing on her development setup. For the good order here is how our both environments look like:
- Me: TFS, SourceTree, Domino Designer FP8.
- Colleague: TFS, Visual Studio, Domino Designer FP8.
As a result we are facing major delay in the project because we can’t rely on the setup so we are 50% developer resources short.
So in order to test our bad experiences we sat up a small test with some other colleagues to see if we could reproduce the disruption and allocate where it occurs.
We had no particular test script in mind. We just sat up a new repository on TFS, we cloned it locally with different GIT clients, imported the ODP’s in DDE, created new NSF’s from it and we started to make changes in them.
Luckily for us a new disruption appeared fairly quickly. Changes made by two of my colleagues did not appear in my NSF but they could see each other changes.
It turned out that the changes where in my ODP but DDE was not able to transfer them in the NSF.
Here are some dumps that shows the situation. The use of capitals in the H2 element are not similar.
XPage in DDE:
XPage in ODP Project in DDE:
Same XPage in ODP on local drive:
Removing the imported ODP, removing source control with the NSF, re-importing the ODP in DDE and re-establishing source control for the NSF with the new project caused that I could see the changes in the NSF. However with the next change which a colleague made we were facing the same disruption on my machine.
For us it clear that this is not a work situation we can trust when DDE is not able to make the transition from ODP to NSF.
Have you experienced the same and have you come up with a work-around?
For us it would mean that we can not complete the DevOps chain that is set for development environments…
Did you forget to checkin the .metadata file for the first time? It’s not meant to be synced later but needs to be checked in when it’s created.
what do u exactly mean with check-in for the first time?
what usually helps is refreshing the odp project in DDE after pulling changes from remote repository
I can refresh the ODP project. But HOW can I get the changes in it into the NSF?
What are your colleagues source control preferences? (in file -> preferences -> domino designer -> source control ) are they set to auto import?
do you have build automatically turned on? obviously is right-click Team Development -> Sync with ODP not doing anything?
after refresh the changes are synced (usually)
I see that the ODP does not refresh automatically on all workstations. After I have chosen to refresh the ODP DDE continues to synchronize the changes. But not before that initial refresh. So the point is to refresh the ODP after you have imported it it seems (or before every synchronization).
I also wonder: a refresh seems like a manual action to me. how can I ever get this scripted when using headless designer?
I use my own headless designer plugin in which the build job that i run does a refresh before building. I am pretty close to releasing it, i have been working on it pretty hard for a few weeks. you are welcome to give it a go. I am using Ant as the main build tool so i’m not sure if that is suitable for you
We always use right click / F9 on the ODP in when changes come in via source control. We then sync this to the NSF manually ( We do not enable automatic export of design changes ).
I do find that maybe once a week or once a fortnight I will need to replace the association between the NSF and the ODP to give myself peace of mind that everything is correct. This only takes a few seconds.
The key message is commit little and often, that way you realise that something is not right and you have less conflicts to resolve with other team members.
There are definitely significant annoyances with GIT on Domino ( mostly date stamps on unchanged elements ) but you quickly work around them or use the toolset from Cameron Gregor – http://camerongregor.com/2017/07/21/swiper-official-version-2-release/
I can’t remember what we did before GIT.
The problem lies exactly with the ODP. When I import it and associate it with an NSF DDE imports the design elements. However thereafter DDE is not capable of synchronizing changes from ODP to NSF. If I refresh the ODP DDE is capable of or understands there is a difference. From that initial refresh of the ODP I can synchronize changes made very well but only after that initial refresh. I have noticed that this not the case for all people that participated in the test. So it is pretty workstation specific. The reason for that is unclear. I have upgraded now to Swiper 2.0.1 where at least you have the refresh and refresh and synchronize actions as a menu action/button so the chance is smaller you synchronize without refresh first. But thank you for this suggestion 🙂
there is also a preference under General -> Workspaces (or something like that) which is a checkbox for ‘Refresh workspace automatically’
this will tell designer to monitor the file system for any changes and should refresh the ODP whenever git changes anything
this setting I overlooked and causes the pain