_____ is a popular website for hosting projects that use the git language for version control.

GitHub is a web-based version-control and collaboration platform for software developers. Microsoft, the biggest single contributor to GitHub, initiated an acquisition of GitHub for $7.5 billion in June, 2018. GitHub, which is delivered through a software-as-a-service (SaaS) business model, was started in 2008 and was founded on Git, an open source code management system created by Linus Torvalds to make software builds faster.

Git is used to store the source code for a project and track the complete history of all changes to that code. It allows developers to collaborate on a project more effectively by providing tools for managing possibly conflicting changes from multiple developers. GitHub allows developers to change, adapt and improve software from its public repositories for free, but it charges for private repositories, offering various paid plans. Each public or private repository contains all of a project's files, as well as each file's revision history. Repositories can have multiple collaborators and can be either public or private. 

GitHub facilitates social coding by providing a web interface to the Git code repository and management tools for collaboration. GitHub can be thought of as a serious social networking site for software developers. Members can follow each other, rate each other's work, receive updates for specific projects and communicate publicly or privately. 

Three important terms used by developers in GitHub are fork, pull request and merge. A fork, also known as a branch, is simply a repository that has been copied from one member's account to another member's account. Forks and branches allow a developer to make modifications without affecting the original code. If the developer would like to share the modifications, she can send a pull request to the owner of the original repository. If, after reviewing the modifications, the original owner would like to pull the modifications into the repository, she can accept the modifications and merge them with the original repository. Commits are, by default, all retained and interleaved onto the master project, or can be combined into a simpler merge via commit squashing.   

A GitHub Pages Tutorial on How to Host Personal Websites 7:45

Because GitHub is so intuitive to use and its version-control tools are so useful for collaboration, nonprogrammers have also begun to use GitHub to work on document-based and multimedia projects. GitLab is an open source alternative to GitHub.

GitHub products and features

GitHub offers an on-premises version in addition to the well-known SaaS product. GitHub Enterprise supports integrated development environments and continuous integration tool integration, as well as a litany of third-party apps and services. It offers increased security and auditability than the SaaS version.

Other products and features of note include:

  • Github Gist allows GitHub users to share pieces of code or other notes.
  • GitHub Flow is a lightweight, branch-based workflow for regularly updated deployments.
  • GitHub Pages are static webpages to host a project, pulling information directly from an individual's or organization's GitHub repository.
  • GitHub Desktop enables users to access GitHub from Windows or Mac desktops, rather than going to GitHub's website.
  • GitHub Student Developer Pack is a free offering of developer tools that is limited to students, and includes cloud resources, programming tools and support, and GitHub access.

Subversion is one of many version control options available today. It's often abbreviated as SVN. In this blog, you'll get a comprehensive overview of what Subversion is.

What Is Subversion Used For?

Subversion is used for maintaining current and historical versions of projects. Subversion is an open source centralized version control system. It's licensed under Apache. It's also referred to as a software version and revisioning control system. 

What Is SVN?

SVN stands for Subversion. So, SVN and Subversion are the same. SVN is used to manage and track changes to code and assets across projects.

Is Subversion Still Used?

Subversion used to be one of the most popular systems. But SVN’s popularity is waning. However, there are still millions of lines stored in it. It even continues to be actively maintained, albeit by a small open source community.

Many teams have switched from SVN to Helix Core. That's because Helix Core delivers greater speed, scale, and security than SVN can. See for yourself why SVN users switch. Try Helix Core for free for up to 5 users.

Switch From SVN to Helix Core

What Is a SVN Repository?

A SVN repository is a collection of files complete with a full history of changes. 

More on SVN repositories >>

Subversion (SVN) Is a Distributed Version Control System?

SVN is actually a centralized version control system. It's different from distributed systems, like Git.

SVN Server Explained

Centralized version control means that the version history is stored in a central server. When a developer wants to make changes to certain files, they pull files from that central server to their own computer. After the developer has made changes, they send the changed files back to the central server.

How Does Subversion Work?

Here's how SVN works. 

SVN originally was designed as a command line interface. This means you would open your Terminal and type text commands.

For Subversion to work, the SVN setup needs two main elements:

  • The server, which has all versions of all source files
  • A local copy of the files, which is on your computer

The files on your computer are called working files. These are the files in which each user makes edits. Then, users commit their changes to the SVN server.

Each time a user commits a change, SVN manages and records it by creating a new version. Like most version control options, users typically work with the most recent version. But if an older version is needed, you can revert to an earlier version.

What Are the Subversion Tools?

There are a number of Subversion tools and clients that are commonly used. TortoiseSVN, for example, is one of the most popular Subversion tools.

You might also consider tools for hosting Subversion, such as Helix TeamHub.

Should You Use Version Control With SVN?

Version control with SVN is popular. But is it the right choice for your team? Here are some challenges you'll face when doing version control with SVN. 

SVN Has a Tedious Branching Model

The most common complaint about SVN is its tedious branching model. Branches allow you to work on multiple versions of your code simultaneously. In SVN, branches are created as directories inside the server. Many developers dislike this directory structure. But the challenges don’t stop there.

SVN version 1.6 introduced a concept called tree conflicts. Tree conflicts are conflicts caused by changes in the directory structure, and they occur often. Since SVN doesn’t allow you to commit your changes when there’s a tree conflict, this adds complexity to implementing a branching strategy in SVN.

SVN Requires You to Be Connected to the Central Repo

In order to commit changes, SVN requires that you’re connected to the central repository.

At this point, it’s good to repeat the ancient version control adage: "Commit early; commit often."

With this wisdom in mind, using SVN without a connection to the central repo is pointless. For example, if you code offline — during flights, for example — SVN doesn’t let you to commit to the central repo before you restore your connection.

If you have multiple repositories, it gets more complicated.

SVN Requires You to Resolve Conflicts Manually

Merging is the other big problem that developers often complain about with SVN. If you’re working with a history where a set of changes are made and committed, then another change is made (i.e., linear) and committed, the merge will be easy.

Things get complicated when you have two or more developers working on the same code base and you need to merge. In this case, SVN fails and the developers need to resolve the conflicts manually, which wastes hours of developer time.

So, Why Subversion?

SVN comes with many challenges. So why is SVN still used? There are 2 big reasons: cost and inertia.

  • Cost: SVN is open source, which means it’s “free.” Learn more about the real cost of SVN.
  • Inertia: Once a large code base is built up, it’s can be hard to switch VCS. SVN has been around since 2004, and the organizations who adopted it have millions of lines of code in it.

Outgrown Subversion?

If you’ve outgrown SVN, Perforce has enterprise version control software that lets you scale without limits. That version control is Helix Core.

Helix Core is centralized version control with all the benefits of SVN without the challenges.

You'll get: 

  • A centralized server that creates a single source of truth.
  • Easy-to-use tools.
  • Efficient and powerful branching.
  • Easy to commit changes, even across multiple repositories.
  • Automatic resolution of merge conflicts.

Helix Core is perfect for collaboration, scalability, and flexibility. Try the full version of Helix Core. It’s free for up to 5 users and 20 workspaces.

Switch to Helix Core

More on SVN:

  • SVN Hosting
  • SVN Commands
  • How to Use SVN (and When to Migrate)