##// END OF EJS Templates
bisect: avoid adding irrelevant revisions to bisect state...
bisect: avoid adding irrelevant revisions to bisect state When adding new revisions to the bisect state, it only makes sense to add information about revisions that are under consideration (i.e., those that are topologically between the known good and bad revisions). However, if the user passes in a revset (e.g., '!merge()' to exclude merge commits), hg will resolve the revset first and add all matching revisions to the bisect state (which in this case would likely be the majority of revisions in the repo). To avoid this, revisions should only be added to the bisect state if they are between the good and bad revisions (and therefore relevant to the bisection). -- Here are the results of some performance tests using the `mozilla-central` repo (since it is one of the largest freely-available hg repositories in the wild). These tests compare the performance of a locally-built `hg` before and after application of this series. Note that `--noupdate` is passed to avoid including update time (which should not vary across cases). Setup (run between each test): $ hg bisect --reset $ hg bisect --noupdate --bad 56c3ad4bde5c70714b784ccf15d099e0df0f5bde $ hg bisect --noupdate --good 57426696adaf08298af3027fa77486fee0633b13 Test using a revset that returns a very large number of revisions: $ time hg bisect --noupdate --skip '!merge()' > /dev/null Before: real 0m9.398s user 0m9.233s sys 0m0.120s After: real 0m1.513s user 0m1.425s sys 0m0.052s Test using a revset that is expensive to compute: $ time hg bisect --noupdate --skip 'desc("Bug")' > /dev/null Before: real 0m49.853s user 0m49.580s sys 0m0.243s After: real 0m4.120s user 0m4.036s sys 0m0.048s

File last commit:

r46720:6f8a94bb default
r50337:81623652 default
Show More
test-histedit-bookmark-motion.t
178 lines | 4.8 KiB | text/troff | Tads3Lexer
/ tests / test-histedit-bookmark-motion.t
Augie Fackler
histedit: new extension for interactive history editing
r17064 $ . "$TESTDIR/histedit-helpers.sh"
Augie Fackler
histedit tests: fix check-code problems
r17065 $ cat >> $HGRCPATH <<EOF
Augie Fackler
histedit: new extension for interactive history editing
r17064 > [extensions]
> histedit=
> EOF
$ hg init r
$ cd r
Augie Fackler
histedit tests: fix check-code problems
r17065
Augie Fackler
histedit: new extension for interactive history editing
r17064 $ for x in a b c d e f ; do
> echo $x > $x
> hg add $x
> hg ci -m $x
> done
$ hg book -r 1 will-move-backwards
$ hg book -r 2 two
$ hg book -r 2 also-two
$ hg book -r 3 three
$ hg book -r 4 four
$ hg book -r tip five
$ hg log --graph
@ changeset: 5:652413bf663e
| bookmark: five
| tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: f
|
o changeset: 4:e860deea161a
| bookmark: four
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: e
|
o changeset: 3:055a42cdd887
| bookmark: three
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: d
|
o changeset: 2:177f92b77385
| bookmark: also-two
| bookmark: two
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: c
|
o changeset: 1:d2ae7f538514
| bookmark: will-move-backwards
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: b
|
o changeset: 0:cb9a9f314b8b
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
$ HGEDITOR=cat hg histedit 1
pick d2ae7f538514 1 b
pick 177f92b77385 2 c
pick 055a42cdd887 3 d
pick e860deea161a 4 e
pick 652413bf663e 5 f
# Edit history between d2ae7f538514 and 652413bf663e
#
Adrian Zgorzałek
histedit: clarify description of fold command...
r20503 # Commits are listed from least to most recent
#
liscju
histedit: adds hint how to reorder changesets at editor (issue3766)
r28396 # You can reorder changesets by reordering the lines
#
Augie Fackler
histedit: new extension for interactive history editing
r17064 # Commands:
timeless
histedit: prefer edit commit, edit message, use commit...
r27674 #
Augie Fackler
histedit: adjust comment describing `edit` action for clarity...
r46720 # e, edit = use commit, but allow edits before making new commit
timeless
histedit: prefer edit commit, edit message, use commit...
r27674 # m, mess = edit commit message without changing commit content
Augie Fackler
histedit: new extension for interactive history editing
r17064 # p, pick = use commit
Saurabh Singh
histedit: removing the experimental config 'histeditng'...
r34490 # b, base = checkout changeset and apply further changesets from there
timeless
histedit: prefer edit commit, edit message, use commit...
r27674 # d, drop = remove commit from history
Matt Mackall
histedit: shorten new fold message...
r20511 # f, fold = use commit, but combine it with the one above
Ben Schmidt
histedit: modify rollup to discard date from the rollup commit (issue4820)...
r31056 # r, roll = like fold, but discard this commit's description and date
Augie Fackler
histedit: new extension for interactive history editing
r17064 #
Pierre-Yves David
histedit-test: generalise --commands "-" usage...
r19019 $ hg histedit 1 --commands - --verbose << EOF | grep histedit
Augie Fackler
histedit: new extension for interactive history editing
r17064 > pick 177f92b77385 2 c
> drop d2ae7f538514 1 b
> pick 055a42cdd887 3 d
> fold e860deea161a 4 e
> pick 652413bf663e 5 f
> EOF
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/r/.hg/strip-backup/96e494a2d553-45c027ab-histedit.hg
Augie Fackler
histedit: new extension for interactive history editing
r17064 $ hg log --graph
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 @ changeset: 3:cacdfd884a93
Augie Fackler
histedit: new extension for interactive history editing
r17064 | bookmark: five
| tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: f
|
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 o changeset: 2:59d9f330561f
Augie Fackler
histedit: new extension for interactive history editing
r17064 | bookmark: four
| bookmark: three
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: d
|
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 o changeset: 1:b346ab9a313d
Augie Fackler
histedit: new extension for interactive history editing
r17064 | bookmark: also-two
| bookmark: two
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: c
|
o changeset: 0:cb9a9f314b8b
bookmark: will-move-backwards
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
$ HGEDITOR=cat hg histedit 1
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 pick b346ab9a313d 1 c
pick 59d9f330561f 2 d
pick cacdfd884a93 3 f
Augie Fackler
histedit: new extension for interactive history editing
r17064
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 # Edit history between b346ab9a313d and cacdfd884a93
Augie Fackler
histedit: new extension for interactive history editing
r17064 #
Adrian Zgorzałek
histedit: clarify description of fold command...
r20503 # Commits are listed from least to most recent
#
liscju
histedit: adds hint how to reorder changesets at editor (issue3766)
r28396 # You can reorder changesets by reordering the lines
#
Augie Fackler
histedit: new extension for interactive history editing
r17064 # Commands:
timeless
histedit: prefer edit commit, edit message, use commit...
r27674 #
Augie Fackler
histedit: adjust comment describing `edit` action for clarity...
r46720 # e, edit = use commit, but allow edits before making new commit
timeless
histedit: prefer edit commit, edit message, use commit...
r27674 # m, mess = edit commit message without changing commit content
Augie Fackler
histedit: new extension for interactive history editing
r17064 # p, pick = use commit
Saurabh Singh
histedit: removing the experimental config 'histeditng'...
r34490 # b, base = checkout changeset and apply further changesets from there
timeless
histedit: prefer edit commit, edit message, use commit...
r27674 # d, drop = remove commit from history
Matt Mackall
histedit: shorten new fold message...
r20511 # f, fold = use commit, but combine it with the one above
Ben Schmidt
histedit: modify rollup to discard date from the rollup commit (issue4820)...
r31056 # r, roll = like fold, but discard this commit's description and date
Augie Fackler
histedit: new extension for interactive history editing
r17064 #
Pierre-Yves David
histedit-test: generalise --commands "-" usage...
r19019 $ hg histedit 1 --commands - --verbose << EOF | grep histedit
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 > pick b346ab9a313d 1 c
> pick cacdfd884a93 3 f
> pick 59d9f330561f 2 d
Augie Fackler
histedit: new extension for interactive history editing
r17064 > EOF
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/r/.hg/strip-backup/59d9f330561f-073008af-histedit.hg
Augie Fackler
histedit: new extension for interactive history editing
r17064
We expect 'five' to stay at tip, since the tipmost bookmark is most
likely the useful signal.
$ hg log --graph
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 @ changeset: 3:c04e50810e4b
Augie Fackler
histedit: new extension for interactive history editing
r17064 | bookmark: five
| bookmark: four
| bookmark: three
| tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: d
|
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 o changeset: 2:c13eb81022ca
Augie Fackler
histedit: new extension for interactive history editing
r17064 | user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: f
|
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 o changeset: 1:b346ab9a313d
Augie Fackler
histedit: new extension for interactive history editing
r17064 | bookmark: also-two
| bookmark: two
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: c
|
o changeset: 0:cb9a9f314b8b
bookmark: will-move-backwards
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a