sapling/tests/test-tweakdefaults.t
Ryan McElroy 34be666d38 tweakdefaults: allow update to current rev when working copy is not clean
Summary:
https://www.facebook.com/groups/sourcecontrol/permalink/759079160808373/

Many thanks to @sid0 for guidance here.

Test Plan:
Ran this script:

  hg up master
  echo a >> README.txt
  arc feature foo

Before it failed, now it works.

Also a new test.

Reviewers: sid0

Reviewed By: sid0

Subscribers: hannesr, sid0

Differential Revision: https://phabricator.fb.com/D1738821

Tasks: 5810509

Signature: t1:1738821:1418669776:18cd358a99254f7552dacb9b9aa1599364b2d47d
2014-12-13 18:13:41 -08:00

198 lines
3.7 KiB
Perl

$ extpath=$(dirname $TESTDIR)
$ cp $extpath/tweakdefaults.py $TESTTMP # use $TESTTMP substitution in message
$ cat >> $HGRCPATH << EOF
> [extensions]
> tweakdefaults=$TESTTMP/tweakdefaults.py
> rebase=
> EOF
Setup repo
$ hg init repo
$ cd repo
$ touch a
$ hg commit -Aqm a
$ mkdir dir
$ touch dir/b
$ hg commit -Aqm b
$ hg up -q 0
$ echo x >> a
$ hg commit -Aqm a2
Empty update fails
$ hg up -q 0
$ hg up
abort: you must specify a destination to update to
(if you're trying to move a bookmark forward, try 'hg rebase -d <destination>')
[255]
$ hg up -q -r 1
$ hg log -r . -T '{rev}\n'
1
$ hg up -q 1
$ hg log -r . -T '{rev}\n'
1
Log is -f by default
$ hg log -G -T '{rev} {desc}\n'
@ 1 b
|
o 0 a
$ hg log -G -T '{rev} {desc}\n' --all
o 2 a2
|
| @ 1 b
|/
o 0 a
Dirty update to different rev fails by default
$ echo x >> a
$ hg st
M a
$ hg update .^
abort: uncommitted changes
[255]
Dirty update allowed to same rev and with --nocheck and --clean
$ hg update .
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg update --nocheck .^
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg update --clean 1
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Log on dir's works
$ hg log -T '{rev} {desc}\n' dir
1 b
$ hg log -T '{rev} {desc}\n' -I 'dir/*'
1 b
Empty rebase fails
$ hg rebase
abort: you must specify a destination (-d) for the rebase
[255]
$ hg rebase -d 2
rebasing 1:7b4cb4e1674c "b"
saved backup bundle to $TESTTMP/repo/.hg/strip-backup/7b4cb4e1674c-backup.hg
Rebase fast forwards bookmark
$ hg book -r 1 mybook
$ hg up -q mybook
$ hg log -G -T '{rev} {desc} {bookmarks}\n'
@ 1 a2 mybook
|
o 0 a
$ hg rebase -d 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg log -G -T '{rev} {desc} {bookmarks}\n'
@ 2 b mybook
|
o 1 a2
|
o 0 a
Rebase works with hyphens
$ hg book -r 1 hyphen-book
$ hg book -r 2 hyphen-dest
$ hg up -q hyphen-book
$ hg log --all -G -T '{rev} {desc} {bookmarks}\n'
o 2 b hyphen-dest mybook
|
@ 1 a2 hyphen-book
|
o 0 a
$ hg rebase -d hyphen-dest
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg log --all -G -T '{rev} {desc} {bookmarks}\n'
@ 2 b hyphen-book hyphen-dest mybook
|
o 1 a2
|
o 0 a
Grep options work
$ mkdir -p dir1/subdir1
$ echo str1f1 >> dir1/f1
$ echo str1-v >> dir1/-v
$ echo str1space >> 'dir1/file with space'
$ echo str1sub >> dir1/subdir1/subf1
$ hg add -q dir1
$ hg grep x
a:x
$ hg grep -i X
a:x
$ hg grep -l x
a
$ hg grep -n x
a:1:x
$ hg grep -V ''
[123]
Make sure grep works in subdirectories and with strange filenames
$ cd dir1
$ hg grep str1
-v:str1-v
f1:str1f1
file with space:str1space
subdir1/subf1:str1sub
$ hg grep str1 'relre:f[0-9]+'
f1:str1f1
subdir1/subf1:str1sub
Basic vs extended regular expressions
$ hg grep 'str([0-9])'
[123]
$ hg grep 'str\([0-9]\)'
-v:str1-v
f1:str1f1
file with space:str1space
subdir1/subf1:str1sub
$ hg grep -F 'str[0-9]'
[123]
$ hg grep -E 'str([0-9])'
-v:str1-v
f1:str1f1
file with space:str1space
subdir1/subf1:str1sub
Filesets
$ hg grep str1 'set:added()'
-v:str1-v
f1:str1f1
file with space:str1space
subdir1/subf1:str1sub
Crazy filenames
$ hg grep str1 -- -v
-v:str1-v
$ hg grep str1 '*v'
-v:str1-v
$ hg grep str1 'file with space'
file with space:str1space
$ hg grep str1 '*with*'
file with space:str1space
$ hg grep str1 '*f1'
f1:str1f1
$ hg grep str1 subdir1
subdir1/subf1:str1sub
$ hg grep str1 '**/*f1'
f1:str1f1
subdir1/subf1:str1sub