This document outlines a presentation about using source control for Domino development. The presentation covers what source control is, introduces Git and GitHub as tools, and demonstrates how Domino enables source control through its use of XML files. It discusses concepts like staging changes, working directories, and repositories. The presentation also covers how Domino's data structure is similar to Git's underlying concepts and how metadata filtering works in Domino.
1 of 23
Download to read offline
More Related Content
Using source control for domino development - AUSLUG 2016
1. Using Source Control for Domino
Development
Cameron Gregor | Senior Systems Developer
Jord International
www.jord.com.au
Twitter: @gregorbyte
Blog: camerongregor.com
2. March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
Thank you!
For letting me plaguerise Connect 2014 Presentation
3. March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
Goals of this Session
? Raise awareness that you can use Source Control
? Encourage you to assess whether it might be appropriate for you
? Point out some possible Setbacks you might encounter
4. March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
Agenda
¢ What is a SCM (Source Control Manager)
¢ Introduction to Git, Sourcetree and github and other related tools
¢ How does Domino Source Control Enablement work?
¢ DEMO! Using Git + Sourcetree (and maybe Github if the wifi is working)
¢ Questions
5. March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
What is Version Control?
^Version control is a system that records
changes to a file or set of files over time
so that you can recall specific versions
later ̄
6. March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
Distributed vs Centralised
Distributed Version Control
Alice
Bob
Cam
Dave
Centralised Version Control
Authoritive
Central
Repository
Alice
Bob
Cam
Dave
7. March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
Distributed vs Centralised
Distributed Version Control Centralised Version Control
? Git
? Mercurial
? Bazaar
? Darcs
? BitKeeper
? Teamstudio CIAO
? CVS
? Subversion
? Microsoft TFS
? Microsoft Visual Source Safe
? IBM Rational ClearCase
? IBM Rational Team Concert
? Borland StarTeam
8. March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
Git
? git-scm.com
? Written by Linus
Torvalds
? Free!
? Very popular
9. March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
Hosting Repositories on a Server
? Lots of Options
C Github
C Bitbucket
C Redmine
C Etc.
? Many of these have other integrated services
C Issue tracking
C Wikis
C Notification systems
C Etc.
10. March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
Github
11. March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
Graphical User interfaces
? Git is Command line program
? Terminology is strange!
? Use a GUIs to make it simpler
C SourceTree
C GitKraken
C Git-GUI
C GitHub has one
C Eclipse has integrations
C Tower
12. March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
SourceTree
14. March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
Staging - Think in `Changes¨ and not in `Files¨
? The `Stage¨ is a list of `Changes¨ to be made to the repository not a list of `files¨
? When you `add¨ something to the stage, you are adding the `change¨
C E.g. you have deleted a file, but you `add¨ it to the stage?
C But the `change¨ is actually ^a file is been deleted ̄
C So you are adding that `change¨ in repository state
C If you were to `discard¨ the change, it would mean undelete the file
15. March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
Working
Directory
Clean
(Same as Repository,
No Change)
Modified
Deleted
Untracked
(New File)
Ignored
^Staged ̄
Changes
Committed
Versions
Stage Git Repository
CommitAdd
Add
Add
Checkout
Ignore
16. March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
Git Inner Workings similar Concept to Domino
Notes/Domino Git
Storage `Container¨ Database Repository
Records `Notes¨ `Objects¨
ID¨s UNID Hash
Transfer of Records Send / Recieve Push / Fetch
17. March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
DOMINO SOURCE CONTROL
ENABLEMENT
18. March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
Source Control Sync
NSF
On-Disk
Project
19. March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
Domino XML Language
20. March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
Binary DXL vs Descriptive DXL
Binary DXL
? Pros
C Higher Fidelity, maybe??
? Cons
C Can¨t tell what on earth is
different
C Can¨t fix merges very easily
Descriptive DXL
? Pros
C Human Readable
C Easier to merge
C Easier to fix Merge Conflicts
? Cons
C Some Classic Elements lose
data in the round trip!
? ^all day agents ̄ lose there
scheduling, Workaround must
schedule 00:01 to 23:59
? Something to do with navigators
22. March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
DEMO TIME
23. March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
Thank
? Thank you for your time!
? Thank you to the Inform Sponsors for all the nice food and drink!
? Thank you to the AUSLUG Committee!
http://www.auslug.org/survey2016