From: "Shawn O. Pearce" <spearce@spearce.org>
To: Jakub Narebski <jnareb@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: Git / Subversion Interoperability
Date: Sat, 24 Mar 2007 02:45:56 -0400 [thread overview]
Message-ID: <20070324064556.GD25863@spearce.org> (raw)
In-Reply-To: <eu0njb$q3b$1@sea.gmane.org>
Jakub Narebski <jnareb@gmail.com> wrote:
> Shawn O. Pearce wrote:
>
> > - Assigning repository-wide revision numbers. Git doesn't have
> > such a concept, but its key to SVN. These would need to be stored
> > in a file so the server can quickly map from revision number to
> > Git commit SHA-1. The reflogs may help here, but currently they
> > also expire. Any reflog that is being used to do this mapping
> > cannot be expired, ever.
>
> Another idea is to use lightweight tags for that, especially now
> with packed refs support in git.
Yes, not a bad idea.
Except the packed refs file can have variable sized records. It has
no faster access path than to just scan it. Some SVN repositories
have revision counts up into the 5 and 6 digits. These would take
quite a while to scan, even as packed refs. ;-)
I'm inclined to lean towards a really simple binary flat file holding
just 20 byte SHA-1s, in "SVN order". Then its just a simple array
index operation to locate the correct Git commit. And adding a
new commit is really just an append to the end operation.
Yea, I know, append == bad on some older Linux systems, and is
hard to roll back if you partially appended as it gets into some
possible nasty mess with truncate, but I think that when combined
with a simple lock file we can make it safe enough that its not
really going to be a problem.
--
Shawn.
next prev parent reply other threads:[~2007-03-24 6:46 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-22 22:48 Git / Subversion Interoperability Bruno Cesar Ribas
2007-03-23 0:43 ` Shawn O. Pearce
2007-03-23 1:03 ` Julian Phillips
2007-03-23 1:24 ` Shawn O. Pearce
2007-03-23 1:36 ` Julian Phillips
2007-03-23 10:34 ` Karl Hasselström
2007-03-23 15:21 ` Bruno Cesar Ribas
2007-03-23 15:48 ` Karl Hasselström
2007-03-23 18:13 ` Julian Phillips
2007-03-23 19:34 ` Bruno Cesar Ribas
2007-03-23 22:05 ` David Lang
2007-03-23 22:11 ` Daniel Barkalow
2007-03-24 6:41 ` Shawn O. Pearce
2007-03-24 18:55 ` Karl Hasselström
2007-03-24 20:13 ` Linus Torvalds
2007-03-24 20:37 ` Junio C Hamano
2007-03-26 3:06 ` Sam Vilain
2007-03-23 21:30 ` Christian Wiese
2007-03-23 22:00 ` Steven Grimm
2007-03-24 6:56 ` Shawn O. Pearce
2007-03-26 3:04 ` Sam Vilain
2007-03-23 14:21 ` Jakub Narebski
2007-03-24 6:45 ` Shawn O. Pearce [this message]
2007-03-24 20:38 ` Eric Wong
2007-03-24 20:31 ` Eric Wong
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=20070324064556.GD25863@spearce.org \
--to=spearce@spearce.org \
--cc=git@vger.kernel.org \
--cc=jnareb@gmail.com \
/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.
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).