The Differences Between SVN And Git That Matter - TechTarget

SVN explained

SVN has mostly found a home in development shops where teams deal with large repositories and binary files that prioritize finer access control. For instance, a lot of game development studios continue to favor centralized models for their primary use. By design, SVN provides a centralized approach to code management by storing code and related metadata in a single server. Client machines must connect to the server to retrieve a copy of the code within a particular repository.

What are SVN's benefits?

The entirety of that code repository and its related metadata reside on that single server, with the exception of "working code" that is actively under maintenance. This means that individual clients only need to store the blocks of code they wish to alter, and can commit their changes to the server directly.

Similar to other versioning tools, SVN takes a file-centric approach to version retrieval. SVN stores the latest version of the codebase as a complete file that includes all historic changes and modifications.

SVN still maintains a record of individual past changes, but only stores the specific sections of code that were manipulated rather than a complete replication of the code repository, which is based on the process of Delta differencing. To retrieve a specific version all the delta fragments are applied sequentially on the latest version.

What are SVN's disadvantages?

SVN's approach does come with some drawbacks that users should be aware of. Due to its centralized design, most operations dealing with state or history will require a direct connection to the central server.

Every commit pushed to the server requires a new version of the entire repository, including the unchanged files. Pushing a commit may require both the server and client to update before the commit can go through. This is necessary in cases where a locally changed file has a newer revision on the server.

SVN adopts the concept of "branches" in order to isolate any code experiments or incomplete features and uses tags for code snapshotting. SVN also enables you to quickly retrieve versions of a code repository through the checkout process. While SVN doesn't support nested repositories, you can still retrieve and combine changes found in multiple code repositories into one working copy of the code using the command svn:externals.

Từ khóa » Svn Và Git