Subversion @ CERN

Subversion @ CERN

Subversion @ CERN Giacomo Tenaglia Jonatan Hugosson Manuel Guijarro Artur Wiecek Alvaro Gonzalez May 2009 CERN - IT Department CH-1211 Genève 23 Switzerland www.cern.ch/it Outline • Why SVN • SVN Usage • Best Practices • CERN SVN Service • Migration from CVS CERN - IT Department CH-1211 Genève 23 Switzerland 2 www.cern.ch/it Why SVN? • Many commercial and Open Source VC Systems: – (Centralised) CVS/SVN – (Distributed) GIT, Bazaar, Darcs, GNU arch, Mercurial, Monotone, etc – Subversion is used by GCC, Phyton, PuTTY, Apache, GNOME, KDE,… • Physics User Community likes SVN: (ATLAS, IN2P3, ROOT, Totem..) • SVN client runs on many platforms CERN - IT Department CH-1211 Genève 23 Switzerland 3 www.cern.ch/it Why SVN? Feature SVN CVS Speed Works “faster” Works “slower” Permission Full Limited File types All Limited Off line operations Yes No Repository format Database Filesystem Locks No Yes Atomic commits Yes No CERN - IT Department CH-1211 Genève 23 Switzerland 4 www.cern.ch/it Usage “Although the goal of Subversion is to take over the current and future CVS user base, some new features and design changes were required to fix certain “broken” behaviors that CVS had. This means that, as a CVS user, you may need to break habits - ones that you forgot were odd to begin with.” – The official Subversion book CERN - IT Department CH-1211 Genève 23 Switzerland 5 www.cern.ch/it Usage • Documentation: http://cern.ch/svn • Live example CERN - IT Department CH-1211 Genève 23 Switzerland 6 www.cern.ch/it Usage for CVS Users • Revision numbers repository-wide • Subversion tracks tree structures, not just file contents • More offline operations – Status – Diff – Revert CERN - IT Department CH-1211 Genève 23 Switzerland 7 www.cern.ch/it Usage for CVS Users • Attach arbitrary metadata (or properties) to files and directories • Nicer conflict resolution and merging • Branches and Tags – Branches and tags are ordinary directories within the filesystem. This is probably the single biggest mental hurdle that a CVS user will need to cross • http://svn.collab.net/repos/svn/trunk/doc/use r/cvs-crossover-guide.html CERN - IT Department CH-1211 Genève 23 Switzerland 8 www.cern.ch/it Repository Layout trunk/branches/tags structure: trunk/module1, module2, ... branches/module1, module2, ... tags/module1, module2, ... or: module1/trunk /branches /tags module2/trunk /branches /tags CERN - IT Department CH-1211 Genève 23 Switzerland 9 www.cern.ch/it Best practices • Branching http://nedbatchelder.com/text/quicksvnbranch.html • Commit logical changesets • Use issue-tracker • Large files • Get in touch with other SVN Users CERN - IT Department CH-1211 Genève 23 Switzerland 10 www.cern.ch/it CERN SVN Service • svn.cern.ch (rw) – Secured subversion server (SSH and HTTPS) – Read and write access to repository • svnweb.cern.ch (ro) – User documentation – Project request – SVN web interface – Usage statistics CERN - IT Department CH-1211 Genève 23 Switzerland 11 www.cern.ch/it CERN SVN Service • High Availability and Load Balancing • Web interface to repositories • Usage Statistics • Daily archive of Repositories and the Disaster Recovery copies (last 3, off-site) • Developers Mailing list • Pre/Post Commit Actions (such as e-mail notification, etc) • Role split (SVN Admin/Librarian/Developer) CERN - IT Department CH-1211 Genève 23 Switzerland 12 www.cern.ch/it CERN SVN Service • Control Read access per path (module) • Authenticated and authorized Web access • Binary files handling • Ease CVS to SVN migration • Delegate administrative tasks to Software Librarians of each project • SVN Service Managers willing to get your feedback: https://twiki.cern.ch/twiki/bin/viewauth/DESg roup/SVNFeatureRequest CERN - IT Department CH-1211 Genève 23 Switzerland 13 www.cern.ch/it Using CERN SVN Service • http://cern.ch/svn – Documentation • How to • Video tutorials • SVN for CVS users – Request a project • Configure access rights • CVS to SVN migration CERN - IT Department CH-1211 Genève 23 Switzerland 14 www.cern.ch/it Configuring access • Authorization file: – /afs/cern.ch/project/svn/reps/<my_project>/conf/ authz • Valid for: – SVN clients – Trac web interface – WebSVN CERN - IT Department CH-1211 Genève 23 Switzerland 15 www.cern.ch/it Restrict access, example [groups] Dev = hugosson, guijarro [/] * = r @Dev = rw [/some/path] * = @Dev = rw Video tutorial: http://cern.ch/svn/video/conf.htm CERN - IT Department CH-1211 Genève 23 Switzerland 16 www.cern.ch/it CVS to SVN migration • Tool: cvs2svn – Run your migration on LXSVN servers • Consider: – Tools and conventions built on top of CVS • post-commit scripts (mail notifications) • Authorization files – Good occasion to clean up • Is all the history needed ? • Is all the data needed? – Good occasion to restructure • Split into more repositories? • Where to put tags, branches and trunks? CERN - IT Department CH-1211 Genève 23 Switzerland 17 www.cern.ch/it Migration examples • Top skimming: – svn import <your_cvs_working copy> svn+ssh://svn/reps/<your_repository> • Converting all history using cvs2svn: – cvs2svn --use-cvs --fallback-encoding=ascii \ -- dumpfile=<your_svndumpfile> <your_cvssource> – svnadmin load svn/reps/<your_repository> \ < <your_svndumpfile> • Demo: http://cern.ch/svn/video/cvs2svn.htm CERN - IT Department CH-1211 Genève 23 Switzerland 18 www.cern.ch/it Questions? Thanks For Listening…. G. Tenaglia, M. Guijarro, A. Wiecek, H. Hugosson, A. Gonzalez CERN - IT Department CH-1211 Genève 23 Switzerland 19 www.cern.ch/it.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    19 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us