Tux

...making Linux just a little more fun!

2-cent tips: Using git

Jimmy O'Regan [joregan at gmail.com]


Tue, 8 Apr 2008 01:04:34 +0100

Using git to recreate an old CVS layout
I had to go hunting for old data in a CVS repository today, and wanted to hang on to the data in one place. git-cvsimport does a nice job of maintaining the CVS history of each module, but because of the way the repository was laid out, each module had to be grabbed separately. To join them back together, I created a new git repository, and used 'git-submodule add' to drag in each of the converted modules.

It's not as convenient as being able to look at the whole project history at once, but at least it's a lot easier to pass to the next poor soul who finds themselves in my situation.

Git as a better SVN
I've been using git-svn for decentralised SVN access for a few months - sometimes I don't have access to an internet connection, sometimes I don't want to commit something until it's finished, sometimes I want to be able to work on a branchwithout having to redo everything when I want to merge - but today I found another use: to revert a whole commit, instead of individual files.

There's probably a proper way to do it, but being able to open gitk, right click on the commit and save it as a file, chop off the mail headers and use patch -R -p1 was a lot quicker than the subversion way. (Though SVN is probably a better if you just want to revert one file from a commit).


Top    Back


Kapil Hari Paranjape [kapil at imsc.res.in]


Tue, 8 Apr 2008 06:40:27 +0530

Hello,

Git really "gits" one going with scm work!

On Tue, 08 Apr 2008, Jimmy O'Regan wrote:

> Git as a better SVN

The main pain with git-svn is the amount of time it needs to get started as it pulls the entire history of the svn repository.

One thing which I haven't figured out is how to create svn tags in the remote repository using git-svn. So currently, I cheat and use svn for that

	svn copy <remoteURL>/trunk <remoteURL>/tags/<version> \
		-m "Tagging release <version>."
	git svn fetch
Any better ideas?

Regards,

Kapil. --


Top    Back


Jimmy O'Regan [joregan at gmail.com]


Tue, 8 Apr 2008 03:49:51 +0100

On 08/04/2008, Kapil Hari Paranjape <[email protected]> wrote:

> Hello,
>
>  Git really "gits" one going with scm work!
>
>
>  On Tue, 08 Apr 2008, Jimmy O'Regan wrote:
>  > Git as a better SVN
>
>
> The main pain with git-svn is the amount of time it needs to get
>  started as it pulls the entire history of the svn repository.
>

Yeah, and the SVN revision -> git revision information doesn't seem to be passed by default when you clone from git. Older versions of the script had a 'rebuild' option that's curiously lacking these days. The information is easy to get at, but the last time I had to do it was at a pretty early hour of the morning, and I let it run as I slept.

>  One thing which I haven't figured out is how to create svn tags in the
>  remote repository using git-svn. So currently, I cheat and use svn
>  for that
>         svn copy <remoteURL>/trunk <remoteURL>/tags/<version> \
>                 -m "Tagging release <version>."
>         git svn fetch
>  Any better ideas?

No, sorry. I've only tagged something once - does SVN really do some internal magic? Because I didn't notice anything other than a copy of the directory. I have to keep an SVN copy around anyway, so it's not something I would have played with.


Top    Back


Thomas Adam [thomas.adam22 at gmail.com]


Tue, 8 Apr 2008 08:23:34 +0100

On Tue, 8 Apr 2008 01:04:34 +0100 "Jimmy O'Regan" <[email protected]> wrote:

> There's probably a proper way to do it, but being able to open gitk,
> right click on the commit and save it as a file, chop off the mail
> headers and use patch -R -p1 was a lot quicker than the subversion
> way. (Though SVN is probably a better if you just want to revert one
> file from a commit).

This is what git-log allows for.

-- Thomas Adam

-- 
"It was the cruelest game I've ever played and it's played inside my
head." -- "Hush The Warmth", Gorky's Zygotic Mynci.


Top    Back