git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Trying to sync two svn repositories with git-svn (repost)

From
Avery Pennarun <apenwarr@gmail.com>
Date
May 4, 2009, 15:58 UTC
Message-ID
<32541b130905040858v2a0b7a6br5b056a365fcb6855@mail.gmail.com>
In-Reply-To
<20090502215852.GJ15420@raven.wolf.lan>
On Sat, May 2, 2009 at 5:58 PM, Josef Wolf <jw@raven.inka.de> wrote:
> Somehow, I still can't get it work.  This is what I do:
[...]
Show 7 quoted lines
>  # move stuff from svn-2 to svn-1
>  #
>  git svn fetch svn-2
>  git checkout svn-1
>  git cherry-pick 05b964
>  [  continue cherry-picking ]
>  git merge --no-ff -s ours svn-1

Note that you probably should be merging '-s ours svn-2' here, not svn-1. svn-1 already contains svn-1 (of course) so that merge didn't do anything. It most especially doesn't mark svn-1 as being up-to-date with svn-2, and that's probably going to make trouble later.

>  # check what I have done
>  #
>  git diff svn-1-orig svn-1/trunk # shows what I expect
This is unsurprising, since you haven't changed either branch during the above.
Show 5 quoted lines
>  # move the result to svn-1
>  #
>  git checkout svn-1/trunk
>  git merge --no-ff svn-1
>  git svn dcommit
This looks ok.
Show 7 quoted lines
>  # move stuff from svn-1 to svn-2
>  #
>  git svn fetch svn-1
>  git checkout svn-2
>  git cherry-pick -n c9dae
>  [ continue cherry-picking ]
>  git merge --no-ff -s ours svn-2

Again, you seem to have merged in the wrong branch here. This one should be svn-1.

>  # check what I have done
>  #
>  git diff svn-2-orig svn-2/trunk # shows what I expect
Again, these branches haven't changed, so no surprise here either.
Show 5 quoted lines
>  # move the result to svn-2
>  #
>  git checkout svn-2/trunk
>  git merge --no-ff svn-2
>  git svn dcommit
This seems ok.
> At this point, we should be synchronized.

Yes, although there are no merges between svn-1 and svn-2, so the next attempt at merging will merge *everything*, causing conflicts.

Show 6 quoted lines
>  git checkout svn-2/trunk
>  git svn fetch svn-1
>  git merge --no-ff svn-1
>
> BOOM.  Although no new commits were fetched, we get a lot of conflicts
> here.  So git is not fully aware about the fact that we are synchronized.

You seem to almost have it. Fix the -s ours merges above and I think you'll be in business.

Have fun,
Avery
Previous: Josef WolfNext: Josef Wolf
Message 15 of 31 in “Trying to sync two svn repositories with git-svn (repost)”
  1. Josef WolfApr 27, 2009
  2. Josef WolfApr 28, 2009
  3. Avery PennarunApr 28, 2009
  4. Josef WolfApr 28, 2009
  5. Avery PennarunApr 29, 2009
  6. Josef WolfApr 29, 2009
  7. Avery PennarunApr 29, 2009
  8. Josef WolfApr 29, 2009
  9. Avery PennarunApr 30, 2009
  10. Josef WolfApr 30, 2009
  11. Avery PennarunApr 30, 2009
  12. Josef WolfMay 1, 2009
  13. Avery PennarunMay 1, 2009
  14. Josef WolfMay 2, 2009
  15. Avery PennarunMay 4, 2009
  16. Josef WolfMay 4, 2009
  17. Josef WolfMay 6, 2009
  18. Avery PennarunMay 6, 2009
  19. Josef WolfMay 6, 2009
  20. Avery PennarunMay 8, 2009
  21. Josef WolfMay 8, 2009
  22. Josef WolfMay 13, 2009
  23. Avery PennarunMay 13, 2009
  24. Josef WolfMay 13, 2009
  25. Avery PennarunMay 14, 2009
  26. Josef WolfMay 14, 2009
  27. Avery PennarunMay 14, 2009
  28. Josef WolfMay 15, 2009
  29. Avery PennarunMay 15, 2009
  30. Josef WolfMay 17, 2009
  31. Josef WolfMay 20, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.