sapling/tests/test-tweakdefaults-remotenames.t
Jun Wu 3884602d28 check-code: enfore checking before using common foreign extensions
Summary:
It's a common mistake that our tests require foreign extensions (namely evolve
and remotenames) without checking them first.

This diff adds checks to catch these mistakes, adds missing checks, and unifies
our checking logic using `require-ext.sh`, which is aware of `hgext3rd` and
prints skip message.

This affects `arc lint` so hopefully our new testing code would be free of this
kind of mistakes.

Test Plan: `arc lint` would catch errors

Reviewers: #mercurial, ttung, rmcelroy

Reviewed By: rmcelroy

Subscribers: rmcelroy, mjpieters

Differential Revision: https://phabricator.intern.facebook.com/D3550977

Signature: t1:3550977:1468455857:e849dfd9e3cbc446cc6e6c662050ee88a3366e6c
2016-07-12 20:39:34 +01:00

107 lines
3.2 KiB
Perl

Check for remotenames and skip if not present
$ . $TESTDIR/require-ext.sh remotenames
Set up
$ extpath=`dirname $TESTDIR`
$ cp $extpath/hgext3rd/tweakdefaults.py $TESTTMP # use $TESTTMP substitution in message
$ cat >> $HGRCPATH << EOF
> [extensions]
> rebase=
> remotenames=
> tweakdefaults=$TESTTMP/tweakdefaults.py
> EOF
$ hg init repo
$ echo a > repo/a
$ hg -R repo commit -qAm aa
$ hg -R repo bookmark one -i
$ echo b > repo/b
$ hg -R repo commit -qAm bb
$ hg -R repo bookmark two -i
$ echo c > repo/c
$ hg -R repo commit -qAm cc
$ hg -R repo bookmark three -i
$ hg clone -q repo clone
$ cd clone
Test that hg pull --rebase aborts without --dest
$ hg log -G --all -T '{node|short} {bookmarks} {remotenames}'
@ 083f922fc4a9 default/three default/default
|
o 301d76bdc3ae default/two
|
o 8f0162e483d0 default/one
$ hg up -q default/one
$ touch foo
$ hg commit -qAm 'foo'
$ hg pull --rebase
abort: you must use a bookmark with tracking or manually specify a destination for the rebase
(set up tracking with `hg book <name> -t <destination>` or manually supply --dest / -d)
[255]
$ hg bookmark bm
$ hg pull --rebase
abort: you must use a bookmark with tracking or manually specify a destination for the rebase
(set up tracking with `hg book -t <destination>` or manually supply --dest / -d)
[255]
$ hg book bm -t default/two
$ hg pull --rebase
pulling from $TESTTMP/repo (glob)
searching for changes
no changes found
rebasing 3:3de6bbccf693 "foo" (tip bm)
saved backup bundle to $TESTTMP/clone/.hg/strip-backup/3de6bbccf693-0dce0663-backup.hg (glob)
$ hg pull --rebase --dest three
pulling from $TESTTMP/repo (glob)
searching for changes
no changes found
rebasing 3:54ac787ff1c5 "foo" (tip bm)
saved backup bundle to $TESTTMP/clone/.hg/strip-backup/54ac787ff1c5-4c2ca3a1-backup.hg (glob)
Test that hg pull --update aborts without --dest
$ hg pull --update
abort: you must specify a destination for the update
(use `hg pull --update --dest <destination>`)
[255]
$ hg pull --update --dest one
pulling from $TESTTMP/repo (glob)
searching for changes
no changes found
0 files updated, 0 files merged, 3 files removed, 0 files unresolved
(leaving bookmark bm)
Test that setting a defaultdest allows --update and --rebase to work
$ hg pull --update --config tweakdefaults.defaultdest=two
pulling from $TESTTMP/repo (glob)
searching for changes
no changes found
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg log -G --all -T '{node|short} {bookmarks} {remotenames}'
o 5413b62180b7 bm
|
o 083f922fc4a9 default/three default/default
|
@ 301d76bdc3ae default/two
|
o 8f0162e483d0 default/one
$ echo d > d
$ hg commit -qAm d
$ hg pull --rebase --config tweakdefaults.defaultdest=three
pulling from $TESTTMP/repo (glob)
searching for changes
no changes found
rebasing 4:50f3f60b4841 "d" (tip)
saved backup bundle to * (glob)
$ hg log -G --all -T '{node|short} {bookmarks} {remotenames}'
@ ba0f83735c95
|
| o 5413b62180b7 bm
|/
o 083f922fc4a9 default/three default/default
|
o 301d76bdc3ae default/two
|
o 8f0162e483d0 default/one