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. Show
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 featuresGitHub 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:
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?
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.
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 ExplainedCentralized 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 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?
SVN Has a Tedious Branching ModelThe 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 RepoIn 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 ManuallyMerging 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.
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:
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:
|