HPCC Mid-Morning Break

HPCC Systems Outline

• What is version control? • Version Control Systems • VCS Hosting • Why use HPCC hosting? • Clients • Subversion Clients • Resources What is Version Control?

• Tracks changes made to code by multiple contributors over time. • Can “rewind” to earlier versions without having to manually undo changes to code. • Can gracefully merge changes to the same file by different people in many cases. Version Control Systems 1

• Repositories  Store files, information about the files, and changes to the files.  Store history of changes to the files. • Tools  Make working copies of repositories and update those copies.  Copy changes from your working copy to repositories. Version Control Systems 2

• Good free and open source software is out there: Bazaar (bzr), Git, (hg), and Subversion (svn). • HPCC officially supports Git and Subversion. • HPCC also provides CVS and Mercurial. VCS Hosting 1

• vcs.icer.msu.edu hosts Git and Subversion repositories which you can provide to arbitrarily-composed groups of collaborators. • CVS, Git, Mercurial, and Subversion are available on the HPCC dev nodes, but collaboration is more difficult there. VCS Hosting 2

• Git repositories can be accessed via HTTP, HTTPS, and SSH transports. • Subversion repositories can be accessed via SSH transport. (We will likely add HTTP and HTTPS transports later.) • CVS and Mercurial repositories are not presently hosted on vcs.icer.msu.edu. Why Use HPCC Hosting?

• Private repositories can be shared among collaborators but excluded from public viewing. • No need to create a new account somewhere else (uses your MSU NetID). • Most hosting sites charge a fee for hosting private repositories (Assembla, Beanstalk, GitHub, etc...) or only accept public repositories (SourceForge, Savannah, etc...). Git Clients

and Mac OS X Commands: git • Windows Applications:  msysgit: http://code.google.com/p/msysgit/  TortoiseGit: http://code.google.com/p/tortoisegit/ Subversion Clients

• Linux and Mac OS X Commands: svn • Windows Applications:  TortoiseSVN: http://tortoisesvn.net/  VisualSVN: http://www.visualsvn.com/visualsvn/ Resources

• HPCC Version Control Documentation: https://wiki.hpcc.msu.edu/x/g4Oe • Git Information: http://git-scm.com/ • Mercurial Information: http://mercurial.selenic.com/ • Subversion Information: http://subversion.apache.org/ Questions?