SlideShare uma empresa Scribd logo
1 de 16
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

Mais conteúdo relacionado

Mais procurados

IBM Notes Traveler Best Practices
IBM Notes Traveler Best PracticesIBM Notes Traveler Best Practices
IBM Notes Traveler Best Practices
jayeshpar2006
 
RESTful services on IBM Domino/XWork
RESTful services on IBM Domino/XWorkRESTful services on IBM Domino/XWork
RESTful services on IBM Domino/XWork
John Dalsgaard
 
DominoMigrationProposal
DominoMigrationProposalDominoMigrationProposal
DominoMigrationProposal
Lynn Levash
 
Domino OSGi Development
Domino OSGi DevelopmentDomino OSGi Development
Domino OSGi Development
Paul Fiore
 
Configuring Domino To Be An Ldap Directory And To Use An Ldap Directory
Configuring Domino To Be An Ldap Directory And To Use An Ldap DirectoryConfiguring Domino To Be An Ldap Directory And To Use An Ldap Directory
Configuring Domino To Be An Ldap Directory And To Use An Ldap Directory
Edson Oliveira
 

Mais procurados (20)

dominocamp2022.t1s1.dde.pptx
dominocamp2022.t1s1.dde.pptxdominocamp2022.t1s1.dde.pptx
dominocamp2022.t1s1.dde.pptx
 
Great new Domino features since 9.0.1FP8 - 2023 Ed.pptx
Great new Domino features since 9.0.1FP8 - 2023 Ed.pptxGreat new Domino features since 9.0.1FP8 - 2023 Ed.pptx
Great new Domino features since 9.0.1FP8 - 2023 Ed.pptx
 
Domino Server Health - Monitoring and Managing
 Domino Server Health - Monitoring and Managing Domino Server Health - Monitoring and Managing
Domino Server Health - Monitoring and Managing
 
HTTP - The Other Face Of Domino
HTTP - The Other Face Of DominoHTTP - The Other Face Of Domino
HTTP - The Other Face Of Domino
 
Everything You Need to Know About HCL Notes 14
Everything You Need to Know About HCL Notes 14Everything You Need to Know About HCL Notes 14
Everything You Need to Know About HCL Notes 14
 
RNUG - HCL Notes V11 Performance Boost
RNUG - HCL Notes V11 Performance BoostRNUG - HCL Notes V11 Performance Boost
RNUG - HCL Notes V11 Performance Boost
 
IBM Notes Traveler Best Practices
IBM Notes Traveler Best PracticesIBM Notes Traveler Best Practices
IBM Notes Traveler Best Practices
 
HCL Notes and Nomad Troubleshooting for Dummies
HCL Notes and Nomad Troubleshooting for DummiesHCL Notes and Nomad Troubleshooting for Dummies
HCL Notes and Nomad Troubleshooting for Dummies
 
Access Data from XPages with the Relational Controls
Access Data from XPages with the Relational ControlsAccess Data from XPages with the Relational Controls
Access Data from XPages with the Relational Controls
 
XPages Performance
XPages PerformanceXPages Performance
XPages Performance
 
RESTful services on IBM Domino/XWork
RESTful services on IBM Domino/XWorkRESTful services on IBM Domino/XWork
RESTful services on IBM Domino/XWork
 
HCL Domino V12 - TOTP
HCL Domino V12 - TOTPHCL Domino V12 - TOTP
HCL Domino V12 - TOTP
 
DominoMigrationProposal
DominoMigrationProposalDominoMigrationProposal
DominoMigrationProposal
 
Domino OSGi Development
Domino OSGi DevelopmentDomino OSGi Development
Domino OSGi Development
 
April, 2021 OpenNTF Webinar - Domino Administration Best Practices
April, 2021 OpenNTF Webinar - Domino Administration Best PracticesApril, 2021 OpenNTF Webinar - Domino Administration Best Practices
April, 2021 OpenNTF Webinar - Domino Administration Best Practices
 
Deep Dive AdminP Process - Admin and Infrastructure Track at UKLUG 2012
Deep Dive AdminP Process - Admin and Infrastructure Track at UKLUG 2012Deep Dive AdminP Process - Admin and Infrastructure Track at UKLUG 2012
Deep Dive AdminP Process - Admin and Infrastructure Track at UKLUG 2012
 
Spnego configuration
Spnego configurationSpnego configuration
Spnego configuration
 
Domino Adminblast
Domino AdminblastDomino Adminblast
Domino Adminblast
 
Best Practice TLS for IBM Domino
Best Practice TLS for IBM DominoBest Practice TLS for IBM Domino
Best Practice TLS for IBM Domino
 
Configuring Domino To Be An Ldap Directory And To Use An Ldap Directory
Configuring Domino To Be An Ldap Directory And To Use An Ldap DirectoryConfiguring Domino To Be An Ldap Directory And To Use An Ldap Directory
Configuring Domino To Be An Ldap Directory And To Use An Ldap Directory
 

Destaque (6)

MVC and IBM XPages - from #DanNotes in Korsør (DK) 28 November 2013
MVC and IBM XPages - from #DanNotes in Korsør (DK) 28 November 2013MVC and IBM XPages - from #DanNotes in Korsør (DK) 28 November 2013
MVC and IBM XPages - from #DanNotes in Korsør (DK) 28 November 2013
 
Connect2014 BP205: Improving Your IBM Domino Designer Experience
Connect2014 BP205: Improving Your IBM Domino Designer ExperienceConnect2014 BP205: Improving Your IBM Domino Designer Experience
Connect2014 BP205: Improving Your IBM Domino Designer Experience
 
An introduction to Git and GitFlow
An introduction to Git and GitFlowAn introduction to Git and GitFlow
An introduction to Git and GitFlow
 
Git for IBM Notes Designer
Git for IBM Notes DesignerGit for IBM Notes Designer
Git for IBM Notes Designer
 
BLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes DevelopersBLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes Developers
 
Git training
Git trainingGit training
Git training
 

Semelhante a Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)

O'Leary - Using GitHub for Enterprise and Open Source Documentation
O'Leary - Using GitHub for Enterprise and Open Source DocumentationO'Leary - Using GitHub for Enterprise and Open Source Documentation
O'Leary - Using GitHub for Enterprise and Open Source Documentation
LavaCon
 
[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategies[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategies
rahulbot
 
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Giovanni Toraldo
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
Howard Greenberg
 
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
All Things Open
 
Git presentation
Git presentationGit presentation
Git presentation
jordimash
 

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

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

Mais de Per Henrik Lausten

Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)
Per Henrik Lausten
 

Mais de Per Henrik Lausten (9)

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

Último

Último (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
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
  • 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