histedit: don't swallow errors that happen when updating the working copy
Commit
34165875fa5d (histedit: limit updated and merging output to
important updates, 2016-02-03) added a call to
`ui.pushbuffer(labeled=True, errors=True)`. I don't know if there was
a reason for the `errors=True` (nor the `labeled=True` bit, which I
removed in the previous commit). It seems bad to just discard the
errors, so let's not do that. By not doing that, we can also remove a
workaround for the lack of errors from `test-removeemptydirs.t`.
Differential Revision: https://phab.mercurial-scm.org/D10882
--- a/hgext/histedit.py Fri Jun 18 13:44:05 2021 -0700
+++ b/hgext/histedit.py Fri Jun 18 13:55:45 2021 -0700
@@ -575,7 +575,7 @@
parentctx, but does not commit them."""
repo = self.repo
rulectx = repo[self.node]
- repo.ui.pushbuffer(error=True)
+ repo.ui.pushbuffer()
hg.update(repo, self.state.parentctxnode, quietempty=True)
repo.ui.popbuffer()
stats = applychanges(repo.ui, repo, rulectx, {})
--- a/tests/test-removeemptydirs.t Fri Jun 18 13:44:05 2021 -0700
+++ b/tests/test-removeemptydirs.t Fri Jun 18 13:55:45 2021 -0700
@@ -117,18 +117,9 @@
> EOF
$ cd $TESTTMP/hghistedit/somedir
$ hg --config extensions.histedit= histedit -q --commands ../histedit_commands
+ current directory was removed
+ (consider changing to repo root: $TESTTMP/hghistedit)
-histedit doesn't output anything when the current diretory is removed. We rely
-on the tests being commonly run on machines where the current directory
-disappearing from underneath us actually has an observable effect, such as an
-error or no files listed
-#if linuxormacos
- $ isfile foo
- no
-#endif
- $ cd $TESTTMP/hghistedit/somedir
- $ isfile foo
- yes
$ cd $TESTTMP/hghistedit
$ cat > histedit_commands <<EOF
@@ -181,6 +172,8 @@
> pick ff70a87b588f 0 add foo
> fold 9992bb0ac0db 2 add baz
> EOF
+ current directory was removed
+ (consider changing to repo root: $TESTTMP/issue5826_withrm)
abort: $ENOENT$
[255]