SlideShare 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
– Github
– Bitbucket
– Redmine
– Etc.
• Many of these have other integrated services
– Issue tracking
– Wikis
– Notification systems
– 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
– SourceTree
– GitKraken
– Git-GUI
– GitHub has one
– Eclipse has integrations
– 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’
– E.g. you have deleted a file, but you ‘add’ it to the stage?
– But the ‘change’ is actually “a file is been deleted”
– So you are adding that ‘change’ in repository state
– 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
– Higher Fidelity, maybe??
• Cons
– Can’t tell what on earth is
different
– Can’t fix merges very easily
Descriptive DXL
• Pros
– Human Readable
– Easier to merge
– Easier to fix Merge Conflicts
• Cons
– 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

PDF
Anatomy of a UI Control - Extension Library Case Study
PPSX
Build automation for XPages - AUSLUG 2015
PDF
Interoperability with Standardless IoT (Global IoT Day Wien)
PPT
Patrick Kelly EDIM510 Podcasting
PDF
Semantic Metastandards will Unlock IoT Interoperability
PDF
Creating Mobile Apps With PHP & Symfony2
PDF
Twitter streamingapi rubymongodbv2
PDF
Culture Hack Day 2011
Anatomy of a UI Control - Extension Library Case Study
Build automation for XPages - AUSLUG 2015
Interoperability with Standardless IoT (Global IoT Day Wien)
Patrick Kelly EDIM510 Podcasting
Semantic Metastandards will Unlock IoT Interoperability
Creating Mobile Apps With PHP & Symfony2
Twitter streamingapi rubymongodbv2
Culture Hack Day 2011

Similar to Using source control for domino development - AUSLUG 2016 (20)

PDF
So what's a web app? introduction to the chrome web store
PDF
Curse of Cardinality: A History and Evolution of Monitoring at Scale
PPTX
Best Practice TLS for IBM Domino
PDF
All about documents in O365 - aOS Singapore 2019
PPTX
APIs in production - we built it, can we fix it?
PDF
TYPO3 CMS 6.2 LTS Workshop T3DD13
PPTX
Defending the Enterprise with Evernote at SourceBoston on May 27, 2015
PDF
ION Belfast - IETF Update - Chris Grundemann
PDF
GDD Brazil 2010 - Google Storage, Bigquery and Prediction APIs
PDF
HTML 5 - The Future is Now
PDF
Technology Enabled Teaching, Learning & Research
PDF
Google Developer Day 2010 Japan: Part 1: Google App Engine for Business の概要 P...
PDF
Green Shoots in the Brownest Field: Being a Startup in Government
PDF
Git tutorial for CS320 Students
PDF
Treasure Data Cloud Strategy
PPTX
ION Sri Lanka - IETF Update
PPTX
Hacktoberfest 2020 - Open source for beginners
PDF
Elastic Data Analytics Platform @Datadog
PPTX
Maximizing the Impact of Institutional Knowledge Using DSpace
PDF
What's Happening at the IETF? Internet Standards and How to Get Involved
So what's a web app? introduction to the chrome web store
Curse of Cardinality: A History and Evolution of Monitoring at Scale
Best Practice TLS for IBM Domino
All about documents in O365 - aOS Singapore 2019
APIs in production - we built it, can we fix it?
TYPO3 CMS 6.2 LTS Workshop T3DD13
Defending the Enterprise with Evernote at SourceBoston on May 27, 2015
ION Belfast - IETF Update - Chris Grundemann
GDD Brazil 2010 - Google Storage, Bigquery and Prediction APIs
HTML 5 - The Future is Now
Technology Enabled Teaching, Learning & Research
Google Developer Day 2010 Japan: Part 1: Google App Engine for Business の概要 P...
Green Shoots in the Brownest Field: Being a Startup in Government
Git tutorial for CS320 Students
Treasure Data Cloud Strategy
ION Sri Lanka - IETF Update
Hacktoberfest 2020 - Open source for beginners
Elastic Data Analytics Platform @Datadog
Maximizing the Impact of Institutional Knowledge Using DSpace
What's Happening at the IETF? Internet Standards and How to Get Involved
Ad

Recently uploaded (20)

PPTX
assetexplorer- product-overview - presentation
PPTX
history of c programming in notes for students .pptx
PPTX
Introduction to Artificial Intelligence
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
System and Network Administration Chapter 2
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
Computer Software and OS of computer science of grade 11.pptx
PDF
Nekopoi APK 2025 free lastest update
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
Reimagine Home Health with the Power of Agentic AI​
PPTX
Transform Your Business with a Software ERP System
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
assetexplorer- product-overview - presentation
history of c programming in notes for students .pptx
Introduction to Artificial Intelligence
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Softaken Excel to vCard Converter Software.pdf
Design an Analysis of Algorithms II-SECS-1021-03
System and Network Administration Chapter 2
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Wondershare Filmora 15 Crack With Activation Key [2025
Computer Software and OS of computer science of grade 11.pptx
Nekopoi APK 2025 free lastest update
Odoo Companies in India – Driving Business Transformation.pdf
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Reimagine Home Health with the Power of Agentic AI​
Transform Your Business with a Software ERP System
2025 Textile ERP Trends: SAP, Odoo & Oracle
VVF-Customer-Presentation2025-Ver1.9.pptx
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Design an Analysis of Algorithms I-SECS-1021-03
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Ad

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 – Github – Bitbucket – Redmine – Etc. • Many of these have other integrated services – Issue tracking – Wikis – Notification systems – 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 – SourceTree – GitKraken – Git-GUI – GitHub has one – Eclipse has integrations – 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’ – E.g. you have deleted a file, but you ‘add’ it to the stage? – But the ‘change’ is actually “a file is been deleted” – So you are adding that ‘change’ in repository state – 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 – Higher Fidelity, maybe?? • Cons – Can’t tell what on earth is different – Can’t fix merges very easily Descriptive DXL • Pros – Human Readable – Easier to merge – Easier to fix Merge Conflicts • Cons – 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