Apache Subversion (SVN) has been used for over 20 years in large file size projects and remains a popular choice for version control among semiconductor and game companies today. While the changing development processes of the past two decades have caused many to embrace newer version control systems like Git, there are still key performance reasons for sticking with SVN. Keep reading to learn more about what SVN is and why you should still consider using SVN for your next semiconductor or gaming project.
SVN is an open source, centralized version control system. Developers check out and download files to their local machine, make changes, and upload them back to the server by committing back to the central repository. Because developers only download what they are working on, code checkouts can be faster on SVN especially if your code base is large.
One of the main differentiators between SVN and Git is the branching model. SVN uses a directory structure where all commits go back to the trunk and developers only download the files needed for what they are working on locally. This setup requires developers to be online and connected to the svn server. Git, on the other hand, traditionally requires developers to download a full local repository but supports feature and topic based branching, allowing developers to have multiple local branches where they can work on different topics independently. This setup allows developers to work offline.
When it’s time to commit changes, those using SVN might run into more merge conflicts because everyone is making changes in a central branch and it can be difficult to keep your local version in sync. The upside of this model is that there is always a single source of truth for which branches exist and how they are structured. Those using Git have additional flexibility in staging their changes and choosing which changes to commit and can therefore avoid merge conflicts. While this model creates many branches not visible to everyone, it has the added benefit of creating multiple backups of the entire repository.
The main pain point with Git when compared to SVN was the requirement to download the entire repository. Recently, Git introduced three new features: sparse checkout, sparse index, and partial clone, which helped address that shortcoming before Github removed SVN support.
With the move to distributed version control systems like Git, and GitHub’s decision to sunset SVN support, you might be wondering if people still use SVN? The answer is yes, they do, though the number of users is admittedly much smaller than in the past. One of the key advantages of SVN is its ability to handle large code bases and in particular large binary files.
Because Git downloads the entire codebase, local operations are faster and developers have the flexibility to work offline – but this creates a big problem when the files you have to download are large. Each time a large file is changed and committed, that file will need to be downloaded by everyone the next time they sync their local copies, causing the Git repositories to grow, which slows down development. For large file sizes with frequent changes, SVN simply has better performance.
Given its ability to handle large codebases and binary files it’s not surprising that SVN is still used by many in the semiconductor, video game, and manufacturing industries. Additionally, SVN has an unalterable change history (unlike Git), which makes it a reliable choice for organizations operating under strict compliance and security standards.
Semiconductor designs are becoming more complex, leading to larger design documents. In addition, the semiconductor manufacturing process now involves a complicated supply chain of many different companies contributing to the process. All of these interactions, changes, and handoffs must be carefully tracked, leading to a large number of files that are frequently updated.
Games have always been complex, but with today’s emphasis on high quality graphics and the move to more remote studios, version control that can support large binary files and quick downloads is even more important.
Industrial manufacturing relies on PLCs (programmable logic controllers), which are industrial computers adapted to control manufacturing processes and work in real-time. PLCs are programmed to automate crucial and repeatable tasks and PLC code often involves binary files. In addition, manufacturing industries often have strict regulations and standards and require traceability and an audit trail to ensure compliance.
Whether for semiconductors, gaming, or other projects, Assembla can host your SVN instance in the cloud for even more flexibility and scale. We are the leading provider of SVN cloud hosting — we host the highest number of SVN repositories globally — and our service is celebrated for its speed, complete with SSH acceleration, and reliability. Our source code management platform also includes support for Git repositories. Our team of seasoned experts is committed to delivering outstanding support for Apache Subversion in the cloud.
To find out more about how your team can benefit from Subversion hosted by Assembla, start a free 14 day trial of Assembla. Our team would love to talk with you about how a cloud solution can meet your development needs.