Re: git fast-export | git fast-import doesn't work
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Nov 26, 2008, 17:08 UTC
- Message-ID
- <alpine.DEB.1.00.0811261804550.30769@pacific.mpi-cbg.de>
- In-Reply-To
- <492D7CF5.1020202@drmicha.warpmail.net>
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