what is the advantage of subversion when compared with git?

git, svn, version-control

Solution

I advise you to read the article "10 things I hate about Git" and the StackOverflow thread SVN vs Git. I also advise reading this doc about Subversion and Git.

While others already mentioned simplicity (simplicity is a trademark of Apache Subversion ;) BTW) and clear workflow as the major Subversion advantage I would like to add some of other important Apache Subversion pros:

Better IDE integration and GUIs. You can see built-in SVN client in most IDEs (or implemented as a plug-in). Some of them provide very comfortable and intuitive version-control integration with IDE. On the other hand, Git does not have good graphical interface except maybe well-known GitHub. IDE integration is also still in process, but hacky command-line nature of Git does not really translate to GUIs. You still have to use command-line for anything more complicated than branching or pulling / pushing.

BTW, TortoiseSVN Subversion client can be considered as the best version-control client available for Windows.

Subversion is centralized. In other words, distributed systems are NOT so-called "next generation VCS" (hello, Eric Sink et al!), they are, ehm, just distributed. Being distributed is just another approach which is great for open-source projects such as Linux Kernel (Git was developed for Linux Kernel, remember?) but has its own downsides.

Full revision history. SVN maintains versioning for directories, renames, and file metadata. Subversion acts like a time machine with immutable history. You can always use the machine to travel back in time to check how your date looked like on e.g. January 3rd 2009.

Partial checkouts. With Subversion you don't need to get a complete repository clone. You can checkout a particular branch or trunk of your project. Even more, you can get any subtree of your repository. Greatly minimizes traffic required to start working on a task. If you already have a working copy, switching to another branch or shelve is instant (if you have connectivity to the remote repo, obviously).

Locking support. Subversion supports lock-modify-unlock versioning model. Git does not. This can be really helpful in case you have non-mergeable files. Hello gamedev! :)

Built-in authorization and authentication mechanisms.

Problem

As we all know, git is very popular in these days, since it is highly efficient for it has all the history on local computer, and retrieve of history can be done without network. Maybe for extranet users, the network issue is not that important, but git also have other kinds of advantages, such as lightweight branch (i am still not sure what is the differece between it and svn's branch, why git's branch is light weight)? I also know lots of person is still using subversion, why? If git is that nice, they may switch to git:) So, can anybody here tell me some advantages of subversion? one more question: ``` is there anything which can be done by svn, but cannot be done with git? ```

Original source

Related problems