version control for notes developers · “classic” way no easy way to get back to previous state...

28
Version Control for Notes developers Martin Jinoch

Upload: others

Post on 23-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

Version Control for Notes developers

Martin Jinoch

Page 2: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

#shameless-plug

blog: http://jinoch.cz

twitter: @mjinoch

email: [email protected]

Page 3: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

Agenda

What is version control and why you should use it, ...

Development work-flow with Git and git-flow

How to use Git in Designer

Other tools you can integrate into your development process

Page 4: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

“Classic” way ;-)

Page 5: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

“Classic” way

no easy way to get back to previous state unless we are keeping

→ backup versions of design elements→ or backup copies of the whole template

we don't know what the last change was

→ we should maintain a separate change-log

Page 6: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

There must be a better way

Version control systems

→ client/serverCVS, SVN (Subversion), ...

→ distributedGit, Bazaar, Mercurial, ...

Which one to use? Any. But please, DO use them. (And don't use CVS)

http://gitvsmercurial.com

Page 7: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

Basic operationscommit

→ save current state to VCS

diff→ show the differences between commits (versions)

revert→ undo (any) commit.

branch→ make a new “copy” of the whole app

merge→ apply changes from one branch to another branch

Page 8: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

Branching modelhttp://nvie.com/posts/a-successful-git-branching-model/

git-flow

by Vincent Driesen (http://nvie.com)

covers not only development process- like creating new features

but also release management and support- promoting new features to production app, fixing bugs in production app and in development version at once

could be used with other VCSas well!

Page 9: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

pretty simple, huh!?

let's see a demo

Page 10: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

git-flow to Notes mapping

master = NTF file on production server

develop = NTF file on test server

feature/* = NTF file on local machine or local server

team settings: rights to push to master and/or develop should be restricted to role (“gatekeeper”). In general individual developers work on feature branches and send pull requests to “gatekeeper”

Page 11: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

Support for Version control in Designer

in 8.5.3 it is built-in to Designer

connects NTF with so called on-disk project

syncs changes to on-disk project and back

→ version control systems need real files to act on not virtual file system

→ and some design elements have to be converted to DXL

Page 12: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

Configuring DDE for version control

Designer runs on top of Eclipse 3.4 (2008)

install VCS plugin from OpenNTF.org

→ EGit for Domino Designer (by Nathan T. Freeman)based on current EGit for Eclipse 3.6 and higher

→ Subversion UpdateSite for Domino Designer

Mercurial - http://cbes.javaforge.com/update and choose 1.6.0 version of MercurialEclipse plugin and 1.4.3 version of Mercurial Binaries

Page 13: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

Install EGit to DDE

Page 14: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

Install EGit to DDE

Page 15: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

Install EGit to DDE

and point it to the downloaded zip file

Page 16: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

Install EGit to DDE

just check and press Next

Page 17: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

Install EGit to DDE

I guess even as non-lawyers we can accept this

Page 18: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

Install EGit to DDE

after pressing Finish keep accepting (there is one more dialog asking for permission to install plugin) and then restart Designer

Page 19: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

Enable Source Control for NSF

Page 20: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

Enable Source Control for NSF

Page 21: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

Enable Source Control for NSF

Page 22: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

Set up Git for the on-disk project

Page 23: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

Set up Git for the on-disk project

Page 24: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

Start using Git directly from DDE

or use command line in Git Bash(we're developers, right?)

Page 25: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

Redmine

● project management tool, bug tracker, ...● connects to repository to link commits to

issues (commit message “fixes #1” automatically closes issue with id 1) and for time tracking (@1h30m)

● will probably be used for projects on OpenNTF.org as well as Git and Mercurial repositories

Page 26: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

Questions?

● more about Githttp://think-like-a-git.netgreat book http://progit.org

Page 27: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

Resources● Subversion - http://subversion.apache.org/● Git – http://git-scm.com/, Git for Windows -

http://code.google.com/p/msysgit/ and follow link “Git for Windows”● Mercurial – http://mercurial.selenic.com/● Bazaar – http://bazaar.canonical.com/● EGit for Domino Designer –

http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=EGit%20for%20IBM%20Domino%20Designer

● Subversion UpdateSite for Domino Designer – http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=Subversion%20UpdateSite%20for%20Domino%20Designer

● branching model -http://nvie.com/posts/a-successful-git-branching-model/

● git-flow – https://github.com/nvie/gitflow● Redmine – http://www.redmine.org

Page 28: Version Control for Notes developers · “Classic” way no easy way to get back to previous state unless we are keeping → backup versions of design elements → or backup copies

Thank you!