際際滷

際際滷Share a Scribd company logo
Using Source Control for Domino
Development
Cameron Gregor | Senior Systems Developer
Jord International
www.jord.com.au
Twitter: @gregorbyte
Blog: camerongregor.com
March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
Thank you!
For letting me plaguerise Connect 2014 Presentation
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
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
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 ̄
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
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
March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
Git
? git-scm.com
? Written by Linus
Torvalds
? Free!
? Very popular
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.
March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
Github
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
March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
SourceTree
March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
Git Concept
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
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
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
March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
DOMINO SOURCE CONTROL
ENABLEMENT
March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
Source Control Sync
NSF
On-Disk
Project
March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
Domino XML Language
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
March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
Metadata Filtering
March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016
DEMO TIME
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

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
  • 13. March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016 Git Concept
  • 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
  • 21. March 10th & 11th, Sydney, AustraliaMeet.Share.Learn.Connect @AusLUG #@Inform2016 Metadata Filtering
  • 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