Subject: Idea for git-fast-import

From: Michael Haggerty <[email-masked]>
Date: Fri, 20 Jul 2007 08:59:23 +0200

I'm working on a git backend for cvs2svn and had an idea for
git-fast-import that would make life a tiny bit easier:

Currently, git-fast-import marks are positive integers.  But they are
used for two things: marking single-file blobs, and marking commits.

This is a tiny bit awkward, because cvs2svn assigns small integer IDs to
these things too, but uses distinct (overlapping) integer series for the
two concepts.  If it would be trivial to split the marks into two
"namespaces" (one for single-file blobs and one for commits), that would
make things a little bit more natural.  I don't think commit marks can
be used interchangeably with blob marks anyway, so it wouldn't be a
backwards incompatibility.

Without this feature, I will have to assign a new "mark" integer series
that is unrelated to cvs2svn's IDs, which is no big deal at all but will
make debugging a little bit harder.  So only add this feature if it is
really easy for you.

Also, is there a big cost to using "not-quite-consecutive" integers as
marks?  cvs2svn's CVSRevision IDs are intermingled with IDs for
CVSBranches and CVSTags, so the CVSRevisions alone probably only pack
the ID space 5%-50% full.

In fact, if there is a big cost to "not-quite-consecutive" integers,
then I withdraw my request for separate mark namespaces, since I would
have to reallocate mark numbers anyway :-)

Another thing that might help with debugging would be a "comment"
command, which git-fast-import should ignore.  One could put text about
the source of a chunk of git-fast-import stream to relate it back to the
front-end concepts when debugging the stream contents by hand.

[I will be out of town until Monday, so don't be surprised that I don't
respond right away :-) ]

Thanks,
Michael