largefiles: update standins only at the 1st commit of "hg rebase --continue"
Before this patch, "hg rebase --continue" may record incorrect
standins, because largefiles extension always avoid updating standins
while rebasing, even though largefiles in the working directory may be
modified manually at the 1st commit of "hg rebase --continue".
But, on the other hand, updating standins should be avoided at
subsequent commits for efficiency reason.
To update standins only at the 1st commit of "hg rebase --continue",
this patch introduces state-full callable object
"automatedcommithook", which updates standins by
"lfutil.updatestandinsbymatch()" only at the 1st commit of resuming.
Even after this patch, "repo._isrebasing = True" is still needed to
avoid some status report while updating largefiles in
"lfcommands.updatelfiles()".
This is reason why this patch omits not "repo._isrebasing = True" in
"overriderebase" but examination of "getattr(repo, "_isrebasing",
False)" in "updatestandinsbymatch".
$ hg init a
$ cd a
$ echo 123 > a
$ hg add a
$ hg commit -m "a" -u a
$ cd ..
$ hg init b
$ cd b
$ echo 321 > b
$ hg add b
$ hg commit -m "b" -u b
$ hg pull ../a
pulling from ../a
searching for changes
abort: repository is unrelated
[255]
$ hg pull -f ../a
pulling from ../a
searching for changes
warning: repository is unrelated
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
(run 'hg heads' to see heads, 'hg merge' to merge)
$ hg heads
changeset: 1:9a79c33a9db3
tag: tip
parent: -1:000000000000
user: a
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
changeset: 0:01f8062b2de5
user: b
date: Thu Jan 01 00:00:00 1970 +0000
summary: b
$ cd ..