Skip to content
tlipski edited this page Jan 18, 2012 · 5 revisions

Subversion synchronization

The subversion synchronization can be achieved using following commands:

  1. init empty repo (this is already done for this one)
ngad% git init
Initialized empty Git repository in /mnt/ssd/signavio-core-mirror/.git/
ngad% git svn init --prefix=svn/ --trunk=trunk http://signavio-core-components.googlecode.com/svn/ 
ngad% git svn fetch -r 1
r1 = fca2541329420531cb1eaefa6e9ad7265663855a (refs/remotes/svn/trunk)
Checked out HEAD:
  http://signavio-core-components.googlecode.com/svn/trunk r1
ngad% git branch -av    
* master            70cfb05 Initial directory structure.
  remotes/svn/trunk 70cfb05 Initial directory structure.
ngad% git remote add origin git@github.com:bluesoft-rnd/signavio-core-mirror.git
ngad% git push -u origin master
Counting objects: 2, done.
Writing objects: 100% (2/2), 247 bytes, done.
Total 2 (delta 0), reused 0 (delta 0)
To git@github.com:bluesoft-rnd/signavio-core-mirror.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

To fetch newer revisions from svn, original local repo created above is not necessary, new one, cloned from github can be used:

ngad% git clone git@github.com:bluesoft-rnd/signavio-core-mirror.git
Cloning into signavio-core-mirror...
remote: Counting objects: 2, done.
remote: Total 2 (delta 0), reused 2 (delta 0)
Receiving objects: 100% (2/2), done.
ngad% cd signavio-core-mirror 
ngad% git svn init --prefix=svn/ --trunk=trunk http://signavio-core-components.googlecode.com/svn/ 

Fetch revision (for example r2 - but this one is already fetched!) from signavio SVN:

ngad% git svn fetch -r 2
ngad% git svn fetch -r 2
	A	.project
	A	build.properties
	A	build.xml
r2 = 84b9fc0b9c1ef698613bb9e2b1074640157b783d (refs/remotes/svn/trunk)
ngad% git log
commit fca2541329420531cb1eaefa6e9ad7265663855a
Author: (no author) <(no author)@ed087902-8a0d-0a71-2a74-18b522bb7755>
Date:   Wed Aug 18 15:30:48 2010 +0000

    Initial directory structure.
    
    git-svn-id: http://signavio-core-components.googlecode.com/svn/trunk@1 ed087
ngad% git branch -av
* master                fca2541 Initial directory structure.
  remotes/origin/HEAD   -> origin/master
  remotes/origin/master fca2541 Initial directory structure.
  remotes/svn/trunk     84b9fc0 Initial code donation by Signavio GmbH, http://www.signavio.com/ Part 1: - Build and project files

Merge changes from SVN to branch called 'svn'

ngad% git branch svn
ngad% git checkout svn
Switched to branch 'svn'
ngad% git merge remotes/svn/trunk
Merge made by recursive.
 .project         |   11 ++++
 build.properties |   31 ++++++++++
 build.xml        |  177 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 219 insertions(+), 0 deletions(-)
 create mode 100644 .project
 create mode 100644 build.properties
 create mode 100644 build.xml
ngad% git branch -av
  master                fca2541 Initial directory structure.
* svn                   6a56487 Merge remote-tracking branch 'remotes/svn/trunk' into svn
  remotes/origin/HEAD   -> origin/master
  remotes/origin/master fca2541 Initial directory structure.
  remotes/svn/trunk     84b9fc0 Initial code donation by Signavio GmbH, http://www.signavio.com/ Part 1: - Build and project files
ngad% git push --all
Enter passphrase for key '/home/tomek/.ssh/id_dsa': 
Counting objects: 7, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 2.78 KiB, done.
Total 6 (delta 0), reused 0 (delta 0)
To git@github.com:bluesoft-rnd/signavio-core-mirror.git
 * [new branch]      svn -> svn

merge from svn branch to master:

ngad% git checkout master
Switched to branch 'master'
ngad% git merge svn
Updating fca2541..6a56487
Fast-forward
 .project         |   11 ++++
 build.properties |   31 ++++++++++
 build.xml        |  177 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 219 insertions(+), 0 deletions(-)
 create mode 100644 .project
 create mode 100644 build.properties
 create mode 100644 build.xml
ngad% git push --all
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:bluesoft-rnd/signavio-core-mirror.git
   fca2541..6a56487  master -> master

And finally, to fetch and merge current revisions:

ngad% git svn fetch -r 2:HEAD    
#...
ngad% git checkout svn
#...
ngad% git merge remotes/svn/trunk
#...
ngad% git push --all
#...
ngad% git checkout master
#...
ngad% git merge svn
#...
ngad% git push --all
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:bluesoft-rnd/signavio-core-mirror.git
   6a56487..30c755c  master -> master

Aperte Workflow fixes in this case can be stored in master branch. Merge is possible through svn branch.

Clone this wiki locally