concurrent version management(tortoise cvs)

41
Concurrent Version management CVS (tortoise, smart cvs etc.) Slide Prepared By @Mirza Mohtashim Alam

Upload: mirzamohtashim

Post on 16-Jul-2015

91 views

Category:

Education


0 download

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

What are the benefits?

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

New File Creation:

Slide Prepared By @Mirza Mohtashim Alam

USING Tortoise CVS

New File Creation:

Slide Prepared By @Mirza Mohtashim Alam

USING Tortoise CVS

Check-in:

Slide Prepared By @Mirza Mohtashim Alam

USING Tortoise CVS

Check-in:

Slide Prepared By @Mirza Mohtashim Alam

USING Tortoise CVS

Check-out:

Slide Prepared By @Mirza Mohtashim Alam

USING Tortoise CVS

Check-out:

Slide Prepared By @Mirza Mohtashim Alam

USING Tortoise CVS

Check-out:

Slide Prepared By @Mirza Mohtashim Alam

USING Tortoise CVS

TAG:

Slide Prepared By @Mirza Mohtashim Alam

USING Tortoise CVS

TAG:

Slide Prepared By @Mirza Mohtashim Alam

USING Tortoise CVS

TAG:

Slide Prepared By @Mirza Mohtashim Alam

USING Tortoise CVS

BRANCHING:

Slide Prepared By @Mirza Mohtashim Alam

USING Tortoise CVS

BRANCHING:

Slide Prepared By @Mirza Mohtashim Alam

USING Tortoise CVS

BRANCHING:

Slide Prepared By @Mirza Mohtashim Alam

USING Tortoise CVS

BRANCHING:

Slide Prepared By @Mirza Mohtashim Alam

USING Tortoise CVS

BRANCHING:

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