Easy Move From SVN to Gitlab Repository
Tags: git
Published: 2019-06-12 05:04:56

In this article, we gonna see how we can move our repository from SVN (Subversion) to Gitlab.
But before moving we just have a short introduction on things like

What is SVN (Subversion)?
What is GIT?
What is the difference between SVN and GIT?

Ok, Now let move forward and look out our checklist.

**What is SVN (Subversion)?**
So, SVN is also known as Apache Subversion which is a software versioning and revision control system distributed under an open source license.
It uses subversion to maintain current files and your previous files such as source code, webpage, and documentation.

Note: If you wanted to know more about SVN you can check out the following link
**RefLink:** https://www.perforce.com/blog/vcs/what-svn

**What is GIT?**
So, as per GIT official web site
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

Git is easy to learn and has a tiny footprint with lightning fast performance. It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with features like cheap local branching, convenient staging areas, and multiple workflows.

Note: If you wanted to know more about GIT you can check out the following link
**RefLink:** https://www.atlassian.com/git/tutorials/what-is-git
             https://git-scm.com/book/en/v2/Getting-Started-What-is-Git%3F

**What is the difference between SVN and GIT?**

**Decentralized:** GIT is decentralized and SVN is centralized in nature.
In GIT you can have a local copy(i.e repository), so whenever we move our changes, those will be stores locally first and moved to the central repository. Whereas in SVN, it points to the central repository.

**Complex to learn:** GIT is difficult to learn for some developers, because it has huge concepts, whereas SVN has fewer concepts and easy to learn.

**Unable to handle Binary files:** Git becomes slow, when deals with large binary files, whereas with SVN large binaries can be handled easily.

**Internal directory:** Git creates the .git folder only in the root directory, whereas .svn will be created for each folder, in case of SVN.

**User Interface:** Git itself doesn’t have very good user-interface, but SVN has good user interfaces.

**Network Access:** Network access is not mandatory for the GIT operation but in svn, network access is required to perform the SVN operation.

**Global Version Number:** Git does not have a global version number, whereas svn does have a global version number.
 
Now as we got brush-up on this let see how easily we can move our repository from SVN to Gitlab.

![](https://thepracticaldev.s3.amazonaws.com/i/9rvypojiwae59ly2yb9i.jpg)

The step-by-step command to migrate the SVN to Gitlab

- Install git

  *$ sudo apt-get install git*

- Install git-svn

  *$ sudo apt-get install git-svn*

- Clone SVN repository by git-svn command.
  
  *$ git svn clone YOUR_SVN_URL*

- Adding Gitlab url in the same directory.

  *$ git remote add gitlab YOUR_GITLAB_URL*

- Finally, push your SVN repository to Gitlab.

  *$ git push — set-upstream gitlab master*

If you wanted to dive more on SVN to Gitlab migration you can check out the following link.

https://docs.gitlab.com/ee/user/project/import/svn.html