Co-Existence Subversion & Git: Difference between revisions
Line 46: | Line 46: | ||
* .svn/ | * .svn/ | ||
|} | |} | ||
== Add Git to Subversion == | |||
The first scenario is to add Git to an existing Subversion repository. | |||
* Assuming the remote repository will be stored into GitLab <ref>[https://www.gitlab.com GitLab], since Github is owned by Microsoft GitLab is the place to be.</ref> | |||
* Assuming the User of Gitlab is named 'HaFr1954' | |||
* Assuming the subversion project is named 'AWK' | |||
* Assuming the subversion project is located in '/Sources/AWK'. | |||
The steps are: | |||
* Goto the Website of GitLab and Login with the UID 'HaFr1954' (Replace the name by your name) | |||
* Create a new blank project | |||
** Project Name: 'AWK' | |||
** Project URL: https://gitlab.com/HaFr1954 | |||
** Project slug: awk | |||
** Project description: <Make your own description> | |||
== See also == | == See also == |
Revision as of 20:56, 28 January 2019
You are definitely not alone when you have a wide range of Subversion repositories, but want to move to Git.
Or you have a lot of users who want to use SVN, but also a lot of users wanna use Git instead.
Introduction
There are even more reasons to have more than one VCS:
- Migration, Git is more sophisticated than Svn and more reliable (more than one point of restore against one point of disaster).
- Co-existence, preparing the migration mau need both systems to work next to each other.
- Proof of Concept, before deciding to migrate you want to know if the solution works for you.
- Mixed, one or more of the above mentioned items.
Git is powerful, but has also a steep learning curve, making the implementation difficult.
The first very basic question is can you have 2 VCS systems next to each other?
The common answer is Yes, the more advanced answer is Maybe, and the smart answer is ...
Git vs SVN adaption
Of coarse the normally answer should be stick to just one VCS, but that is beyond the main question, in the end you want to have only one VCS, but:
- Many scripts are working with SVN
- Migration of all scripts may not be possible or not wanted at the moment.
- The Subversion-workflow is easy, embedded and well understood
- The adaption of Git is difficult due to the its steep learning curve.
Migration and coexistence
Migration can not be done without a intermediate state, meaning there will always be a period of coexistence of both the old and the new state.
Big bang migration is possible. The problem of coexistence is then minimized in the development phase.
But with a new workflow for the development the problem is not the coexistence but the adaption.
So in the end, you always have coexistence. Better accept that coexistence is part of the migration!
Knowing me, knowing you
No, not al all. Both systems should not know anything about each other, so:
Subject | Subversion | Git |
---|---|---|
Repository | Repository is stored into the directories .svn | Local repo is stored into the directory .git |
Ignores | The embedded svnignore contains
|
File .gitignore contains
|
Add Git to Subversion
The first scenario is to add Git to an existing Subversion repository.
- Assuming the remote repository will be stored into GitLab [1]
- Assuming the User of Gitlab is named 'HaFr1954'
- Assuming the subversion project is named 'AWK'
- Assuming the subversion project is located in '/Sources/AWK'.
The steps are:
- Goto the Website of GitLab and Login with the UID 'HaFr1954' (Replace the name by your name)
- Create a new blank project
- Project Name: 'AWK'
- Project URL: https://gitlab.com/HaFr1954
- Project slug: awk
- Project description: <Make your own description>