Accessible Websites With Lotus Notes/Domino, presented at the BLUG day event, March 30th, 2010
BLUG 2012 Version Control for Notes Developers
-
Upload
martin-jinoch -
Category
Technology
-
view
1.768 -
download
2
description
Transcript of BLUG 2012 Version Control for Notes Developers
![Page 1: BLUG 2012 Version Control for Notes Developers](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/1.jpg)
Version Control for Notes developers
Martin Jinoch
![Page 3: BLUG 2012 Version Control for Notes Developers](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/3.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/4.jpg)
“Classic” way ;-)
![Page 5: BLUG 2012 Version Control for Notes Developers](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/5.jpg)
“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](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/6.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/7.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/8.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/9.jpg)
pretty simple, huh!?
let's see a demo
![Page 10: BLUG 2012 Version Control for Notes Developers](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/10.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/11.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/12.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/13.jpg)
Install EGit to DDE
![Page 14: BLUG 2012 Version Control for Notes Developers](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/14.jpg)
Install EGit to DDE
![Page 15: BLUG 2012 Version Control for Notes Developers](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/15.jpg)
Install EGit to DDE
and point it to the downloaded zip file
![Page 16: BLUG 2012 Version Control for Notes Developers](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/16.jpg)
Install EGit to DDE
just check and press Next
![Page 17: BLUG 2012 Version Control for Notes Developers](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/17.jpg)
Install EGit to DDE
I guess even as non-lawyers we can accept this
![Page 18: BLUG 2012 Version Control for Notes Developers](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/18.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/19.jpg)
Enable Source Control for NSF
![Page 20: BLUG 2012 Version Control for Notes Developers](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/20.jpg)
Enable Source Control for NSF
![Page 21: BLUG 2012 Version Control for Notes Developers](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/21.jpg)
Enable Source Control for NSF
![Page 22: BLUG 2012 Version Control for Notes Developers](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/22.jpg)
Set up Git for the on-disk project
![Page 23: BLUG 2012 Version Control for Notes Developers](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/23.jpg)
Set up Git for the on-disk project
![Page 24: BLUG 2012 Version Control for Notes Developers](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/24.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/25.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/26.jpg)
Questions?
● more about Githttp://think-like-a-git.netgreat book http://progit.org
![Page 27: BLUG 2012 Version Control for Notes Developers](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/27.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022052620/5579ab25d8b42ac1148b4dae/html5/thumbnails/28.jpg)
Thank you!