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
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
1. Introduction to
source control with
Domino Designer 8.5.3
and Git
PHL-Consult.dk
info@PHL-Consult.dk
Per Henrik Lausten
November 28, 2012 per.lausten.dk/blog/
twitter.com/perlausten
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. 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. 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. 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. 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
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 don't 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. 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. 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. 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. 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. 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. 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. Questions?
Per Henrik Lausten
per@PHL-Consult.dk
PHL-Consult.dk
per.lausten.dk/blog
@perlausten
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