What are the Best Practices of CVS?

cvs-best-practices

CVS Best Practices

 

These are list of CVS Best Practices:

* Don’t share workspaces

Sharing workspaces compromises CVS’s ability to track activity by user or task.

* Don’t work outside of managed workspaces

CVS can only track work in progress when it takes place within managed workspaces. Never copy files from others sandboxes or even from outside your sandbox since you may overwrite somebody else’s code.

* Don’t use jello views

A file in your workspace should not change unless you explicitly cause the change. A “jello view” is a workspace where file changes are caused by external events beyond your control e.g. workspace built upon a tree of symbolic links to files in another workspace.

* Stay in sync with the codeline

The quality of your work depends largely on how well it meshes with others work. In other words, as changes are checked into the codeline, you should update your workspace and integrate those changes with yours. Update your code at least once in the morning daily.

* Checkin code daily

Integrating your development work with other peoples’ work also requires you to check in your changes regularly. Don’t keep your new code lying in your workspace for many days at a time. This may lead to many conflicts at a later stage when you try to merge.

* Never check in without compiling and testing your code

* Always update your modules/ files and resolve any conflicts before committing

* After committing changes, diff with previous version to make sure you did not accidentally overwrite anybody else’s code

* If you overwrite somebody else’s code, rollback

* Always communicate any changes you commit, to all those concerned with the module/ file that was changed

* Always add comments when committing changes

Good and meaningful comments make it easy for others to know exactly what was changed. For e.g. if it’s a bug fix it should have a Bug Number.

* Add whitespaces with discretion

Changes to whitespaces cause unnecessary updates to happen and may show conflicts during merges

Tagged : / / / / / / / / / / / / / / /

CVS Best Practices – List of CVS Best Practices – CVS Tips

cvs-best-practices

CVS Best Practices

These are list of CVS Best Practices:

* Don’t share workspaces

Sharing workspaces compromises CVS’s ability to track activity by user or task.

* Don’t work outside of managed workspaces

CVS can only track work in progress when it takes place within managed workspaces. Never copy files from others sandboxes or even from outside your sandbox since you may overwrite somebody else’s code.

* Don’t use jello views

A file in your workspace should not change unless you explicitly cause the change. A “jello view” is a workspace where file changes are caused by external events beyond your control e.g. workspace built upon a tree of symbolic links to files in another workspace.

* Stay in sync with the codeline

The quality of your work depends largely on how well it meshes with others work. In other words, as changes are checked into the codeline, you should update your workspace and integrate those changes with yours. Update your code at least once in the morning daily.

* Checkin code daily

Integrating your development work with other peoples’ work also requires you to check in your changes regularly. Don’t keep your new code lying in your workspace for many days at a time. This may lead to many conflicts at a later stage when you try to merge.

* Never check in without compiling and testing your code

* Always update your modules/ files and resolve any conflicts before committing

* After committing changes, diff with previous version to make sure you did not accidentally overwrite anybody else’s code

* If you overwrite somebody else’s code, rollback

* Always communicate any changes you commit, to all those concerned with the module/ file that was changed

* Always add comments when committing changes

Good and meaningful comments make it easy for others to know exactly what was changed. For e.g. if it’s a bug fix it should have a Bug Number.

* Add whitespaces with discretion

Changes to whitespaces cause unnecessary updates to happen and may show conflicts during merges

Tagged : / / / / / / / / / / / / / /

Share common projects with two different projects in CVS

projects-in-cvs

Share common projects with two different projects in CVS If there are two or more projects in the repository, some of the files are common in these two projects and some are different.How to share the files that are same between these projects? How can archive this? How Changes in common files be reflected to both projects. Version of CVS 2.5.03  

Answer: The CVSROOT/modules2 file or the older CVSROOT/modules file can help with this sort of thing:

http://cvsnt.org/manual/html/Administrative-files.html#modulesOrhttp://cvsnt.org/manual/html/modules2.html  

Generally the best CM independent solution is to organise your project source code hierarchy within the CM tool in such a way that ‘common’code is in a project/module/directory of it’s own so it can be checked out and managed independently of other projects, ie:  

/repo/proja 

/repo/projb 

/repo/common 

Then you define a module where ‘projecta’ = ‘proja’+’common’ so when a person does ‘cvs co projecta’ they  get: 

/projecta/proja 

/projecta/common 

If your server is running on Linux then you can ‘cheat’ by simply symbolically linking the RCS file into two directories (though this may cause locking conflicts if the files are very busy).   

Thanks to:Arthur Barrett 

Tagged : / / / / / / / / / / / / / / / / /

Benefits of CVSNT, What are the advantages of CVSNT over CVS ?

advantages-of-cvsnt-over-cvs

Advantages of CVSNT over CVS

Feature CVSNT CVS
Server
Supports authentication via Microsoft Active Directory or SSH (windows only) YES NO
Set enforced protocols allow server to lock out clients connecting over insecure protocols or using insecure/inefficient options. YES NO
Easily remove protocols (without recompile) YES NO
Branch ACLs can be used to restrict access YES NO
LockServer provides file level locking YES NO
More sophisticated / extra triggers available e.g. postcommit. Triggers also available via COM/DLL/.so interfaces YES NO
Supports Unicode files with additional keyword expansion switches YES NO
Efficient storage of binary files using binary deltas YES NO
Extended modules functionality using the modules2 file YES NO
Advanced Reserved Edits and checked commits (supercedes exclusive locking concept) YES NO
Server-side default options (cvsrc) YES NO
CVSROOT/config scripts etc. YES YES
Repository browsing via cvs ls command YES YES
Pluggable server-side diff programs YES NO
Supports Unicode files with additional keyword expansion switches YES NO
Server-side default options (cvsrc) YES NO
UTF-8 (Unicode) Server. YES NO
Multi Lingual filenames suport. YES NO
Rendevous Support YES NO
Binary availability for Windows, Mac OS X, Linux, Solaris, HPUX YES YES
Client support for IBM iSeries (AS/400) OS/400 YES NO
Windows Server
Supports encrypted authentication via SSL (all platforms) YES NO
Configurable with Windows Control Panel YES NO
Compatible with NTFS ACL’s for using permissions based on Windows username or group. YES NO
Triggers also available via COM and DLL interfaces YES NO
Cshdump handler YES NO
Native file access YES NO
Native MSI Installer YES NO
Client
Smart Merge using MergePoint YES NO
Supports Unicode files with additional keyword expansion switches YES NO
“Import-and-go” by optionally turning freshly imported trees into a new sandbox automatically. No more need to purge and do a fresh checkout first YES NO
Version OSX resource fork extensions keyword expansion switches YES NO

Source: Related Website & http://www.cvsnt.org

Tagged : / / / / / / / / / / / / / /

Major differences between CVS and CVSNT | CVS Vs CVSNT

cvs-vs-cvsnt

Major differences between CVS and CVSNT | CVS Vs CVSNT

CVSNT was started as a variation (or branch) of CVS in 1999 because patches contributed to CVS were not considered to be suitable for that project by those responsible for making such decisions at that time.
CVSNT has continued to add features to the original CVS that support modern version control and configuration management best practice as well as maintain feature parity with CVS.
Today CVSNT is the most widely deployed version of CVS and is distributed with TortoiseCVS and WinCVS.

Similarities between CVS and CVSNT

  • From a SCM perpective, they share similarity in purpose, Commands including syntax and functionality
  • Both are freeware
  • Both can be accessed through clients.
  • Both are supported with Unix-like, Windows, Mac OS X

Difference between CVS and CVSNT

  • An alternative to CVS with advance features and support
  • CVS is being maintained but new features are not being added henceforth CVSNT is being maintained and new features are under development.
  • CVS is having only merge function instead of CVSNT is having merge and locking system as well.
  • CVS is having limited features than CVSNT
Tagged : / / / / / / / / / / / / / /