Thread (25 messages) flat view 25 messages, 9 authors, 2016-06-15

Re: git fast-export | git fast-import doesn't work

From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:45:41

Hi,

On Wed, 26 Nov 2008, Michael J Gruber wrote:
Looking at the source I suspect that fast-export fails to denote 
parenthood in the case of yet unmarked parents (last for-loop of 
handle_commit() in builtin_fast_export.c). But I don't really know that 
code at all.
I strongly doubt so.  Noticed the use of has_unshown_parent(commit) in 
both cases before calling handle_commit()?

In any case, here is a script that I wrote _long_ time ago, to be able to 
reconstruct history from the output of "git rev-list --all --parents".  
Maybe this helps you in reconstructing something that is handled 
incorrectly by fast-export | fast-import, but is lighter than a full-blown 
repository.

-- snip --
#!/bin/sh

# Given the output of git-rev-list, this reconstructs the DAG of the 
history

i=0
tac | while read rev parents; do
        let i=$i+1
        echo $i > a1
        git add a1
        tree=$(git write-tree)
        parents="$(for parent in $parents
                do
                        echo -n "-p $(git rev-parse sp-$parent) "
                done)"
        commit=$(echo "$rev $i" | git commit-tree $tree $parents)
        git tag sp-$rev $commit
done
-- snap --

Ciao,
Dscho

--

          |

Ceci n'est pas une pipe
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help