Showing posts with label Version Control. Show all posts
Showing posts with label Version Control. Show all posts

Subversion enables globally distributed software development teams to efficiently version and share source code. It includes versioned directories, atomic commits, efficient handling of binary files, quick branching and tagging, directory and file metadata and has low administrative overhead.

Homepage: subversion.apache.org

Apache Subversion (often abbreviated SVN, after the command name svn) is a software versioning and revision control system distributed under an open source license. Developers use Subversion to maintain current and historical versions of files such as source code, web pages, and documentation. Its goal is to be a mostly compatible successor to the widely used Concurrent Versions System (CVS).

The open source community has used Subversion widely: for example in projects such as Apache Software Foundation, Free Pascal, FreeBSD, GCC, Mono and SourceForge. Google Code also provides Subversion hosting for their open source projects. CodePlex offers access to Subversion as well as to other types of clients.

The corporate world has also started to adopt Subversion. A 2007 report by Forrester Research recognized Subversion as the sole leader in the Standalone Software Configuration Management (SCM) category and as a strong performer in the Software Configuration and Change Management (SCCM) category.

Subversion was created by CollabNet Inc. in 2000, and is now a top-level Apache project being built and used by a global community of contributors.

Features
  • Commits as true atomic operations (interrupted commit operations in CVS would cause repository inconsistency or corruption).
  • Renamed/copied/moved/removed files retain full revision history.
  • The system maintains versioning for directories, renames, and file metadata (but not for timestamps). Users can move and/or copy entire directory-trees very quickly, while retaining full revision history.
  • Versioning of symbolic links.
  • Native support for binary files, with space-efficient binary-diff storage.
  • Apache HTTP Server as network server, WebDAV/Delta-V for protocol. There is also an independent server process called svnserve that uses a custom protocol over TCP/IP.
  • Branching as a cheap operation, independent of file size (though Subversion itself does not distinguish between a branch and a directory)
  • Natively client–server, layered library design.
  • Client/server protocol sends diffs in both directions.
  • Costs proportional to change size, not to data size.
  • Parsable output, including XML log output.
  • Open source licensed — Apache License in the projected 1.7 release; prior versions use a derivative of the Apache Software License, v1.1
  • Internationalized program messages.
  • File locking for unmergeable files ("reserved checkouts").
  • Path-based authorization.
  • Language bindings for C#, PHP, Python, Perl, Ruby, and Java.
  • Full MIME support — users can view or change the MIME type of each file, with the software knowing which MIME types can have their differences from previous versions shown.
  • Merge tracking - Merges between branches will be tracked, this allows automatically merging between branches without telling Subversion what (doesn't) need to be merged.
  • Changelists to organise commits into commit groups
Repository types
Subversion offers two types of repository storage.

Berkeley DB
The original development of Subversion used the Berkeley DB package. Subversion has some limitations with Berkeley DB usage when a program that accesses the database crashes or terminates forcibly. No data loss or corruption occurs, but the repository remains offline while Berkeley DB replays the journal and cleans up any outstanding locks. The safest way to use Subversion with a Berkeley DB repository involves a single server-process running as one user (instead of through a shared filesystem).
 
FSFS
In 2004, a new storage subsystem was developed and named FSFS. It works faster (than the Berkeley DB backend) on directories with a large number of files and takes less disk space, due to less logging.

Beginning with Subversion 1.2, FSFS became the default data store for new repositories.

The etymology of "FSFS" is based on Subversion's use of the term "filesystem" for its repository storage system. FSFS stores its contents directly within the operating system's filesystem, rather than a structured system like Berkeley DB. Thus, it is a "[Subversion] FileSystem atop the FileSystem".
Repository access
Main article: Comparison of Subversion clients

Access to Subversion repositories can take place by:
  • Local filesystem or network filesystem, accessed by client directly. This mode uses the file:///path access scheme.
  • WebDAV/Delta-V (over http or https) using the mod_dav_svn module for Apache 2. This mode uses the http://host/path access scheme or https://host/path for secure connections using ssl.
  • Custom "svn" protocol (default port 3690), using plain text or over TCP/IP. This mode uses either the svn://host/path access scheme for unencrypted transport or svn+ssh://host/path scheme for tunneling over ssh.
All three means can access both FSFS and Berkeley DB repositories.

Any 1.x version of a client can work with any 1.x server. Newer clients and servers have additional features and performance capabilities, but have fallback support for older clients/servers.
Gitorious provides an open source infrastructure for hosting projects that use Git. It also supports projects with wikis, a web interface for merge requests and code reviews and activity timelines for projects and developers.

Homepage: gitorious.org

Gitorious is a Web site hosting collaborative open source projects using the Git distributed revision control system. The name also refers to the server software that the Web site is developed and hosted on. According to the Git User's Survey in 2011, Gitorious is the second most popular hosting service for Git, with 11.7% of respondents indicating they use it, behind 87.5% using GitHub.

Features
In addition to source code hosting, Gitorious provides projects with wikis, a web interface for merge requests and code reviews, and activity timelines for projects and developers.

Gitorious AS also releases the Gitorious software under the GPL v3 .

Limitations and Constraints
According to the terms of service, if bandwidth usage for an account, project or repository exceeds 500 MB/month, or significantly exceeds the average bandwidth usage of other Gitorious.org users or customers, Gitorious.org reserve the right to immediately disable or throttle the account, project or repository until the account owner can reduce the bandwidth consumption.
GitLab is a self hosted Git management software. A fast, secure and stable solution based on Ruby on Rails. GitLab CI is an open-source continuous integration server. It is a continuous integration server closely integrated with GitLab. GitLab CI requires present of GitLab instance with web hooks setup to make builds automatically.

Homepage: gitlab.org

GitLab is a fast, secure and stable solution to manage your projects.It is based on Ruby on Rails and has a free and open-source license (MIT). GitLab is the most installed git management application in the world.