Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)


Published on

See my blog post about the presentation:

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)

  1. 1. Introduction to source control with Domino Designer 8.5.3 and Git Per Henrik LaustenNovember 28, 2012
  2. 2. About Per Henrik Lausten● Full-time developer and part-time administrator with my own one-man company● Chairman of NotesNet – an assocation of 25 independent consultants● Member of the board at OpenNTF – open source for IBM Notes/Domino and IBM Connections● Member of the board at DanNotes● Mentor for XPages developers in several companies● Experienced XPages web application developer ● ● ● ● ● ● and more
  3. 3. Agenda● Purpose of source control● Central vs. distributed source control● Distributed source control: terminology● Source control best practices● Source control in DDE 8.5.3● Managing the source code● Tips● Demo: sharing● Demo: cloning
  4. 4. Purpose of source control● For teams and individuals● Tracking and controlling changes● Being able to test new code without risking the integrity of working code● Being able to work on a new version and still being able to support production versions (example: 1.0, 2.0 beta)● Being able to review past changes to isolate regression bugs● When integrated with defect/request tracking can become a self documenting list of change reasons
  5. 5. Central vs. distributed source control Central ● Uses a central repository on a server ● Requires an active network connection to the server ● Higher chance of conflicting changes when committing ● Branching and Merging are more complex ● Central repository always reflects latest version ● Developers need to serialize their work ● Systems: Subversion ( SVN ), CVS, IBM Rational ClearCase, IBM Rational Team Concert, Microsoft Team Foundation Server, and more
  6. 6. Central vs. distributed source control (cont.) Distributed ● Everybody has a working copy of the repository locally on their machine (peer-to-peer approach) ● Committing, branching and merging is all done locally (can work offline) ● Can push and pull changes from any other local or remote repository ● No central repository means no definitive latest version – You can create a server based repository that each person pulls/pushes with – Increases the possibility of merging conflicts ● Developers can work independent of each other and later merge their work ● Systems: Git, Mercurial, and more
  7. 7. Distributed source control: terminology● Committing● Reverting● Branching● Switching● Merging● Tagging● Cloning● Pulling● Pushing
  8. 8. Source control best practices● Commit related changes● Commit often● Don‘t commit half-done work● Test code before you commit● Write good commit messages● Version control is not a backup system (so dont use it for auto- committing on a schedule)● Use branches● Agree on a workflow Source:
  9. 9. Source control in DDE 8.5.3● Team development -> Set Up Source Control for this Application...● This creates an on-disk Eclipse project of the source code in the application (NSF)
  10. 10. Source control in DDE 8.5.3 (continued)● You need to synchronize the application (NSF) source code with the on-disk project (automatic by default)● It is the on-disk project which is under source control management
  11. 11. Managing the source code● Requires a tool ● Can be installed in Domino Designer (as an Eclipse plug-in install) (example tools: Mercurial for Eclipse, SVN for Eclipse, Egit) ● Can be installed outside of Domino Designer (example tools: TortoiseCVS, TortoiseSVN, TortoiseGit, CVS) ● Can even be installed on your Mac if you run Windows in a VM (example tools: Sourcetree, Tower)
  12. 12. Tips● Always use your own COPY of the database to develop in (using a replica or shared DB causes issues)● Your design changes are your own till you pull/merge in other changes● If possible run a local development server and work from that
  13. 13. Demo: sharing● Create application● Create on-disk project● Share on-disk project (initial commit)● Committing additional changes● Editing source code in the on-disk project (outside of DDE)● Adding source code to the on-disk project (outside of DDE)
  14. 14. Demo: cloning● Cloning an existing source controlled project as an on- disk project: Collaboration Today on Github● Import on-disk project into DDE workspace (from Package Explorer)● Associate on-disk project with new NSF
  15. 15. Questions? Per Henrik Lausten @perlausten
  16. 16. Reference● Keith Strickland: source control in DDE ● Part 1: ● Part 2: ● Part 3:● Martin Jinoch: version control for Notes developers:● Martin Jinoch: Using Git with Domino Designer - the hardcore way:● Enrico Campidoglio - Grokking Git by seeing it:● AD102 : Source Control For The IBM Lotus® Domino® Developer by Declan Sciolla-Lynch (Lotusphere 2012)● EGit for IBM Domino Designer:● Wikipedia:● Try Git online:● Book: Pro Git: