29
21.11.01 DI Roland TRIENDL ([email protected]) DI Siegfried GOESCHL ([email protected]) Concurrent Version System CVS in the Enterprise

Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

21.11.01

DI Roland TRIENDL ([email protected])DI Siegfried GOESCHL ([email protected])

Concurrent Version System

CVS in the Enterprise

Page 2: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

2 2CVS within the Enterprise

Overview

§ A Closer Look at CVS

§ Acceptance of Configuration Management

§ Usability of CVS front-ends– WinCVS– Tortoise

§ Server Administration– Configuration– User Management– Tips and Tricks

Page 3: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

3 3CVS within the Enterprise

A Closer Look at CVS

§ Used for virtually all open source project§ Client/Server enabled version control system

– Usually UNIX server– Windows NT/2000 port available

§ Supports multiple stand-alone frontends– Command line for hardliners and tools– WebCVS using browser– TkCVS using TCL/Tk– WinCVS as Win32 frontend with TCL support

§ CVS client can be integrated seamlessly with– Jbuilder– Netbeans– Together/J– Microsoft Explorer (Tortoise)

Page 4: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

4 4CVS within the Enterprise

A Closer Look at CVS

§ Different client authentication modules available– Kerberos– Password Authentication

§ Customization with server side scripts§ Unreserved checkouts

– No file locking– Multiple developers can work on one file simultanously– Watches can be used to notify other developers– Manual file locking is still possible

§ Simple user management§ CVS and ANT make a good combination for

automated build

Page 5: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

5 5CVS within the Enterprise

Acceptance of CM

Forces of Configuration Management

– structured work

– binding deliveries

– binding schedules

– well organized workspace

– where is the source material

Page 6: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

6 6CVS within the Enterprise

Acceptance of CM

workflows (RUP)– Core Process Workflows

• Business Modelling (Geschäftsprozeß Modellierung)• Requirements (Anforderungs Management)• Analysis & Design (Analyse und Design)• Implementierung• Test• Deployment (Verteilung)

– Core Supporting Workflows• Change- und Configurationmanagement <-- you are here• Projektmanagement• Environment Setup

Page 7: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

7 7CVS within the Enterprise

Acceptance of CM

packages of domain engineering

customerrequirements

domainanalysis

domaindesign

domainimplementation

domain model architecture

domainknowledge

requirementsanalysis

productconfiguration integration & test

special designspecial

development new requirements

characteristics

product

domainspecific languages,components and generators

Page 8: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

8 8CVS within the Enterprise

Acceptance of CM

source distribution (object code)

*.dir *.dxr

*.fla *.swf

*.html *.html

*.jsp *.jsp, *.class

*.psd *.gif, *.jpg

*.mid *.au, *.wav, *.mp3

*.java *.class

Sourcecode vs. Object Code

Page 9: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

9 9CVS within the Enterprise

Acceptance of CM

§ configuration management– iterative process, based on the material created during the

production of software

§ parts of a release

Source Material Distribution Material Release Package Installed Productproduce/compile packaging install/deploy

*.jpg

*.wml

*.jsp

*.xml

*.wbmp

*.prop

*.html

*.class

*.gif

Release

Page 10: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

10 10CVS within the Enterprise

Acceptance of CM

§ Configuration Management

– management of documents and source code– production if installable versions of a software– tool supported production of documents– distributed teamwork– concurrent access to documents and sourcecode– management of software versions– freezing a certain state of the development process– working on serveral versions of a product at the same time

Page 11: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

11 11CVS within the Enterprise

Acceptance of CM

Advantages of CM

– increased team productivity

– improved individual productivity

– simplified software maintenance

– recovering at a defined level of development possible

– authorized and supervised modifications

Page 12: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

12 12CVS within the Enterprise

Acceptance of CM

rules for working in a local workspace

1. working locally is completely OK (CVS)

2. hand over complete state of work at certain times

3. hand over complete work including source daily

4. project management needs to have access to your revisionsof work

5. automatic backup possible for the CVS repository

Page 13: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

13 13CVS within the Enterprise

Acceptance of CVS

Checkout Module

Update CommitAdd

Remove

Create Tag

Erase (filesys)

Edit / Unedit

Modify

Merge

Import Module

Update

Working with CVS

Export

Page 14: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

14 14CVS within the Enterprise

Acceptance of CM

1. checkout project (module) into your lokal workspace2. unlock required files if necessary3. add new files into cvs database (repository)4a. modify files in your workspace using your preferred tools4b. there is no renaming, remove files with cvs tool and add new once

again5. commit modified files to store new revision in cvs database

x. periodically update the whole module to get modifications of teammembers

y. dont forget to commit and update your modified files before leaving theoffice

z. periodically create tagged releases with assigned version numbers(freezing the product)

note: most actions require a final commit

Page 15: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

15 15CVS within the Enterprise

Usability of CVS Frontends

WinCVS, MacCVS Tortoise

Page 16: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

16 16CVS within the Enterprise

Usability of CVS Frontends

NetbeansIntegration

Page 17: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

17 17CVS within the Enterprise

TortoiseCVS

checkout module

Page 18: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

18 18CVS within the Enterprise

Tortoise CVS

checkout module

Page 19: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

19 19CVS within the Enterprise

Tortoise CVS

Add &Commitfile

Page 20: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

20 20CVS within the Enterprise

CVSWeb viewing revisions of files

Page 21: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

21 21CVS within the Enterprise

CVS modules

Motivation

– seperate cvs modules for every development project

– you can label (tag) a project on module level to freeze it

– support cross unit teamwork for customer projects

– support domain engineering process

– support reuse

Page 22: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

22 22CVS within the Enterprise

CVS export and java

Manifest File (MANIFEST.MF)Specification-Title: MessagingPlatform2Specification-Version: 2.1Specification-Vendor: sysis agImplementation-Title: MessagingPlatform2Implementation-Version: 2.1Implementation-Vendor: sysis agPackage-Name: at.sysis.messagingCM-module: messaging2CM-tag: $Name: $

Page 23: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

23 23CVS within the Enterprise

User Management

§ Usage of PSERVER allows user authentication– Password is sent unencrypted– Potential security breach

§ PSERVER allows simple user management– CVSROOT/passwd contains CVS users with encrypted

password and map them to existing Unix user accounts– The Unix user accounts either belong to cvs and cvsadmin– CVSROOT/readers contains all readers– CVSROOT/writers contains all writers– Certain commands can only be executed by members of

group cvsadmin

§ How do you create an encrypted password ?!

Page 24: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

24 24CVS within the Enterprise

User Management

cryptout.pl

#!/usr/bin/perl# Create encrytped password manually without changing the# password of an existing user

srand (time());my $randletter =

"(int (rand (26)) + (int (rand (1) + .5) % 2 ? 65 : 97))";my $salt = sprintf ("%c%c", eval $randletter, eval $randletter);my $plaintext = shift;my $crypttext = crypt ($plaintext, $salt);

print "${crypttext}\n";

Page 25: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

25 25CVS within the Enterprise

User Management

Group Write Access Update CVSROOT Delete Revisions

READER CVS No No No

WRITER CVS Yes No No

ADMIN CVSADMIN Yes Yes Yes

The best you can achieve (without too many tricks)

Page 26: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

26 26CVS within the Enterprise

Server Administration Tips and Tricks

§ Executable files under UNIX– If „x“ is set in the repository you get an executable copy

§ Removing a directory– You have to delete all files and then update with the –P

option (prune empty directories)

§ Moving files without losing revision history– Copy the RCS files into the new directory– Remove the files in the working copy– Remove files from CVS– Commit

§ Export of projects– No CVS directories and metadata– cvs -d $CVSROOT export -r LABEL -d DIR

Page 27: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

27 27CVS within the Enterprise

Server Administration Tips and Tricks

§ Turning on the historical logging– We sometimes would like to know what our users are

doing?!– Enable usage of history file in CVSROOT/config– set “LogHistory=TOFEWGCMAR” or “All”Make

CVSROOT/history writeable for everybody

Page 28: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

28 28CVS within the Enterprise

This is the End, my Friend ....

Any questions !?

Page 29: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks

29 29CVS within the Enterprise

Resources

Online Resources

§ CVS Home : http://www.cvshome.org§ CVS Frontends : http://www.cvsgui.org§ CVS Bubbles : http://www.loria.fr/~molli/cvs-index.html§ CVS FAQ : http://www.loria.fr/~molli/fom-serve/cache/1.html§ Cederqvist et al : http://www.loria.fr/~molli/cvs/doc/cvs_toc.html§ CVS Book : http://cvsbook.red-bean.com/cvsbook.html§ WinCVS Guide : http://www.computas.com/pub/wincvs-howto§ WebCVS : http://stud.fh-heilbronn.de/~zeller/cgi/cvsweb.cgi/

Tools§ WinMerge: http://winmerge.sourceforge.net/