[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

The git mirror is *very* badly screwed up

From: Eric S. Raymond
Subject: The git mirror is *very* badly screwed up
Date: Fri, 24 Jan 2014 11:29:37 -0500 (EST)

While investigating the git mirror with reposurgeon. I spent most of
the last two days chasing some odd behavior in reposurgeon that I
thought was a bug.  But it turns out not to be a bug at all; rather,
there's a kind of malformation in the mirror I've never seen

Look at this span of commits:

reposurgeon% 867? inspect
Event 865 ===============================================================
commit refs/tags/v0.3.0
mark :860
author Chris Wanstrath <address@hidden> 1268028778 -0800
committer Chris Wanstrath <address@hidden> 1268028778 -0800
data 13
Just in case
from :858
M 100644 :859 coffee-mode.el

Event 867 ===============================================================
commit refs/tags/v0.3.0
mark :862
author Chris Wanstrath <address@hidden> 1268028809 -0800
committer Chris Wanstrath <address@hidden> 1268028809 -0800
data 6
from :860
M 100644 :861 coffee-mode.el

Event 869 ===============================================================
commit refs/tags/sml-mode-6.0
mark :864
author Sergei Lebedev <address@hidden> 1269545595 -0700
committer Chris Wanstrath <address@hidden> 1269545595 -0700
data 60
Fix hanging of `coffee-previous-indent` at start of buffer.
from :862
M 100644 :863 coffee-mode.el

Event 874 ===============================================================
commit refs/tags/sml-mode-6.0
mark :869
author tav <address@hidden> 1269545212 +0800
committer Chris Wanstrath <address@hidden> 1269545212 +0800
data 64
Change so that the compiled buffer doesn't open in a new frame.
from :862
M 100644 :868 coffee-mode.el

This looks pretty normal - until you notice that events 869 and 874,
which should be sequential commits, are both parented by event 867.
This is badly wrong; either 874 should be parented on 869 (almost
certainly correct) or 869 and 874 should have different branch fields.

I had wondered why the parent links in the early part of a gitk
listing of the Emacs history looked so spaghettilike.  Now I think
many of them are wrong, and this also explains the persistent problems
reposurgeon has been exhibiting with junk lightweight tags that can't
be deleted.  (The bad links defeat reposurgeon's algorithm for
reassigning branch fields.)

I'm investigating possible remedies.  Because this kind of
malformation is easy to spot once you know what to look for, 
it may be possible for me to write an automated fixer in 

Andreas, how exactly are you doing the mirroring from Bazaar?  Is
there any chance parent links are being scrambled at that point?

The other possibility is that parsecvs botched the CVS lift really badly.
That wouldn't be good news for me either, because if so cvs-fast-export
probably inherited the bug. 
                <a href="http://www.catb.org/~esr/";>Eric S. Raymond</a>

He that would make his own liberty secure must guard even his enemy from
oppression: for if he violates this duty, he establishes a precedent that
will reach unto himself.        -- Thomas Paine

reply via email to

[Prev in Thread] Current Thread [Next in Thread]