blug 2012 version control for notes developers

28
Version Control for Notes developers Martin Jinoch

Upload: martin-jinoch

Post on 11-Jun-2015

1.767 views

Category:

Technology


2 download

DESCRIPTION

BLUG 2012 slide deck for my Version Control for Notes Developers session

TRANSCRIPT

Page 1: BLUG 2012 Version Control for Notes Developers

Version Control for Notes developers

Martin Jinoch

Page 2: BLUG 2012 Version Control for Notes Developers

#shameless-plug

blog: http://jinoch.cz

twitter: @mjinoch

email: [email protected]

Page 3: BLUG 2012 Version Control for Notes Developers

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: BLUG 2012 Version Control for Notes Developers

“Classic” way ;-)

Page 5: BLUG 2012 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 of the whole template

we don't know what the last change was

→ we should maintain a separate change-log

Page 6: BLUG 2012 Version Control for Notes Developers

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: BLUG 2012 Version Control for Notes Developers

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: BLUG 2012 Version Control for Notes Developers

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: BLUG 2012 Version Control for Notes Developers

pretty simple, huh!?

let's see a demo

Page 10: BLUG 2012 Version Control for Notes Developers

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: BLUG 2012 Version Control for Notes Developers

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: BLUG 2012 Version Control for Notes Developers

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: BLUG 2012 Version Control for Notes Developers

Install EGit to DDE

Page 14: BLUG 2012 Version Control for Notes Developers

Install EGit to DDE

Page 15: BLUG 2012 Version Control for Notes Developers

Install EGit to DDE

and point it to the downloaded zip file

Page 16: BLUG 2012 Version Control for Notes Developers

Install EGit to DDE

just check and press Next

Page 17: BLUG 2012 Version Control for Notes Developers

Install EGit to DDE

I guess even as non-lawyers we can accept this

Page 18: BLUG 2012 Version Control for Notes Developers

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: BLUG 2012 Version Control for Notes Developers

Enable Source Control for NSF

Page 20: BLUG 2012 Version Control for Notes Developers

Enable Source Control for NSF

Page 21: BLUG 2012 Version Control for Notes Developers

Enable Source Control for NSF

Page 22: BLUG 2012 Version Control for Notes Developers

Set up Git for the on-disk project

Page 23: BLUG 2012 Version Control for Notes Developers

Set up Git for the on-disk project

Page 24: BLUG 2012 Version Control for Notes Developers

Start using Git directly from DDE

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

Page 25: BLUG 2012 Version Control for Notes Developers

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: BLUG 2012 Version Control for Notes Developers

Questions?

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

Page 27: BLUG 2012 Version Control for Notes Developers

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: BLUG 2012 Version Control for Notes Developers

Thank you!