1

Consider my below scenario :

Suppose my svn repository contains 100 revisions, which has been migrated to Git Repository (So my Git contains the 100 revisions).

Now my svn repository got updated, say with 5 more revisions hence it has 105 revisions. How do i migrate only the revisions 101 t0 105 to my GIT repository?

The main challenges I have :

  1. I dont want to sync both SVN and Git.(SVN will be decommisioned soon)
  2. I need to migrate the Revisions with its history.

I tried following up with these links which dont help me,(fyi)

  1. Using svnsync

  2. USing git svn clone

Community
  • 1
  • 1
SabareeshSS
  • 1,361
  • 2
  • 11
  • 20
  • Whats wrong with the anders in http://stackoverflow.com/questions/747075/how-to-git-svn-clone-the-last-n-revisions-from-a-subversion-repository ? They don't work? or? – Tim Mar 20 '15 at 07:42
  • I wish to migrate to the existing Git repository and i should bring History for me. – SabareeshSS Mar 20 '15 at 07:45
  • That part was pretty clear, but why dont the linked questions help you? especially the 2nd – Tim Mar 20 '15 at 07:46
  • It is not bringing revisions from 101 to 105, as i mentioned I need only the latest revisions to get it updated to the migrated Git repository. – SabareeshSS Mar 20 '15 at 09:32
  • You can specify the revisiions you want to clone – Tim Mar 20 '15 at 09:34
  • I had specified the revision number. – SabareeshSS Mar 20 '15 at 09:36
  • That may be because 101 to 105 occurred somewhere other than trunk. You need to make sure you tell git-svn how you wanted Subversion mapped into Git. There's a `--stdlayout` option, but if that doesn't work for you, then you should specify it manually. Not all commits will appears as history for the *master* branch--some commits may have just been for tags, or for other branches. Those commits will appear in their respective places within the Git repo when you have them mapped correctly. – John Szakmeister Mar 23 '15 at 09:35

1 Answers1

4

Use git-svn. When you do initial clone git svn clone ... you will get the first 100 revisions. Later you do git svn fetch which would fetch the newly appeared 5 revisions.

All 105 revisions will be present in a correct order thus the history will be preserved.

Update:

If you wish to avoid getting first 100 revisions, do git svn init with fetch initially:

git svn init ...
git svn fetch -r <svn revision you want to start from>
Mykola Gurov
  • 8,517
  • 4
  • 29
  • 27