outgoing: add a simple fastpath when there is no common
This further speed up case like `hg bundle --all` for larger repository.
### data-env-vars.name = mozilla-try-2023-03-22-zstd-sparse-revlog
# benchmark.name = hg.command.bundle
# bin-env-vars.hg.flavor = default
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.revs = all
# benchmark.variants.type = none-streamv2
before: 316.749699
after: 311.165461 (-1.76%, -5.58)
There is further work to be done in this area like not doing any outgoing
computation in the stream case for example. however the recent changes already
gives use a large win for a small amount of local work.
### benchmark.name = hg.command.bundle
# bin-env-vars.hg.flavor = default
# bin-env-vars.hg.py-re2-module = default
# benchmark.variants.revs = all
# benchmark.variants.type = none-streamv2
## data-env-vars.name = mercurial-public-2024-03-22-zstd-sparse-revlog
pre-%ln-change: 1.263859
the-%ln-change: 0.700229 (-44.60%, -0.56)
prev-changeset: 0.496050 (-60.75%, -0.77)
this-changeset: 0.495243 (-60.81%, -0.77)
## data-env-vars.name = tryton-public-2024-03-22-zstd-sparse-revlog
pre-%ln-change: 2.975765
the-%ln-change: 1.870798 (-37.13%, -1.10)
prev-changeset: 1.461583 (-50.88%, -1.51)
this-changeset: 1.469185 (-50.63%, -1.51)
## data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog
pre-%ln-change: 4.540080
the-%ln-change: 3.401700 (-25.07%, -1.14)
prev-changeset: 2.915810 (-35.78%, -1.62)
this-changeset: 2.911643 (-35.87%, -1.63)
## data-env-vars.name = heptapod-public-2024-03-25-zstd-sparse-revlog
pre-%ln-change: 10.138396
the-%ln-change: 7.750458 (-23.55%, -2.39)
prev-changeset: 6.665565 (-34.25%, -3.47)
this-changeset: 6.672078 (-34.19%, -3.47)
## data-env-vars.name = mozilla-try-2023-03-22-zstd-sparse-revlog
pre-%ln-change: 399.484481
the-%ln-change: 346.508952 (-13.26%, -52.98)
prev-changeset: 316.749699 (-20.71%, -82.73)
this-changeset: 311.165461 (-22.11%, -88.32)
Test temp file used with an editor has the expected suffix.
$ hg init repo
$ cd repo
Create an editor that writes its arguments to stdout and set it to $HGEDITOR.
$ cat > editor.sh << EOF
> echo "\$@"
> exit 1
> EOF
$ hg add editor.sh
$ HGEDITOR="sh $TESTTMP/repo/editor.sh"
$ export HGEDITOR
Verify that the path for a commit editor has the expected suffix.
$ hg commit
*.commit.hg.txt (glob)
abort: edit failed: sh exited with status 1
[250]
Verify that the path for a histedit editor has the expected suffix.
$ cat >> $HGRCPATH <<EOF
> [extensions]
> rebase=
> histedit=
> EOF
$ hg commit --message 'At least one commit for histedit.'
$ hg histedit
*.histedit.hg.txt (glob)
abort: edit failed: sh exited with status 1
[250]
Verify that when performing an action that has the side-effect of creating an
editor for a diff, the file ends in .diff.
$ echo 1 > one
$ echo 2 > two
$ hg add
adding one
adding two
$ hg commit --interactive --config ui.interactive=true --config ui.interface=text << EOF
> y
> e
> q
> EOF
diff --git a/one b/one
new file mode 100644
examine changes to 'one'?
(enter ? for help) [Ynesfdaq?] y
@@ -0,0 +1,1 @@
+1
record change 1/2 to 'one'?
(enter ? for help) [Ynesfdaq?] e
*.diff (glob)
editor exited with exit code 1
record change 1/2 to 'one'?
(enter ? for help) [Ynesfdaq?] q
abort: user quit
[250]