concurrent version management(tortoise cvs)
TRANSCRIPT
Concurrent Version management
CVS (tortoise, smart cvs etc.)
Slide Prepared By @Mirza Mohtashim Alam
A short briefing
• What is CVS? And Why Do we need it?
• What Are the features?
• What are the tools?
Slide Prepared By @Mirza Mohtashim Alam
• Concurrent access by multiple developers
• Multiple development lines in a single repository
• Symbolic source tagging
• Difference between versions
• Binary files support
• Repository event triggers
• Grouping sources into modules
CVS futures
Slide Prepared By @Mirza Mohtashim Alam
Versioning of software
Program_1
Version 1.1
Version 1.2
Program_2Program_3
Version 1.1
Version 1.1
A generic software
Slide Prepared By @Mirza Mohtashim Alam
Versioning of software
Program_1
Version 1.1
Version 1.2
Program_2Program_3
Version 1.1
Version 1.1
A generic software
Repository
Check In
Slide Prepared By @Mirza Mohtashim Alam
Versioning of software
Program_1
Version 1.1
Version 1.2
Program_2Program_3
Version 1.1
Version 1.2
Version 1.1
A generic software
Repository
Check In
Slide Prepared By @Mirza Mohtashim Alam
Versioning of software
Program_1
Version 1.1
Version 1.2
Program_2Program_3
Version 1.1
Version 1.2
Version 1.1
Version 1.3
A generic software
Repository
Check In
Slide Prepared By @Mirza Mohtashim Alam
Versioning of software
Program_1
Version 1.1
Version 1.2
Program_2Program_3
Version 1.1
Version 1.2
Version 1.1
Version 1.3
A generic software
Repository
Easy to know about other related programs updates those are being developed by other programmers.
Slide Prepared By @Mirza Mohtashim Alam
Versioning of software
Program_1
Version 1.1
Version 1.2
Program_2Program_3
Version 1.1
Version 1.2
Version 1.1
Version 1.3
A generic software
Repository
All the versions of the builds of the programs are being stored in the
repository in a hierarchy.
Slide Prepared By @Mirza Mohtashim Alam
Versioning of software
Program_1
Version 1.1
Version 1.2
Program_2Program_3
Version 1.1
Version 1.2
Version 1.1
Version 1.3
A generic software
Repository
Easy to work with client. BUT HOW?
Slide Prepared By @Mirza Mohtashim Alam
Versioning of software
Program_1
Version 1.1
Version 1.2
Program_2Program_3
Version 1.1
Version 1.2
Version 1.1
Version 1.3
A generic software
Repository
Suppose, All the versions of the
programs are now in the repository after
being updated several times by the developers
Slide Prepared By @Mirza Mohtashim Alam
Versioning of software
Program_1
Version 1.1
Version 1.2
Program_2Program_3
Version 1.1
Version 1.2
Version 1.1
Version 1.3
A generic software
Repository
Now client wants a software that works with the build 1.2 version of
program_2 with build 1.1 version of program_3 and
program_1
Slide Prepared By @Mirza Mohtashim Alam
Versioning of software
Program_1
Version 1.1
Version 1.2
Program_2Program_3
Version 1.1
Version 1.2
Version 1.1
Version 1.3
A generic software
Repository
It can be easily managed by tagging and
update it into the repository.
Slide Prepared By @Mirza Mohtashim Alam
Versioning of software
Program_1
Version 1.1
Version 1.2
Program_2Program_3
Version 1.1
Version 1.2
Version 1.1
Version 1.3
A generic software
Repository
Solution: TAG program_1 version1.1,
program_2 version 1.1,program_3
version1.3 with some name and update
them into repository.
Tag_1 Tag_1
Tag_1
Slide Prepared By @Mirza Mohtashim Alam
Versioning of software
Program_1
Version 1.1
Version 1.2
Program_2Program_3
Version 1.1
Version 1.2
Version 1.1
Version 1.3
A generic software
Repository
Solution: TAG program_1 version1.1,
program_2 version 1.1,program_3
version1.3 with some name and update
them into repository.
Tag_1 Tag_1
Tag_1
Update Tag_1 named under client1
into the repository.
Slide Prepared By @Mirza Mohtashim Alam
Versioning of software
Repository will now have a tag Client1:Tag_1
Repository
CLIENT1:TAG_1
Slide Prepared By @Mirza Mohtashim Alam
Versioning of software
Program_1
Version 1.1
Version 1.2
Program_2Program_3
Version 1.1
Version 1.2
Version 1.1
Version 1.3
A generic software
Repository
Tag_2
Tag_2
Tag_2
Update Tag_2 named under client2
into the repository.
Slide Prepared By @Mirza Mohtashim Alam
Versioning of software
Repository will now have a tag Client1:Tag_1
Repository
CLIENT1:TAG_1CLIENT2:TAG_2
Slide Prepared By @Mirza Mohtashim Alam
Versioning of software
Program_1
Version 1.1
Version 1.2
Program_2Program_3
Version 1.1
Version 1.2
Version 1.1
Version 1.3
A generic software
Repository
Version 1.1.2
Version 1.1.3
Everyone find this version
faulty
BRANCHING:A new Branch
has been created of program_1
Slide Prepared By @Mirza Mohtashim Alam
Sample Process of CVS
• Repository
WorkingCopyV1.7 Working
Copy V1.1WorkingCopy V1.2
WorkingCopyV1.7
WorkingCopyV1.2.2.1
Programmer_2 Programmer_4Programmer_5
X XV1.8 or 1.9
V1.8 or 1.9V1.2.2.2
checkin
checkincheckin
checkin prohibited
programmer_3
Programmer_1
Slide Prepared By @Mirza Mohtashim Alam
CVS and 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).
5. Test again if the sources were merged on step 4.
6. Commit changes.
7. Repeat from step 2 until you have a new release.
8. Tag the release.
Slide Prepared By @Mirza Mohtashim Alam
Tortoise CVS
ABOUT:TortoiseCVS is a CVS client for Microsoft Windowsreleased under the GNU General Public License. Unlike most
CVS tools, it includes itself in Windows' shell by adding entries in the contextual menu of the file explorer, therefore it does not run in its own window. Moreover, it adds icons onto files
and directories controlled by CVS, giving additional information to the user without having to run a full-scale
stand-alone application. It has a good user interface to work with. People find it easier to use.
Slide Prepared By @Mirza Mohtashim Alam
USING Tortoise CVS
When to commit(check-in):
• Commit to mark a working state that you might want to return to later.
• Commit related files in a single operation. Use a common log message for all the files.
• Commit to backup your sources.
• Commit from an office desktop to be able to access the files from home much faster than through filesystem sharing.
Slide Prepared By @Mirza Mohtashim Alam
USING Tortoise CVS
Branch Needed When:
• to create sustaining (patch) releases
• to have multiple development lines from a single repository
• to do experimental development to merge later or forget about
it
• to keep temporary state of development without affecting
builds
Slide Prepared By @Mirza Mohtashim Alam
USING Tortoise CVS
You can get this slide from http://www.slideshare.net/Mirza_Mohtashim/concurrent-version-managementtortoise-cvs
Slide Prepared By @Mirza Mohtashim Alam