VCS
General
See also Git
- https://en.wikipedia.org/wiki/Version_control - A component of software configuration management, version control, also known as revision control or source control, is the management of changes to documents, computer programs, large web sites, and other collections of information. Changes are usually identified by a number or letter code, termed the "revision number", "revision level", or simply "revision". For example, an initial set of files is "revision 1". When the first change is made, the resulting set is "revision 2", and so on. Each revision is associated with a timestamp and the person making the change. Revisions can be compared, restored, and with some types of files, merged.
The need for a logical way to organize and control revisions has existed for almost as long as writing has existed, but revision control became much more important, and complicated, when the era of computing began. The numbering of book editions and of specification revisions are examples that date back to the print-only era. Today, the most capable (as well as complex) revision control systems are those used in software development, where a team of people may change the same files.
Version control systems (VCS) most commonly run as stand-alone applications, but revision control is also embedded in various types of software such as word processors and spreadsheets, e.g., Google Docs and Sheets and in various content management systems, e.g., Wikipedia's Page history. Revision control allows for the ability to revert a document to a previous revision, which is critical for allowing editors to track each other's edits, correct mistakes, and defend against vandalism and spamming. Software tools for revision control are essential for the organization of multi-developer projects.
- https://gitlab.com/esr/reposurgeon - A tool for editing version-control repositories and translating among different systems. Supports git, bzr, Subversion, darcs, and fossil directly, also hg, CVS, and RCS through plugins.
Local file system
old
SCCS / CSSC
- http://www.gnu.org/software/cssc/ - CSSC is the GNU Project's replacement for SCCS. SCCS is a proprietary suite of tools which is provided with most commercial versions of Unix. The purpose behind CSSC is to provide a work-alike for SCCS which can be used on the various Free versions of Unix.
SCCS was the only major form of source code control on Unix platforms for many years, until RCS came along. SCCS was an effective method for small projects, but these days is less popular, particularly for projects involving large numbers of files. A fair amount of old software is still in SCCS form, and CSSC is designed to retrieve that software. Once retrieved, it is highly recommended to bring the source under the control of more modern source code control systems, such as git or Apache Subversion.
RCS
- GNU RCS - The Revision Control System (RCS) manages multiple revisions of files. RCS automates the storing, retrieval, logging, identification, and merging of revisions. RCS is useful for text that is revised frequently, including source code, programs, documentation, graphics, papers, and form letters.
RCS design is an improvement from its predecessor Source Code Control System (SCCS) (see GNU CSSC). The improvements include an easier user interface and improved storage of versions for faster retrieval. RCS improves performance by storing an entire copy of the most recent version and then stores reverse differences (called "deltas"). RCS uses GNU Diffutils to find the differences between versions.
Klunok
- Klunok - a smart versioning and automatic backup daemon for Linux. It keeps a versioned history of files that you edit, doing so in the background without any effort required from you. It picks up everything that matters (sources, …) and nothing that doesn't (binaries, …) automatically. Klunok works well with most text and graphics editors, IDEs, and office suites, including Vim, Visual Studio Code, LibreOffice, and Inkscape.
Client-server
CVS
- http://cvs.nongnu.org/ - CVS stores individual file history in the same format as RCS, though offers the significant advantages over RCS
VSS
- https://en.wikipedia.org/wiki/Microsoft_Visual_SourceSafe - a discontinued source control program, oriented towards small software development projects. Like most source control systems, SourceSafe creates a virtual library of computer files. While most commonly used for source code, SourceSafe can handle any type of file in its database, but older versions were shown to be unstable when used to store large amounts of non-textual data, such as images and compiled executables.
SVN
Bazaar
Distributed
BitKeeper
1998 / 2000
- https://www.bitkeeper.org/ - now open source software [3]
Mercurial
2005
Git
2005
See Git
Fossil
2006
- Chisel - Fossil SCM Hosting
Pijul
- Pijul - a free and open source (GPL2) distributed version control system. Its distinctive feature is to be based on a sound theory of patches, which makes it easy to learn and use, and really distributed. [5]
- Anu - a free and open source distributed version control system based on a sound mathematical theory of asynchronous work.It is based on changes rather than snapshots, making it easier to use, more reliable and deterministic than alternatives.This project is a rewriting from scratch of Pijul by the same authors, with a number of new ideas. [6]
Eden
- https://github.com/facebookexperimental/eden - a cross-platform, highly scalable source control management system.It aims to provide both user-friendly and powerful interfaces for users, as well as extreme scalability to deal with repositories containing many millions of files and many millions of commits. [7]
Jujutsu
- https://github.com/martinvonz/jj - a Git-compatible DVCS. It combines features from Git (data model, speed), Mercurial (anonymous branching, simple CLI free from "the index", revsets, powerful history-rewriting), and Pijul/Darcs (first-class conflicts), with features not found in most of them (working-copy-as-a-commit, undo functionality, automatic rebase, safe replication via rsync, Dropbox, or distributed file system).
Utils
- webcheckout - check out repositories referenced on a web page
- Gource is a software version control visualization tool.
Management
Kallithea
- Kallithea - project of Software Freedom Conservancy, is a GPLv3'd, Free Software source code management system that supports two leading version control systems, Mercurial and Git, and has a web interface that is easy to use for users and admins. You can install Kallithea on your own server and host repositories for the version control system of your choice. [8]
Phabricator
- Phabricator - a set of tools for developing software. It includes applications for code review, repository hosting, bug tracking, project management, and more. Effective June 1, 2021: Phabricator is no longer actively maintained.
Gerrit
- Gerrit - provides web based code review and repository management for the Git version control system.
Review Board
- Review Board - An extensible and friendly code review tool for projects and companies of all sizes.
Forgejo
- Forgejo - a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job. Brought to you by an inclusive community under the umbrella of Codeberg e.V., a democratic non-profit organization, Forgejo can be trusted to be exclusively Free Software. It includes and cooperates with hundreds of projects (Gitea, Git, ...) and is focused on scaling, federation and privacy.
GitHub
- opml-gen - Generate an OPML file for your starred repositories on GitHub
- https://github.com/Mottie/GitHub-userscripts/wiki/GitHub-table-of-contents - userscript. unneeded now.
- https://github.com/nschloe/stargraph - a Python/command-line tool that collects the star count from GitHub stars and produces nice plots from it.