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 <kirr@landau.phys.spbu.ru>