zsh-workers
 help / color / mirror / code / Atom feed
From: Frank Terbeck <ft@bewatermyfriend.org>
To: Zsh hackers list <zsh-workers@sunsite.dk>
Subject: Re: CVS repository down
Date: Thu, 12 Mar 2009 13:06:44 +0100	[thread overview]
Message-ID: <20090312120644.GC4167@fsst.voodoo.lan> (raw)
In-Reply-To: <20090312054831.GB15649@blorf.net>

Wayne Davison <wayned@users.sourceforge.net>:
> Mikael Magnusson wrote:
> > git clone git://repo.or.cz/zsh.git
> 
> I pushed that one to sourceforge [...]

That is a clone of Clint's cvs-to-git conversion from git.debian.org.
He uses tailor¹ to perform the conversion. It seems that tailor gets
confused here and there, as it quite often creates two (sometimes even
three) git commits per cvs commit.

[snip]
(6086)-/tmp/zsh [master]-% git log -12 | git shortlog
pws (12):
      add whole-path style to _perforce completer
      add whole-path style to _perforce completer
      unposted: fix definition of _perforce_whole_path in 26690
      unposted: fix definition of _perforce_whole_path in 26690
      26697: test for Linux- and Mac-style xattr functions
      derf@sievert.tabularazor.org: 26701: new devtodo completion
      derf@sievert.tabularazor.org: 26701: new devtodo completion
      26072: lexsave()/lexrestore() to fix bug with sourcing from "funny" places
      26072: lexsave()/lexrestore() to fix bug with sourcing from "funny" places
      26705: multibyte characters with Meta in ${(%)foo} etc.
      26705: multibyte characters with Meta in ${(%)foo} etc.
      print message if we give up trying to crate a lock file with hard links
[snap]

I think Clint chose tailor, because at the time 'git cvsimport' failed
to import the zsh repository. That however, isn't the case anymore.
And the history created by 'git cvsimport' seems to be a lot more
consistent with cvs's history.

To import the cvs repository into a git repository, the following
script may be used:

[snip]
#!/bin/sh

PROJECT='zsh'
MODULE='zsh'
DESTINATION="/usr/src/${PROJECT}.git"
AUTHORS="/usr/src/${PROJECT}-authors.txt"
CVS="/usr/src/mirror/${PROJECT}-cvs"
RSYNCURI="rsync://${PROJECT}.cvs.sourceforge.net/cvsroot/${PROJECT}"

[ ! -d "${CVS}" ] && { mkdir -p "${CVS}" || { printf 'Could not create %s.\n' "${CVS}" && exit 1 ; } ; }
(cd "${CVS}"; rsync -av "${RSYNCURI}/*" .)

if [ -f "${AUTHORS}" ] ; then
    git cvsimport -v -k -s- -a -u -A "${AUTHORS}" -C "${DESTINATION}" -d"${CVS}" "${MODULE}"
else
    git cvsimport -v -k -s- -a -u -C "${DESTINATION}" -d"${CVS}" "${MODULE}"
fi
[snap]

If you create a file that describes the cvs-usernames a little
further, git will transform that to "User Name <e@mail.tld>" - which
is the common format when using git.

If the script above is unchanged, such a file would be named
/usr/src/zsh-authors.txt and it would look like this:

[snip]
pws=Peter Stephenson <pws@foo.tld>
barts=Bart Schaefer <schaefer@somewhereelse.tld>
[snap]

And so on...

The initial import takes about 40 minutes on my really not up to date
laptop. After that you got a clean history in git, too.

Regards, Frank

¹ <http://progetti.arstecnica.it/tailor>

-- 
In protocol design, perfection has been reached not when there is
nothing left to add, but when there is nothing left to take away.
                                                  -- RFC 1925


  reply	other threads:[~2009-03-12 12:09 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-11 10:13 Peter Stephenson
2009-03-11 10:25 ` Phil Pennock
2009-03-11 10:31 ` Mikael Magnusson
2009-03-12  5:48   ` Wayne Davison
2009-03-12 12:06     ` Frank Terbeck [this message]
2009-03-12 12:11       ` Frank Terbeck
2009-03-12 16:59       ` Wayne Davison
2009-03-12 17:42         ` Frank Terbeck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090312120644.GC4167@fsst.voodoo.lan \
    --to=ft@bewatermyfriend.org \
    --cc=zsh-workers@sunsite.dk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).