concurrent version systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · –...
TRANSCRIPT
![Page 1: Concurrent Version Systempeople.apache.org/~sgoeschl/download/jugat/2001-11-20_2.pdf · – Tortoise §Server Administration – Configuration – User Management – Tips and Tricks](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050106/5f44abd09c03152c1b3ab7eb/html5/thumbnails/29.jpg)
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/