git-fast-import question

3 messages, 2 authors, 2016-06-15 · open the first message on its own page

git-fast-import question

From: Troy Telford <hidden>
Date: 2016-06-15 22:47:07

I've been writing an importer from an older SCM into git.  I'm getting
the following behavior with using git-fast-import:

The file I'm importing has something along the lines of:

commit refs/heads/foo
<various metadata>
M 100644 :mark path/to/some/file

Then, later on, there's another commit:

commit refs/heads/foo
<various metadata>
R path/to/some/file new/path/to/some/file

As far as I've been able to see, the :from tag points to the correct
commit (which is also in the correct branch).  There are no instances
of 'reset <branch>' being called anywhere.  The file isn't deleted
anywhere.

But when I run fast-import, I receive an error to the extent of:
fatal:  Path path/to/some/file not in branch

So to me, it looks like the file that I'm renaming should exist in the
branch - it's not being renamed anywhere, not being deleted, and the
branch isn't reset.  Yet fast-import doesn't seem to think the file
exists.

I'm using git 1.6.3.3

Re: git-fast-import question

From: Shawn O. Pearce <hidden>
Date: 2016-06-15 22:47:07

Troy Telford [off-list ref] wrote:
But when I run fast-import, I receive an error to the extent of:
fatal:  Path path/to/some/file not in branch

So to me, it looks like the file that I'm renaming should exist in the
branch - it's not being renamed anywhere, not being deleted, and the
branch isn't reset.  Yet fast-import doesn't seem to think the file
exists.
Perhaps try inserting a checkpoint just before the rename commit,
so you can actually look at the tree structure in the output branch
when the crash occurs.  My initial guess is, you don't have what
you think you have.

-- 
Shawn.

Re: git-fast-import question

From: Troy Telford <hidden>
Date: 2016-06-15 22:47:07

My initial guess is, you don't have what
you think you have.
Thanks for the tip - you're right in that I don't have what I think I have.

Namely, there are entire sections of the dump file that aren't getting
imported.  fast-import isn't complaining about it either.

commit refs/heads/foo
<various metadata>
M 100644 :mark path/to/some/file

Isn't getting imported (to any branch, let alone refs/heads/foo)

So when the later commit wants to rename the file, it can't be found.

Digging a bit deeper, I found a few cases where I'd have something
along the lines of:

commit refs/heads/foo
mark :1
<etc, etc.>

commit refs/heads/foo
mark :2
from :1
<etc, etc>

ie. two sequential commits, to the same branch.  The first commit is
being imported; the second commit isn't being imported.  Many
subsequent commits are similarly cast aside - then for no reason I can
tell, commits start getting imported again.  I'd expect fast-import to
complain, but that doesn't seem to be happening.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help