Share to: share facebook share twitter share wa share telegram print page

Concurrent Versions System

Concurrent Versions System
Developer(s)The CVS Team
Initial releaseNovember 19, 1990; 33 years ago (1990-11-19)
Stable release
1.11.23[1] / May 8, 2008; 16 years ago (2008-05-08)
Preview release
1.12.13[2] / September 28, 2005; 18 years ago (2005-09-28)
Repository
Written inC
Operating systemUnix-like, Windows
TypeRevision control
LicenseGPL-1.0-or-later[3]
Websitecvs.nongnu.org

Concurrent Versions System (CVS, or Concurrent Versioning System) is a version control system originally developed by Dick Grune in July 1986.[4]

Design

CVS operates as a front end to Revision Control System (RCS), an older version control system that manages individual files but not whole projects. It expands upon RCS by adding support for repository-level change tracking, and a client-server model.[5] Files are tracked using the same history format as in RCS, with a hidden directory containing a corresponding history file for each file in the repository.

CVS uses delta compression for efficient storage of different versions of the same file. This works well with large text files with few changes from one version to the next. This is usually the case for source code files. On the other hand, when CVS is told to store a file as binary, it will keep each individual version on the server. This is typically used for non-text files such as executable images where it is difficult to create compact deltas between versions.

CVS excludes symbolic links because when they are stored in a version control system they can pose a security risk. For instance, a symbolic link to a sensitive file can be stored in the repository, making the sensitive file accessible even when it is not checked in. In place of symbolic links, scripts that require certain privileges and conscious intervention to execute may be checked into CVS.[citation needed]

Operation

CVS labels a single project (set of related files) that it manages as a module. A CVS server stores the modules it manages in its repository. Programmers acquire copies of modules by checking out. The checked-out files serve as a working copy, sandbox or workspace. Changes to the working copy are reflected in the repository by committing them. To update is to acquire or merge the changes in the repository with the working copy.

CVS uses a client–server architecture: a server stores the current version(s) of a project and its history, and clients connect to the server in order to "check out" a complete copy of the project, work on this copy and then later "check in" their changes. CVS servers can allow "anonymous read access",[6] wherein clients may check out and compare versions with either a blank or simple published password (e.g., "anoncvs"); only the check-in of changes requires a personal account and password in these scenarios. Several developers may work on the same project concurrently, each one editing files within their own "working copy" of the project, and sending (or checking in) their modifications to the server. To avoid conflicts, the server only accepts changes made to the most recent version of a file. Developers are therefore expected to keep their working copy up-to-date by incorporating other people's changes on a regular basis. This task is mostly handled automatically by the CVS client, requiring manual intervention only when an edit conflict arises between a checked-in modification and the yet-unchecked local version of a file. Clients can also use the "update" command to bring their local copies up-to-date with the newest version on the server. Clients can also compare versions, request a complete history of changes, or check out a historical snapshot of the project (e.g.: based on a given date). If the check-in operation succeeds, then the version numbers of all files involved automatically increment, and the server writes a user-supplied description line, the date and the author's name to its log files. CVS can also run external, user-specified log processing scripts following each commit. These scripts are installed by an entry in CVS's loginfo file, which can trigger email notification or convert the log data into a Web-based format.

CVS can also maintain different "branches" of a project. For instance, a released version of the software project may form one branch, used for bug fixes, while a version under current development, with major changes and new features, can form a separate branch. CVS assumes that the majority of work takes place on the trunk, and that branches should generally be short-lived or historical. When used as designed, branches are easily managed and branch operations are efficient and fast.[7][8]

Portability

The server software normally runs on Unix (although at least the CVSNT server also supports various flavors of Microsoft Windows), while CVS clients may run on any major operating system platform.

History

Grune recalled:[9]

I created CVS to be able to cooperate with my students, Erik Baalbergen and Maarten Waage, on the ACK (Amsterdam Compiler Kit) C compiler. The three of us had vastly different schedules (one student was a steady 9-5 worker, the other was irregular, and I could work on the project only in the evenings). Their project ran from July 1984 to August 1985. CVS was initially called cmt, for the obvious reason that it allowed us to commit versions independently.

Grune publicly released the code on June 23, 1986.[10]

The code that eventually evolved into the current version of CVS started with Brian Berliner in April 1989, with later input from Jeff Polk and many other contributors. Brian Berliner wrote a paper introducing his improvements to the CVS program—which describes how the tool was extended and used internally by Prisma, a third-party developer working on the SunOS kernel, and was released for the benefit of the community under the GPL.[11] On November 19, 1990, CVS version 1.0 was submitted to the Free Software Foundation for development and distribution.[12]

The latest version was released on 8 May 2008.[13]

Adoption and successors

In the world of open source software, the Concurrent Version System (CVS) has long been the tool of choice for version control. And rightly so. CVS itself is free software, and its non-restrictive modus operandi and support for networked operation—which allow dozens of geographically dispersed programmers to share their work—fits the collaborative nature of the open-source world very well. CVS and its semi-chaotic development model have become cornerstones of open-source.[14]

Over time, developers have created new version control systems based on CVS in order to add features, alter the operational model, and improve developers' productivity. CVS replacement projects include CVSNT and Subversion.[15][16]

See also

Notes

  1. ^ Stable CVS Version 1.11.23 Released!
  2. ^ CVS Feature Version 1.12.13 Released! * Security Update *
  3. ^ "Contents of /ccvs/README".
  4. ^ "CVS--Concurrent Versions System v1.12.12.1: Overview". Archived from the original on 15 April 2012. Retrieved 9 December 2011.
  5. ^ Stopak, Jacob (November 30, 2019). "The Evolution of Version Control System (VCS) Internals". Retrieved 22 September 2020.
  6. ^ Charles D. Cranor; Theo de Raadt (1999). "Opening The Source Repository With Anonymous CVS, USENIX 1999" (PDF). Archived (PDF) from the original on 2022-10-09.
  7. ^ Collins-Sussman, Ben; Greg Ward (September 2004). "Subversion Users: Re: Performance (Subversion vs. CVS)". subversion-users. Retrieved 2010-07-07.
  8. ^ West, Adrian (July 2004). "cvs branchtag performance fix". Archived from the original on 2009-08-03. Retrieved 2010-07-07.
  9. ^ "Concurrent Versions System CVS". dickgrune.com.
  10. ^ Dick Grune (July 3, 1986). "CVS, an RCS front-end (cvs)". Newsgroupmod.sources. Usenet: 122@mirror.UUCP. Retrieved September 14, 2016.
  11. ^ "CVS II: Parallelizing Software Development - Berliner (ResearchIndex)". Archived from the original on September 9, 2004.
  12. ^ "[cvs] Contents of /ccvs/NEWS". cvs.savannah.gnu.org.
  13. ^ "Concurrent Versions System - News: Stable CVS Version 1.11.23 Released! [Savannah]". savannah.nongnu.org.
  14. ^ Ben Collins-Sussman, Version Control with Subversion For Subversion 1.1, 2005
  15. ^ "Subversion FAQ: Why does this project exist?". Subversion. Retrieved September 21, 2009.
  16. ^ "Dispelling Subversion FUD". Ben Collins-Sussman. Archived from the original on July 18, 2011. Retrieved June 30, 2010.

References

Read other articles:

1995 American filmSudden DeathTheatrical release posterDirected byPeter HyamsScreenplay byGene QuintanoStory byKaren BaldwinProduced by Howard Baldwin Moshe Diamant Starring Jean-Claude Van Damme Powers Boothe Raymond J. Barry Dorian Harewood CinematographyPeter HyamsEdited bySteven KemperMusic byJohn DebneyProductioncompanyShattered ProductionsDistributed byUniversal PicturesRelease date December 22, 1995 (1995-12-22) Running time110 minutesCountryUnited StatesLanguageEnglishB...

Société des Automobiles Pilain Logo Rechtsform Gründung 1902 Auflösung 1920 Auflösungsgrund Übernahme durch Société Lyonnaise de l’Industrie Mécanique et Autos Pilain Sitz Lyon, Frankreich Branche Automobilindustrie Pilain um 1906 Pilain von 1911 Pilain von 1912 Die Société des Automobiles Pilain, gelegentlich mit SAP abgekürzt, war ein französischer Hersteller von Automobilen.[1][2][3] Inhaltsverzeichnis 1 Unternehmensgeschichte 2 Fahrzeuge 3 Literatur ...

Leendert Krol Plaats uw zelfgemaakte foto hier Persoonlijke informatie Volledige naam Leendert Gerhardus Krol Geboortedatum 30 november 1939 Geboorteplaats Tanjung Piandang, Maleisië Lengte 1,85 m Sportieve informatie Discipline Hockey Club LOHC (Leiden) Olympische Spelen 1964 Portaal    Sport Leendert Gerhardus Krol (Tanjung Piandang, Maleisië, 30 november 1939) is een Nederlands voormalig hockeyer. Biografie Krol speelde in de jaren 60 37 interlands voor de Nederlandse hockeyplo...

Saint-Clément-sur-Durance Gemeente in Frankrijk Situering Regio Provence-Alpes-Côte d'Azur Departement Hautes-Alpes (5) Arrondissement Briançon Kanton Guillestre Coördinaten 44° 39' NB, 6° 35' OL Algemeen Oppervlakte 25,06 km² Inwoners (1 januari 2020) 321[1] (13 inw./km²) Hoogte 858 - 2836 m Overig INSEE-code 05134 Foto's Portaal    Frankrijk Saint-Clément-sur-Durance is een gemeente in het Franse departement Hautes-Alpes (regio Provence-Alpes-Côte d'Azur) en telt...

Este artículo o sección necesita referencias que aparezcan en una publicación acreditada.Este aviso fue puesto el 26 de abril de 2012. Spencer Boldman Información personalNombre de nacimiento Spencer Thomas BoldmanNacimiento 28 de julio de 1992 (31 años)Dallas, Texas, Estados UnidosNacionalidad EstadounidenseLengua materna Inglés Características físicasAltura 1,88 m (6 ft 2 inEducaciónEducado en Plano East Senior High School Información profesionalOcupación ActorAños activo d...

Pablo Casals Defilló Información personalNombre en catalán Pau Casals i Defilló Nacimiento 29 de diciembre de 1876Vendrell, Tarragona, EspañaVendrell (España) Fallecimiento 22 de octubre de 1973 (96 años)San Juan (Estados Unidos) Sepultura Cementerio de Vendrell Nacionalidad EspañolaFamiliaPadres Carles Casals i Ribes Pilar Defilló Amiguet Cónyuge Susan Metcalfe Casals (1914-1928)Marta Casals Istomin (1957-1973) Pareja Guilhermina Suggia (1906-1912)Francesca Vidal i P...

Вільна боротьба до 57 кг (чоловіки)на XXXI Олімпійських іграх Місце проведенняОлімпійський тренувальний центрДати19 серпня 2016Учасників20 з 20 країнПризери  Владімер Хінчегашвілі  Грузія Рей Хігуті  Японія Гаджі Алієв  Азербайджан Хассан...

Esta página cita fontes, mas que não cobrem todo o conteúdo. Ajude a inserir referências. Conteúdo não verificável pode ser removido.—Encontre fontes: ABW  • CAPES  • Google (N • L • A) (Setembro de 2019) Ferdinand de Lesseps Ferdinand de Lesseps Nascimento 19 de novembro de 1805,Versalhes Morte 7 de dezembro de 1894 (89 anos), GuillyGuilly Residência Itália Sepultamento cemitério do Père-Lachaise Nacionalida...

愛知県 > 名古屋市 > 地名 本項名古屋市の地名(なごやしのちめい)では、愛知県名古屋市に存在する、または過去に存在した町名を行政区別に一覧化するとともに、市制及び町村制施行以降の同市内の町名の変遷について記述する。 地名の変遷 (1889年~1937年) 括弧内は、数字は発足年・消滅年、地名は「大字」の項のみ旧自治体名、それ以外は旧町・大字

Este artículo o sección necesita referencias que aparezcan en una publicación acreditada.Este aviso fue puesto el 2 de diciembre de 2012. Lar de bronce del siglo I (M. A. N., Madrid). Los lares eran deidades guardianas en la antigua religión romana. Su origen es incierto, y pueden haber sido héroes-ancestros, guardianes del hogar, de los campos, de las fronteras o de la fecundidad, o una amalgama de todo ello. Eran hijos de Lara (o Larunda),[1]​ una de las náyades, y el dios Mercu...

2008 single by SS501 Lucky DaysSingle by SS501A-sideLucky DaysB-sideSummer Blue/HoshizoraReleasedJune 18, 2008 (2008-06-18)[1]GenreJ-pop, R&B, danceLabelDSP Media, Pony CanyonSS501 singles chronology Distance (2007) Lucky Days (2008) Holding Your Hand (2008) Lucky Days[2] is South Korean boy band SS501's third Japanese maxi single.[1] It was released on June 18, 2008, by Pony Canyon.[3] The album consists of three songs, Lucky Days, Summer Bl...

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: San Fernando, Trinidad and Tobago – news · newspapers · books · scholar · JSTOR (December 2016) (Learn how and when to remove this template message) City in City of San Fernando, Trinidad and TobagoSan FernandoCityCity of San FernandoIndependence Avenue in Down...

Pour les articles homonymes, voir Asie (homonymie). Asie Localisation sur la Terre. Superficie 43 810 582 km2 Population 4 342 255 000 hab. (2014) Densité 99 hab./km2 Pays 49 Principales langues Mandarin, arabe, russe, khmer, hindi, bengali, tamoul, japonais, tagalog, indonésien, persan, ourdou, turc, coréen, arménien, azéri, kazakh, géorgien, kurde, anglais, coréen, pashto, birman, punjabi, dari, marathi, hébreu, ouzbek, thaï, vietnamien, mala...

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (يوليو 2020) اضغط هنا للاطلاع على كيفية قراءة التصنيف خفاش أصوف كبير الأذن   حالة الحفظ   أنواع غير مهددة أو خطر انقراض ضعيف جدا[1] المرتبة التصنيفية نوع[2]  ...

Species of grass Indocalamus tessellatus Scientific classification Kingdom: Plantae Clade: Tracheophytes Clade: Angiosperms Clade: Monocots Clade: Commelinids Order: Poales Family: Poaceae Genus: Indocalamus Species: I. tessellatus Binomial name Indocalamus tessellatus(Munro) Keng f.[1] Synonyms[2] Arundinaria ragamowskii Bambusa tessellata Sasa tessellata Sasamorpha tessellata Indocalamus tessellatus, the large-leaved bamboo, is a species of flowering plant in the grass ...

Situ Lengkongᮞᮤᮒᮥ ᮜᮦᮀᮊᮧᮀSitu Lengkong PanjaluSitu Lengkong di PanjaluSitu LengkongTampilkan peta Kabupaten CiamisSitu LengkongTampilkan peta Jawa BaratSitu LengkongTampilkan peta JawaSitu LengkongTampilkan peta IndonesiaLetakPanjalu, Kabupaten Ciamis, Jawa BaratKoordinat7°07′38″S 108°16′21″E / 7.12722°S 108.27250°E / -7.12722; 108.27250Koordinat: 7°07′38″S 108°16′21″E / 7.12722°S 108.27250°E / -7.12722...

Pulau Air KecilPulau Pulau Air Kecil merupakan pulau yang berada pada gugusan Kepulauan Seribu yang secara administratif termasuk dalam wilayah Kabupaten Administratif Kepulauan Seribu provinsi DKI Jakarta. Lihat pula Kabupaten Administratif Kepulauan Seribu Kepulauan Seribu Pulau Onrust Pranala luar Situs resmi Kabupaten Administratif Kepulauan Seribu Diarsipkan 2017-02-22 di Wayback Machine. lbsPulau di Kepulauan Seribu Pulau Air Besar Pulau Air Kecil Pulau Ayer Pulau Belanda Pulau Biawak P...

Sassanid governor of Yemen during the reign of Khosrow II Some of this article's listed sources may not be reliable. Please help this article by looking for better, more reliable sources. Unreliable citations may be challenged or deleted. (July 2013) (Learn how and when to remove this template message) Bādhān ibn Sāsān (in Arabic: باذان ابن ساسان; also Bādhām باذام in Islamic historiography) was a Persian abna' leader and the Sasanian governor of Yemen during the reign...

Desde un Principio: From the Beginning álbum recopilatorio de Marc AnthonyPublicación 9 de noviembre de 1999[1]​Género(s) Pop latino • Salsa • Baladas románticasDiscográfica RMM Records & Video Cronología de Marc Anthony Marc Anthony (1999) Desde un Principio: From the Beginning (1999) Libre (2001) [editar datos en Wikidata] Desde un Principio: From the Beginning es un álbum del cantante puertorriqueño Marc Anthony, realizado el 9 de noviembre de 1999. La inten...

قرية الشرقى الاعلى  - قرية -  تقسيم إداري البلد  اليمن المحافظة محافظة حجة المديرية مديرية مدينة حجة العزلة عزلة عبس السكان التعداد السكاني 2004 السكان 229   • الذكور 113   • الإناث 116   • عدد الأسر 28   • عدد المساكن 25 معلومات أخرى التوقيت توقيت اليمن (+3 غرين...

Kembali kehalaman sebelumnya