On Mon, Dec 31, 2018 at 01:31:21PM +0100, Marc Balmer wrote:
>
>
> > Am 31.12.2018 um 12:36 schrieb Duy Nguyen <[email protected]>:
> >
> > On Mon, Dec 31, 2018 at 6:24 PM Marc Balmer <[email protected]> wrote:
> >> In a (private) Email to me, he indicated that had no time for a fix.
> >> Maybe he can speak up here?
> >
> > Well, I guess Junio will revert when he's back after the holidays
> > then. Meanwhile..
> >
> >> In any case, if I can help testing, I am in. I just don't know the inner
> >> workings of git-subtree.sh (I am a mere user of it...)
> >
> > If the repo you're facing the problem is publicly available, that
> > would be great so some of us could try reproduce.
>
> Unfortunately it is not.
>
> >
> > Otherwise we'll need your help to track this problem down. in
> > git-subtree script line 640 (or somewhere close)
> >
> > progress "$revcount/$revmax ($createcount) [$extracount]"
> >
> > could you update it to show $parents and $rev as well, e.g.
> >
> > progress "$revcount/$revmax ($createcount) [$extracount] ($parents)
> > ($rev)"
>
> I did add this, plus changed progress to output a linefeed, and now just
> before the crash, the output looks like this:
>
> 436/627 (2013) [1649] (6e54a90a29e4e01fa2d6a42c232e02e08e912b2d)
> (2ca7b24e731ff91c94c9abf214686cb29cdc367e)
> 436/627 (2014) [1650] (1ef866e5a18012e80eed36315deb932c2b66d34a)
> (6e54a90a29e4e01fa2d6a42c232e02e08e912b2d)
> 436/627 (2015) [1651] (c8585f441548dd43f113a96ba48f6fa70363d388)
> (1ef866e5a18012e80eed36315deb932c2b66d34a)
> 436/627 (2016) [1652] (663bb110a58decfe889cf7c6b766f1d0c032ba39)
> (c8585f441548dd43f113a96ba48f6fa70363d388)
> 436/627 (2017) [1653] (edbdd28e009e52c8001bb54e53a56b059167e07d)
> (663bb110a58decfe889cf7c6b766f1d0c032ba39)
> 436/627 (2018) [1654] (c47739713912ae6e94714b9a1a6732407b236932)
> (edbdd28e009e52c8001bb54e53a56b059167e07d)
> 436/627 (2019) [1655] (d444823b97d9a8e53c4e721a44e4c49619d0b372)
> (c47739713912ae6e94714b9a1a6732407b236932)
> 436/627 (2020) [1656] (15a7ccecb2ca8bc47c77a997f8c74e7ac3b13325)
> (d444823b97d9a8e53c4e721a44e4c49619d0b372)
> 436/627 (2021) [1657] (b9bc5c9b33b100b57e23626ff422dac73f94384e)
> (15a7ccecb2ca8bc47c77a997f8c74e7ac3b13325)
> 436/627 (2022) [1658] (eec0f28c6fe5f7d664c41a913883d64cdf53c111)
> (b9bc5c9b33b100b57e23626ff422dac73f94384e)
> 436/627 (2023) [1659] (e0ddd9c60f71283996cfb169f1dbb77e8f7c4b94)
> (eec0f28c6fe5f7d664c41a913883d64cdf53c111)
> 436/627 (2024) [1660] (27b96988847caf3bfd71df2d7f58cbe6ba78208a)
> (e0ddd9c60f71283996cfb169f1dbb77e8f7c4b94)
> 436/627 (2025) [1661] (11e5861e50f88237ce362b6c7531e4e90bac86ac)
> (27b96988847caf3bfd71df2d7f58cbe6ba78208a)
> /usr/libexec/git-core/git-subtree: line 751: 122202 Done
> eval "$grl"
> 122203 Segmentation fault (core dumped) | while read rev parents; do
> process_split_commit "$rev" "$parents" 0;
> done
>
>
> >
> > Then please run these commands and post the output here
> >
> > git rev-parse <that-rev>^@
>
> Did that with the last three lines:
>
> $ git rev-parse 27b96988847caf3bfd71df2d7f58cbe6ba78208a^@
> 11e5861e50f88237ce362b6c7531e4e90bac86ac
> $ git rev-parse e0ddd9c60f71283996cfb169f1dbb77e8f7c4b94^@
> 27b96988847caf3bfd71df2d7f58cbe6ba78208a
> $ git rev-parse eec0f28c6fe5f7d664c41a913883d64cdf53c111^@
> e0ddd9c60f71283996cfb169f1dbb77e8f7c4b94
>
> >
> > and
> >
> > git show -s --pretty=%P <that-rev>
>
> $ git show -s --pretty=%P 27b96988847caf3bfd71df2d7f58cbe6ba78208a
> 11e5861e50f88237ce362b6c7531e4e90bac86ac
> $ git show -s --pretty=%P e0ddd9c60f71283996cfb169f1dbb77e8f7c4b94
> 27b96988847caf3bfd71df2d7f58cbe6ba78208a
> $ git show -s --pretty=%P eec0f28c6fe5f7d664c41a913883d64cdf53c111
> e0ddd9c60f71283996cfb169f1dbb77e8f7c4b94
>
Hmm.. I'm not that familiar with git-subtree.sh, so here's one last
blind shot.
There's a format change between git-show and git-rev-parse. The former
separates commits by spaces while the latter by newlines. Will this
help?
diff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh
index 147201dc6c..23f570beee 100755
--- a/contrib/subtree/git-subtree.sh
+++ b/contrib/subtree/git-subtree.sh
@@ -633,7 +633,7 @@ process_split_commit () {
else
# processing commit without normal parent information;
# fetch from repo
- parents=$(git rev-parse "$rev^@")
+ parents=$(git rev-parse "$rev^@" | tr '\n' ' ')
extracount=$(($extracount + 1))
fi
--
Duy