|
A Concurrent Versions Technique (CVS), as well referred to as a Concurrent Versioning Models, implements the version control system: it keeps track of completely work & all changes inside the placed of files, usually the implementation of a software project, and allows many (possibly widely separated) developers to collaborate. CVS has be popular in the open-source world. CVS is freed under a GNU General Public License.
Features
CVS uses the client-server architecture: the server places a todays version(s) of the plan & its history, & clients attach to the server sequentially to prevent-out a complete copy of the plan, operate on this copy then late prevent-in their changes. Occasionally, client & server attach all over the LAN or over the Internet, but client & server can two start on the equivalent machine in case CVS has the task of keeping track of the version history of a project by using just local developers. A server package unremarkably diarrhea in Unix (although a Windows NT CVS server also is), when CVS clients can process in any major operating-system platform.
Many clients can edit copies of the design at the same time. Whilst it late prevent-in their changes, a server tries to merge the two. within case this fails, e.g. because deuce clients attempted to vary a equivalent line in a certain file, so a server denies a 2nd prevent-operational & informs a client just about a conflict, which the user may want to resolve by hand. Whenever a prevent-inside operation succeeds, so a version many a lot files taking part automatically increment, & a CVS server writes a user-supplied description line, the date & andy skinner's title to its log files.
Clients can besides compare different versions of files, asking the complete history of changes, or even even prevent-out the historical shot of the task when of the given date or when of the revision total. Numbers of open-source projects allow "anonymous read access," a feature that was pioneered by OpenBSD. This means that clients can prevent-out & compare versions using either the blank or even elementary promulgated countersign (e.g "anoncvs"); simply the prevent-witharound of changes takes a household account & countersign in these scenarios.
Clients can as well utilize a "update" command sequentially to bring their local copies higher-to-date by using a fresh version on the server. This eliminates a want for perennial downloading of the totally task.
CVS can besides maintain different "branches" of the task. E.g., the discharged version of the software system task can form of these branch, utilized for bug fixes, when the version under todays development, sustaining major changes & fresh features, forms the separate branch.
CVS utilizes delta compression for efficient storage of different versions of the equivalent file.
Terminology
CVS language dubs one plan (placed of related files) managed by CVS as a module. The CVS server may handle many modules; it places all the modules it manages within its repository. the copy of the module that a client might check out serves as a working copy and reflects recent changes other clients commit to the module. Update is the process of getting latest changes from either repository to the working copy.
History and status
CVS developed from either an earliest versioning supervisor call instruction Revision Control System (RCS), still around apply, which manages single files but not completely projects. Dick Grune has provided a select few [http://www.cs.vu.nl/~dick/CVS.html#History brief historical notes] just about CVS in his places. To quote:
A code was publicly freed to mod.sources in June 23, 1986. We might however watch [http://groups.google.com/groups?:mod.sources.*&hl=en&lr=lang_en&ie=UTF-8&c2coff=1&safe=off&selm=122%40mirror.UUCP&rnum=2 the original usenet post] in Google Groups.
A code that within time evolved into a todays version of CVS began by using Brian Berliner in April 1989, sustaining late input from either Jeff Polk & numerous more contributors. Brian Berliner wrote [http://citeseer.ist.psu.edu/berliner90cvs.html a paper introducing his improvements to the CVS program] which describes how else a thing was extended & utilized internally by Prisma, a third person creator working on the SunOS kernel, & was freed for the gain of the community under the GPL.
Now, a class action of volunteers maintains the CVS code. Notably, a development of the Microsoft Windows version of CVS has split off into the separate task known as CVSNT and has been more active within extending a feature placed of a body, potentially porting a changes back to the UNIX platform under the title CVSNT.
Historically, a relationship between CVS & a GNU project could come out somewhat ambiguous: a Wildebeest web site distributed a program, labelling it "GNU package" in of these web page & "other GPL-licensed project" in a second. This was recently clarified whenever CVS development moved from either cvshome.org to savannah.nongnu.org, by using CVS officially relegated to the non-gnu category. On a FTP places, the program has traditionally & however does reside in the /non-gnu/ directory.
Limitations
Files inside the CVS repository just can not exist as renamed, it must exist as flushed & re-added.
A CVS protocol doesn't provide how else for even directories to become moved or renamed. Every file inside both sub-directory must exist as explictly deleted & re-added.
The total of key developers world health organizatiin stand worked on CVS come nowadays responsible Subversion (SVN), released within early 2004, which aims to replenish CVS by addressing occasionally of its limitations.
|