SlideShare a Scribd company logo
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
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
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
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
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
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
Distributed source control: terminology
●
    Committing
●
    Reverting
●
    Branching
●
    Switching
●
    Merging
●
    Tagging
●
    Cloning
●
    Pulling
●
    Pushing
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
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)
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
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)
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
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)
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
Questions?
 Per Henrik Lausten
 per@PHL-Consult.dk
 PHL-Consult.dk
 per.lausten.dk/blog
 @perlausten
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

More Related Content

PPTX
HCL Domino V12 Key Security Features Overview
PDF
Linux Training For Beginners | Linux Administration Tutorial | Introduction T...
PDF
Ubuntu – Linux Useful Commands
PDF
Engage2022 - Domino Admin Tips
PPTX
Blazor.pptx
PPTX
Git and github
PPT
Git vs SVN
PPT
HCL Domino V12 Key Security Features Overview
Linux Training For Beginners | Linux Administration Tutorial | Introduction T...
Ubuntu – Linux Useful Commands
Engage2022 - Domino Admin Tips
Blazor.pptx
Git and github
Git vs SVN

What's hot (20)

PPT
Basic 50 linus command
PDF
Getting Started With Linux Administration
PDF
Alles, was Sie ueber HCL Notes 64-Bit Clients wissen muessen
PDF
Domino Adminblast
PPTX
Li̇nux-101
PDF
The View - Lotusscript coding best practices
PDF
How to think like a computer scientist - Learn with python
PDF
Git for beginners
PDF
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
PPTX
File Transfer Protocol
PDF
TC Flower Offload
PDF
Course 102: Lecture 28: Virtual FileSystems
PPTX
Git - Basic Crash Course
PPTX
Linux Kullanım Rehberi
PDF
Version Control & Git
DOCX
How to create and delete vlan on cisco catalyst switch
PDF
Ftp
PPTX
Git in 10 minutes
PDF
Blazor web apps
PPTX
Enable Domino Data Access Services (DAS)
Basic 50 linus command
Getting Started With Linux Administration
Alles, was Sie ueber HCL Notes 64-Bit Clients wissen muessen
Domino Adminblast
Li̇nux-101
The View - Lotusscript coding best practices
How to think like a computer scientist - Learn with python
Git for beginners
Engage 2018: IBM Notes and Domino Performance Boost - Reloaded
File Transfer Protocol
TC Flower Offload
Course 102: Lecture 28: Virtual FileSystems
Git - Basic Crash Course
Linux Kullanım Rehberi
Version Control & Git
How to create and delete vlan on cisco catalyst switch
Ftp
Git in 10 minutes
Blazor web apps
Enable Domino Data Access Services (DAS)
Ad

Viewers also liked (6)

ODP
MVC and IBM XPages - from #DanNotes in Korsør (DK) 28 November 2013
PDF
Connect2014 BP205: Improving Your IBM Domino Designer Experience
PPTX
An introduction to Git and GitFlow
PDF
Git for IBM Notes Designer
PDF
BLUG 2012 Version Control for Notes Developers
PPT
Git training
MVC and IBM XPages - from #DanNotes in Korsør (DK) 28 November 2013
Connect2014 BP205: Improving Your IBM Domino Designer Experience
An introduction to Git and GitFlow
Git for IBM Notes Designer
BLUG 2012 Version Control for Notes Developers
Git training
Ad

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

PDF
O'Leary - Using GitHub for Enterprise and Open Source Documentation
PDF
Introduction to Git and Github - Google Developer Student Clubs CET, Trivandrum
PPTX
Source control - what you need to know
PPTX
[Mas 500] Software Development Strategies
PPTX
Instant developer onboarding with self contained repositories
PDF
My "Perfect" Toolchain Setup for Grails Projects
PDF
Embedded Linux Build Systems - Texas Linux Fest 2018
PDF
Introduction to Git
PDF
Software Engineering Tools and Practices Learn Git
PDF
Continuous Delivery: 5 years later (Incontro DevOps 2018)
PDF
Achieving Full Stack DevOps at Colonial Life
PDF
VM vs Docker-Based Pipelines
PDF
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
PPTX
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
ODP
Git In One Evening
PDF
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
PDF
Docker based-Pipelines with Codefresh
PPTX
Continuous Integration
PDF
The Evolving Role of Build Engineering in Managing Open Source
PDF
he Future of Continuous Integration in GNOME
O'Leary - Using GitHub for Enterprise and Open Source Documentation
Introduction to Git and Github - Google Developer Student Clubs CET, Trivandrum
Source control - what you need to know
[Mas 500] Software Development Strategies
Instant developer onboarding with self contained repositories
My "Perfect" Toolchain Setup for Grails Projects
Embedded Linux Build Systems - Texas Linux Fest 2018
Introduction to Git
Software Engineering Tools and Practices Learn Git
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Achieving Full Stack DevOps at Colonial Life
VM vs Docker-Based Pipelines
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Git In One Evening
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
Docker based-Pipelines with Codefresh
Continuous Integration
The Evolving Role of Build Engineering in Managing Open Source
he Future of Continuous Integration in GNOME

More from Per Henrik Lausten (9)

PPTX
Introduktion til Twitter for FCNetværk, august 2014
PPTX
Bootstrap4XPages - an introduction
PPTX
An introduction to IBM BlueMix
PPTX
XPages and Java (DanNotes 50th conference, November 2013)
ODP
En fantastisk applikationsserver (Intravision IBM Connect 2013 Update i Århus)
ODP
A powerful web application server (intravision IBM Connect 2013 Update) Febru...
ODP
Intro to XPages for Administrators (DanNotes, November 28, 2012)
ODP
XPages Extension Library - Create an app in 1 hour (almost)
ODP
My view on XPages
Introduktion til Twitter for FCNetværk, august 2014
Bootstrap4XPages - an introduction
An introduction to IBM BlueMix
XPages and Java (DanNotes 50th conference, November 2013)
En fantastisk applikationsserver (Intravision IBM Connect 2013 Update i Århus)
A powerful web application server (intravision IBM Connect 2013 Update) Febru...
Intro to XPages for Administrators (DanNotes, November 28, 2012)
XPages Extension Library - Create an app in 1 hour (almost)
My view on XPages

Recently uploaded (20)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Approach and Philosophy of On baking technology
PDF
Machine learning based COVID-19 study performance prediction
PDF
Empathic Computing: Creating Shared Understanding
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
KodekX | Application Modernization Development
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Cloud computing and distributed systems.
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Big Data Technologies - Introduction.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Approach and Philosophy of On baking technology
Machine learning based COVID-19 study performance prediction
Empathic Computing: Creating Shared Understanding
Network Security Unit 5.pdf for BCA BBA.
Unlocking AI with Model Context Protocol (MCP)
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Review of recent advances in non-invasive hemoglobin estimation
Building Integrated photovoltaic BIPV_UPV.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
KodekX | Application Modernization Development
Advanced methodologies resolving dimensionality complications for autism neur...
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Cloud computing and distributed systems.
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
MYSQL Presentation for SQL database connectivity
Big Data Technologies - Introduction.pptx

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
  • 7. Distributed source control: terminology ● Committing ● Reverting ● Branching ● Switching ● Merging ● Tagging ● Cloning ● Pulling ● Pushing
  • 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