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

9,889 views

Published on

See my blog post about the presentation:
http://per.lausten.dk/blog/2012/11/source-control-with-domino-designer-8-5-3-and-git-my-talk-at-dannotes-november-2012.html

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
9,889
On SlideShare
0
From Embeds
0
Number of Embeds
2,640
Actions
Shares
0
Downloads
87
Comments
0
Likes
3
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 PHL-Consult.dk info@PHL-Consult.dk Per Henrik LaustenNovember 28, 2012 per.lausten.dk/blog/ twitter.com/perlausten
  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 ● startdithjerte.dk ● mediaplus.dk ● cbbpremiumpro.dk ● collaborationtoday.info ● sherlockapp.dk ● 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: http://www.git-tower.com/files/cheatsheet/Git_Cheat_Sheet_grey.pdf
  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 https://github.com/OpenNTF/collaborationtoday● Import on-disk project into DDE workspace (from Package Explorer)● Associate on-disk project with new NSF
  15. 15. Questions? Per Henrik Lausten per@PHL-Consult.dk PHL-Consult.dk per.lausten.dk/blog @perlausten
  16. 16. Reference● Keith Strickland: source control in DDE ● Part 1: http://xprentice.gbs.com/A55BAC/keithstric.nsf/default.xsp?documentId=B236F39DEAF6C52F85257A72001157BF ● Part 2: http://xprentice.gbs.com/A55BAC/keithstric.nsf/default.xsp?documentId=B5D76A6DA163DCB585257A7C004802B ● Part 3: http://xprentice.gbs.com/A55BAC/keithstric.nsf/default.xsp?documentId=C2C46D278948A24985257A7D0055D25● Martin Jinoch: version control for Notes developers: http://jinoch.cz/my-blug-presentation-version-control● Martin Jinoch: Using Git with Domino Designer - the hardcore way: http://jinoch.cz/using-git-domino-designer-hardcore-way● Enrico Campidoglio - Grokking Git by seeing it: http://vimeo.com/52633764#at=0● AD102 : Source Control For The IBM Lotus® Domino® Developer by Declan Sciolla-Lynch (Lotusphere 2012)● EGit for IBM Domino Designer: http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&documentId=D1668ED7018AA0858625● Wikipedia: http://en.wikipedia.org/wiki/Revision_control● Try Git online: http://try.github.com/● Book: Pro Git: http://git-scm.com/book

×