1 CSE306 Operating Systems Projects CVS/SSH tutorial.

Slides:



Advertisements
Similar presentations
1 IST 410/420 Software Version Control 2 DevelopmentIntegration Test System Test User Acceptance Testing ProductionArchive DEVELOPMENTUSERS - Developers.
Advertisements

 Please sit next to your partner.  If you don’t have a partner, please find one now.
1. What is Subversion? Why do we need CM? Basic concepts Repositories Options Setup Clients Options Setup Operation Troubleshooting Slide 2.
Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Concurrent Versions System Overview of CVS architecture. Repository structure.
Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Concurrent Versions System Overview of CVS architecture. Repository structure.
Version Control System (Sub)Version Control (SVN).
David Notkin Autumn 2009 CSE303 Lecture 22 Subversion is an open source version control system. Social Implications Friday version control system.
2/6/2008Prof. Hilfinger CS164 Lecture 71 Version Control Lecture 7.
Using subversion COMP 2400 Prof. Chris GauthierDickey.
Working in Project Teams Using CVS and Solaris ACLs ● Concurrent Version System:  Allows multiple programmers to work on one project at the same time.
Concurrent Versioning System Chapter 8 (ALBING’s).
CVS Selim Çıracı Ahmet Kara Metin Tekkalmaz. CVS – Open Source Version Control System Outline What are Version Control Systems? And why do we need them?
A Crash Course in CVS 19 November 2003 Joe Vornehm Northwestern University ECE Department.
CVS II: Parallelizing Software Development Author: Brian Berliner John Tully.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Introduction to CVS 7/3/20151UMBC CMSC 341. Outline Introduction to Source Code Management What is CVS? CVS for Project Submission Basic commands Checkout,
SubVersioN – the new Central Service at DESY by Marian Gawron.
1 CSE 390 “Lecture 11” Version control with Git slides created by Ruth Anderson, images from
Git for Version Control These slides are heavily based on slides created by Ruth Anderson for CSE 390a. Thanks, Ruth! images taken from
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
1 CVS Concurrent Versioning System CRASH COURSE! presented by Axel Polleres with improvements by Holger Lausen and Eyal Oren cf.
Unix Primer. Unix Shell The shell is a command programming language that provides an interface to the UNIX operating system. The shell is a “regular”
Lesson 7-Creating and Changing Directories. Overview Using directories to create order. Managing files in directories. Using pathnames to manage files.
Subversion. What is Subversion? A Version Control System A successor to CVS and SourceSafe Essentially gives you a tracked, shared file system.
Version Control with Subversion Quick Reference of Subversion.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
An Introduction to CVS By Durai Raj Has one of your projects ever experienced this ? Which is the latest version ?. God only knows (sometimes myself.
IT2204: Systems Administration I 1 6b). Introduction to Linux.
Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 8-Oct-15.
CVS 簡介 數位芝麻網路公司蔡志展 2001/8/18 大綱 • CVS 簡介 • CVS 安裝 • CVS 設定 (Linux/Windows) • CVS 指令簡介 • CVS 多人環境的應用.
Prepared by: Steve Teo Contributors: Tong Huu Khiem.
Object-Oriented Software Engineering Using UNIX groups and CVS Estimated Time: minutes.
Drexel University Software Engineering Research Group Git for SE101 1.
Chris Onions Getting started with CVS in ATLAS 11 Getting started with CVS in ATLAS Chris Onions (Tutorial based on that of Raúl Ramos Pollán CERN / IT.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
An Intro to Concurrent Versions System (CVS) ECE 417/617: Elements of Software Engineering Stan Birchfield Clemson University.
Subversion (SVN) A Revision Control System Successor to CVS Carlos Armas Hervey Allen.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
SENG 403 Tutorial 1 1SENG 403 – Winter Agenda Version Control Basics Subversion Basic actions in Subversion Some examples 2SENG 403 – Winter 2012.
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
CVS – concurrent versions system Network Management Workshop intERlab at AIT Thailand March 11-15, 2008.
CSE 219 Computer Science III CVS
Configuring Sourceforge’s CVS to work with Forte (3.0 or later) on WindowsNT and Windows 2000 Specific for MAExplorer.sourceforge.net Written by Eric Shen,
Prepared by: Steve Teo Contributors: Tong Huu Khiem.
CVS – concurrent versions system AROC Guatemala July 19-23, 2010 Guatemala City, Guatemala.
WinCvs. WinCVS WinCvs is a window based version control system. Use WinCvs when  You want to save every version of your file you have ever created. CVS.
CVS: Concurrent Version System Lecturer: Prof. Andrzej (AJ) Bieszczad Phone: “UNIX for Programmers and Users” Third.
L.T.E :: Learning Through Experimenting Using google-svn for MtM Docs Development Denis Thibault Version 3.2 Mar 12 th, 2009.
12 CVS Mauro Jaskelioff (originally by Gail Hopkins)
Introduction to Git Yonglei Tao GVSU. Version Control Systems  Also known as Source Code Management systems  Increase your productivity by allowing.
WinCVS Training è Basic Concepts è Download & Setup è Importing a new module into CVS Repository è Getting new module from CVS è Getting Latest version.
Learning basic Unix command It 325 operating system.
1 CSE 303 Lecture 19 Version control and Subversion ( svn ) slides created by Marty Stepp
CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 16 – Version control and git.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Revised by David Svoboda 2003 Concurrent Versions System Overview of CVS architecture.
1 Subversion Kate Hedstrom April Version Control Software System for managing source files –For groups of people working on the same code –When.
Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 28-Jun-16.
Problem Solving With C++ SVN ( Version Control ) April 2016.
UNIX To do work for the class, you will be using the Unix operating system. Once connected to the system, you will be presented with a login screen. Once.
CVS, Logging, Development
Department of Computer Engineering
Concurrent Versions System User guide for CS408
CVS – concurrent versions system
CVS – concurrent versions system
An Intro to Concurrent Versions System (CVS)
CVS Concurrent Versioning System
Concurrent Versions System
Presentation transcript:

1 CSE306 Operating Systems Projects CVS/SSH tutorial

2 What is CVS? Concurrent Versions System Version Control System Multi-developer environment

3 CVS Repository Developer 1 Developer 2 Developer 3 Developer 4

4 checkoutupdatecheckindevelopment Ideal development with CVS repository Developer A Developer B

5 Definitions-Repository The Repository is a directory tree containing the CVS administrative files and all the RCS files that constitute "imported" or "committed" work. Kept in a shared area, separate from the working areas of all developers.

6 Definitions-RCS An RCS file is a text file containing the source text and the revision history for all committed revisions of a source file. Stored separately from the working files, in a directory hierarchy, called the Repository. RCS is the "Revision Control System" that CVS uses to manage individual files. RCS file names normally end in ",v".

7 Definitions-Working file A working file is a disk file containing a checked-out copy of a source file that earlier had been placed under CVS. If the working file has been edited, the changes since the last committed revision are invisible to other users of CVS. A working directory is the place where you work and the place from which you "commit" files.

8 Definitions-Checkout “Checking out" is the act of using the "checkout" command to copy a particular revision from a set of RCS files into your working area. You normally execute "checkout" only once per working directory (or tree of working directories), maintaining them thereafter with the "update" command.

9 Definitions-Revision A "revision" is a version of a file that was "committed" ("checked in", in RCS terms) some time in the past. Each version of a file has a unique revision number. Every file in a CVS repository can contain many versions, which are given revision numbers in form x.y[.x.y[...]]. ! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 !

10 Definition-Tag-symbolic revision A release of a system will have many different revision numbers To let you find all the files in a release, use tags. Read Manual if you are interested

11 Definition-Branch Version number can contain more than two numbers to mark branches. Reasons to branch: fix bugs in product while working on next version work on subproject that will take a week to finish

12 Working on branches release_1 cvs tag release_1 cvs up -r rel_1_fix 1.4 release_2 cvs tag release_ patch rel_1_fix cvs tag -b rel_1_fix

13 checkin X Real development with CVS repository Developer A Developer B updateconflict resolution checkin conflict

14 CVS and the Development Cycle 1. Check out source files in working directory. 2. Edit source files. 3. Unit test your code. 4. Update working files to merge in changes from other developers (if necessary).

15 CVS and the Development Cycle 5. Test again if the sources were merged on step Commit changes. 7. Repeat from step 2 until you have a new release. 8. Tag the release. 9. Submit the module name and release tag for integration build.

16 Useful CVS commands cvs [cvs-options] command [cmd- options] [files] cvs checkoutCheck out source for editing. cvs commitcheck files into the repository (check in cvs addAdd new file/directory to repository. cvs removeRemove an entry from the repository. cvs updateBring working files into sync with repository.

17 Useful CVS Commands(con.) cvs diffCompare working files to version in repository or versions inside the repository. cvs logShow revision history for files. cvs statusShow status of checked out files. cvs tagLabel the sources.

18 Notes When to commit: Commit to mark a working state that you might want to return to later. For more information on CVS, please see

19 Starting the Project with CVS/SSH

20 Let us check your project To enable us to check the log, you must do this: cd ~ chmod 711. mkdir ~/.ssh2 chmod 700 ~/.ssh2 cp ~cse306/id_kifer.pub ~/.ssh2/ cp ~cse306/id_cse306.pub ~/.ssh2/

21 Let us check your project(con.) Create a file called ~/.ssh2/authorization Add the following lines there: Key id_kifer.pub Key id_cse306.pub Ensure proper access for both partners: chgrp -R your-group your-cvs-repository-directory chmod -R 770 your-cvs-repository-directory chmod -R g+s your-cvs-repository-directory

22 Start working with CVS Create empty repository cvs -d ~/CVSROOT init protect yourself from copycats! chmod -R 770 ~/CVSROOT

23 Working with partner if you are working with a partner and are assigned to the same user group, say c then also type the following two commands: chgrp -R c ~/CVSROOT make sure new directories are created with the right permissions: chmod -R g+s ~/CVSROOT

24 Create directory structure for your repository your OSP project dir mkdir ~/your-project-dir/OSP your project dir for Proj 1 mkdir ~/your-project-dir/OSP/memory your project dir for Proj 2 mkdir ~/your-project-dir/OSP/threads your project dir for Proj 3 mkdir ~/your-project-dir/OSP/devices

25 Import directory structure cd ~/your-project-dir/OSP Import directory structure of your OSP project into your CVS repository cvs -d ~/CVSROOT import -m "Created OSP directory structure" OSP osp start In the above, `osp' and `start' are called "vendor" and "release" tags and can be anything. CVS requires them for import, but you can forget about them from now on.

26 Remove it Set the appropriate permissions for the OSP module in the cvs repository. Read/write for you and partner -- nobody else chmod 770 ~/CVSROOT/OSP Remove the OSP dir structure you just created cd ~/your-project-dir BE CAREFUL HERE!!!!!! rm -r OSP

27 Check Out Checkout OSP from the repository (this lets OSP create the necessary structures) cvs -d ~/CVSROOT checkout OSP Protect yourself! chmod 700 OSP

28 Partner Your partner should also checkout the same thing, but, of course, use ~your_account_id instead of just ~. Let's suppose you are 'john': Your partner does: cd ~/your-partner's-project-dir cvs -d ~john/CVSROOT checkout OSP chmod 700 OSP

29 Add new files Adding files (such as memory.c) to your repository using the command 'cvs add‘ Use `cvs add filename' to tell CVS that you want to version control the file. Command: cvs add [ -k kflag] [ -m message] files The `-m' option specifies a description for the file. This description appears in the history log

30 Commit Use `cvs commit filename' to actually check in the file into the repository. Other developers cannot see the file until you perform this step.

31 Which editor should I use? XEmacs (suggested) Nice interface to CVS, called pcl-cvs. Most of the CVS commands are available through the Tools/PCL_CVS menu of XEmacs. Put this line in your ~/.emacs file. (require 'pcl-cvs) After you invoke `cvs update', you get a CVS buffer, where you can invoke even more commands through the top-level menu called CVS

32 Where should I work? Undergraduate Computing Lab Remote access to UG lab by SSH (no GUI) Working at home with Linux/FreeBSD Working at home with MS Windows using WinCVS

33 Upgraded UG Lab Request a UG account at Apply an access card from the undergrad secretary Read to begin workingwww.ug.cs.sunysb.edu

34 Using SSH (Secure Shell) Remote access to UG lab by SSH only! Download a copy for your computer from softweb.cc.sunysb.edu Type “man ssh” for more information

35 Working at home with Linux/FreeBSD Set the environment variable CVS_RSH to ssh You can checkout a copy directly to your home computer as follows (assuming that you are 'mary' in the UG lab): cvs –d /CVSROOT checkout OSP Note: your_homedir must be the full path name to your home directory at public.ug.cs.sunysb.edu

36 WinCVS on your desktop Download a copy from Set up with SSH step by step

37 WinCVS: Configuration Your UNIX login

38 WinCvs: Main screen file view status view modules state icon revision numberfile typebranch name

39 Checking out the sources

40 Source history & diff

41 Commit, Update & Tag update commit tag