This forum is closed to new posts and responses. Individual names altered for privacy purposes. The information contained in this website is provided for informational purposes only and should not be construed as a forum for customer support requests. Any customer support requests should be directed to the official HCL customer support channels below:

HCL Software Customer Support Portal for U.S. Federal Government clients
HCL Software Customer Support Portal



Feb 12, 2012, 3:04 PM
18 Posts

Would anyone like to help with a collaborative project on Source Control Best Practice ?

  • Category: Source Control Management
  • Platform: All
  • Release: 8.5.3
  • Role: Developer
  • Tags: GIT,Hg,Source Control
  • Replies: 9
Hello Everyone,
 
I am trying to implement source control on 853 using EGIT from openntf. I have the basics working but if this is to be an efficient way of working the detail has to be right as well.
 
I wanted to start a thread here as there must be other people trying to do this and I for one have not been finding it straight forward. 
This is important to me so I am happy to write up the process as a blog post and Developer Works Wiki Article when it is done but i want to make sure that what I am doing works and is indeed best practice.
 
 
Resources : 
 
 
 
 
GIT or Hg ? 
 
David Leedy asked an interesting question. Given that there is much more documentation for Domino and Hg would that not be a better choice ?
 
 
The environment I am using : 
 
I am using 853 and bitbicket.org as a repository. Bitbucket, as far as I can see, seems to offer the best hosted environment for a small dev shop ( <= 5 users ) 
I have also installed git on a server in-house but am not using that at the moment. 
 
Progress to date :
 
I have installed EGit into Designer 853 
I have successfully committed a database 
I have successfully pushed a database to the remote repository 
 
Issues to Date :
 
There were some minor issues around the install but these were easily fixed by setting the "Enable Eclipse Plug in Install" in the Designer preferences ( see document )
 
1) When pushing to the repository ( using https ) the application will not store my password so it has to be added each time. This is a double problem because it stops you using the predifined remote source functionality which saves you from setting a lot of properties in the wizard. 
 
2)  I have tried using SSH key authentication but I cannot get this to work. I have tried the method in the "setting up git" link above but from what I can see Eclipse would normally have SSH settings of its own which are not exposed in DDE / EGit.
 
3) I am unsure of the best practice for a new developer cloning / branching a project. In Declan's slides for Mercurial there is an option in package explorer. In EGit there is an option to clone a repository which works well but then I am unsure as to how to align this with an actual nsf database and on disc project
 
Why have I chosen this forum for this initiative ?
 
My understanding of best practice is not good enough to commit this as a wiki article. 
It needs to be a richer conversation than we could have in Stack Overflow 
This forum seems ideal 
 
Thanks for reading Sean 
 
my contact details => sean ' at' seancull.co.uk , sean.cull.focul on skype and seancull on twitter
 
 
Feb 12, 2012, 3:32 PM
586 Posts
Re: Would anyone like to help with a collaborative project on Source Control Best Practice...
 3) I am unsure of the best practice for a new developer cloning / branching a project. In Declan's slides for Mercurial there is an option in package explorer. In EGit there is an option to clone a repository which works well but then I am unsure as to how to align this with an actual nsf database and on disc project
 
Is it any different them Hg?  Where you can create a clone of the project to your On Disk project and then build the NSF from that..  I demo'd this at the end of NotesIn9 041.  Whether that's a best practice or not I do not know.  
 
 
Feb 12, 2012, 4:08 PM
9 Posts
Re: Would anyone like to help with a collaborative project on Source Control Best Practice...
 Sean, are you using the latest version of EGit for Designer? I posted a new version a few days ago that was updated to EGit/JGit 1.3 instead of 0.9.
Feb 12, 2012, 5:18 PM
6 Posts
Re: Would anyone like to help with a collaborative project on Source Control Best Practice...
I think I can help you with the best practises, version control (now also in LN) is one of my big interests.
Feb 12, 2012, 5:55 PM
18 Posts
Re: Would anyone like to help with a collaborative project on Source Control Best Practice...
 Hi Nathan, yes I am using the latest. I reverted to an earlier version but it had the same issues so I upgraded to your latest again.
Feb 13, 2012, 8:24 AM
170 Posts
Re: Would anyone like to help with a collaborative project on Source Control Best Practice...
This would be very much needed, before starting to use this in a Domino Team you need a guide on what does what.
 
These are some of the things I would like to see in a guide. 
 
* What is the way to do stuff, setup of development environment (personal servers, personal developer databases)?
* How should the developers do Push and Pull? 
* What happends when two developers change the same things (resolving conflicts)?
* How to revert to an old version? 
* How to work with branches? 

Feb 13, 2012, 11:00 AM
4 Posts
Re: Would anyone like to help with a collaborative project on Source Control Best Practice...

Hi Sean,

Would be glad to collaborate.  Doing some process work now for a small development team.

We are using GITHub but theres nothing specific in the process to GitHub.

So far I have tackled:

Brand New Database - putting it under source control, creating the remote repo, doing multiple commits, creating readme.textile documents (that might be GIT specific) and pushing to the remote rep.  We are using the readme as the control to indicate if the application is currently under development.  I know theoretically that doesn't matter.

Existing Database not currently under source control - this is probably the most common initially.  I covered the things above but also creating a Master Baseline version then creating a DEV or BUG branch, working on those branches and then merging them back to the master once changes are live and tested.  Other things came up = if you create the new branch you should push immediately to the remote - this way theres an indicator that a team member is working on a new branch.  Also commit messages - the visual whats changed view doesn't really work for Design elements so the commit messages should include descriptions.

Existing Database under source control - similar to the above but in this case no Master baseline required - instead straight into a new branch, slight change here is the local working version for this developer would be in the own working folder on the Dev server.  Rather than having 1 development version on the box, theres now a working version per developer.

Still a newbie when it comes to source control - I haven't looked at Patches, rebasing, roll backs etc, I intend to ;-)

Theres also gotchas around DDE - for instance if your using working sets then the on disk version doesn't get added and the default view doesn't allow you to add it - switching to the properties view does.

Trying to work on some interesting diagrams.

Mark

Feb 13, 2012, 11:23 AM
4 Posts
Re: Would anyone like to help with a collaborative project on Source Control Best Practice...

Sean, I might be able to help. I could write some doc how to use GitHub. I've just created my first GitHub project with a test NSF: https://github.com/nheidloff/GitHubTest

I've used GitBash to synch the files. In Designer I've imported my on disk project without checking "copy files to workspace".

From looking at it for 5 mins only GitGUI looks not that promising.

Feb 13, 2012, 6:42 PM
6 Posts
Re: Would anyone like to help with a collaborative project on Source Control Best Practice...
while branching and merging can be done from DDE using EGit plugin, I strongly recommend to use command line interface. There is Git for Windows project, go grab latest release, install it and start using Git Bash http://code.google.com/p/msysgit/downloads/list?can=3&q=official+Git 
Command line makes it easier to understand (at least for me) what is really going on.
also, there is a great book available to help users with Git http://progit.org/
Feb 13, 2012, 9:51 PM
18 Posts
Re: Would anyone like to help with a collaborative project on Source Control Best Practice...
Thanks so far everyone,  I just want to give this a couple of more days before I kick off the next stage.
 
Not really sure what that is yet,  I would like to try and keep using the forum for a while - I can send out a daily email of updates if that helps people.
 
I would like to avoid a persistent skype chat as the thread quickly becomes useless. A bit further down the road we can use a dedicated Domino wiki or IBM docs Beta https://greenhouse.lotus.com/wpsgh/wcm/connect/lotus+greenhouse/lotus+greenhouse+next+site/home/labs/ibm+docs+
 
I will probably try and catch each of you individually and pull a document together on who has managed what and who is interested in what in terms of functionality.
 
I think there will be a range of requirements from "command line types" through to "GUI types" and from solo developers through to teams.
 
Thanks, Sean 
 


This forum is closed to new posts and responses. Individual names altered for privacy purposes. The information contained in this website is provided for informational purposes only and should not be construed as a forum for customer support requests. Any customer support requests should be directed to the official HCL customer support channels below:

HCL Software Customer Support Portal for U.S. Federal Government clients
HCL Software Customer Support Portal