You are here

Amarok on Git

I've been using Git for a couple of weeks now. Really I have mixed feelings about it. There's a million commands, many of which are redundant. Its obvious no one sat down and thought about what commands would make sense. However it is really fast. Having a git log that takes half a second is just handy. And unlike SVK, it does have a wealth of documentation.

In the future we might do Amarok feature branches in Git... SVN branches are just so horrible.

It took about 6 hours or so to fetch Amarok from SVN, it was more then 600 megabytes before "repacking" (why is it repacking when I've never packed before? some implementation detail being shown in the command name undoubtedly). But unlike SVK its easy to share your Git with others. :-) So I'll spare you the trouble. You can git clone it from http://kollide.net/~eean/amarok.git , but then none of the git svn functions work. So more useful is the tar ball.

Then do something like this:
tar -xvf amarok.git.tar
mkdir amarok
mv amarok.git amarok/.git
cd amarok
nano .git/config #change the SVN settings
git checkout .
git svn rebase #rebase... obviously that means pulling in new changes right? ;-)
git log
...edit...
git commit -a
git svn dcommit #push to SVN.

Issues:
  • Its currently impossible to easily lump seperate git commits together.
  • You can't git svn rebase if you have any uncommited files. So do something like this:
    git commit -a
    git svn rebase
    git reset HEAD^
    HEAD^ is somehow supposed to mean the previous commit. This presents you the new changes from SVN and your code is still uncommited, so that it doesn't get pushed to SVN as a separate commit.


Anyways I didn't mean to turn this blog into bashing git, but oh well. Git is a neat piece of technology so its just more frustrating that its UI isn't more thought out. This extends to its GUIs btw... don't bother with the Qt4 Git GUI, it looks exactly like the Tk one.