From: Kirill Smelkov Date: Thu, 18 Sep 2008 16:29:30 +0000 (+0400) Subject: tg import: fix + make more robust X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=topgit.git;a=commitdiff_plain;h=057218422892984e6d2eecff3a7605040b65fdf2;hp=057218422892984e6d2eecff3a7605040b65fdf2 tg import: fix + make more robust a5bf892d0900cbf9949f628c3e05db599341a02c (tg import: Check out new files as we go) broke tg-import. This is how it fails after that change: $ tg import Z~~..Z tg: ---- Importing e3e8c1382fe4cedca31e955910914ae0033455eb to t/Z tg: Automatically marking dependency on master tg: Creating t/Z base from master... Switched to a new branch "t/Z" tg: Topic branch t/Z set up. Please fill .topmsg now and make initial commit. tg: To abort: git rm -f .top* && git checkout master && tg delete t/Z fatal: pathspec '.topdeps' did not match any files That's why, when we do git read-tree -u -m it _kills_ .topmsg and .topdep both in index and in working tree! Also, imagine that we are going to import patch C onto A o---B---A \ C With read-tree we'll *override* any change in common files between A and B, so I think read-tree is wrong here (it was ok if we are importing on top of B). What is right it seems, is to work on diff level -- to use cherry-pick. And since cherry-pick does not kill our already-in-index .topmsg and .topdeps we automatically fix the breakage. Signed-off-by: Kirill Smelkov ---