Thursday, May 21, 2009

Mercurial weirdness...

I've an old project, which I started to track in SVN. Then I've found out how cool git is, so I tried to convert the repo to git. It did not work. Never mind, I used the latest working copy and created a git repo out of it.

Time passed, and I kept both repositories, because I did not want to touch the live system, so I committed everything to svn which I developed in git. Smart, isn't it? :)

But now! I've found Mercurial! I saw that Google Code also supports it now, so it must be a really cool thing!

I started the conversion from the git repo first based on the tutorial (hg convert -s git /old_project/project_master project_master), and then cloned the main repository (hg clone /new_project_repo/project_master project_dev) , and the cloned head was not the same as the git head. What the hell??

Then I decided to clone the repository from SVN. The same result, even worse: the directory structure was totally messed up (in SVN, I did a lot of directory reorganization, probably it is why I could not imported it to git either, and when I imported to Mercurial, it reminded me the old directory structure).

Ok, then: back to the git version, and try to find out what patches are missing. I checked the first difference, found the changelist in git, patched the mercurial cloned working copy, and it created a lot of rejects, so I decided to give this up.

Then, since I did not want to spend too much time on that: diff -u -r -N git_repo project_dev >patch1.txt and then patch -p1 <patch1.txt, and then added the missing files, committing the change.

Weird. Unfortunately I did not have more time to debug this, though I am slightly worried about this. I did not like git (I could not get used to it after SVN), so I'll try mercurian, but as a backup, I'll keep my git and SVN repos as well. :)


  1. You should try out some additional scm solutions to mess it up a little bit more. :)

  2. @Pistahh: Maybe I'll get back to it sometimes, but it just too many pushes/pulls for me to achieve some small result...