##// END OF EJS Templates
phabricator: warn if unable to amend, instead of aborting after posting...
phabricator: warn if unable to amend, instead of aborting after posting There was a divergence in behavior here between obsolete and strip based amending. I first noticed the abort when testing outside of the test harness, but then had trouble recreating it here after reverting the code changes. It turns out, strip based amend was successfully amending the public commit after it was posted! It looks like the protection is in the `commit --amend` command, not in the underlying code that it calls. I considered doing a preflight check and aborting. But the locks are only acquired at the end, if amending, and this is too large a section of code to be wrapped in a maybe-it's-held-or-not context manager for my tastes. Additionally, some people do post-push reviews, and amending is the default behavior, so they shouldn't see a misleading error message. The lack of a 'Differential Revision' entry in the commit message breaks a {phabreview} test, so it had to be partially conditionalized.

File last commit:

r36748:a22915ed default
r41198:0101a35d default
Show More
test-config.t
213 lines | 3.9 KiB | text/troff | Tads3Lexer
FUJIWARA Katsunori
tests: rename from test-config-case.t to test-config.t for centralization...
r19086 hide outer repo
$ hg init
Pierre-Yves David
test-config: add tests for invalid syntax...
r22275 Invalid syntax: no value
$ cat > .hg/hgrc << EOF
> novaluekey
> EOF
$ hg showconfig
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 hg: parse error at $TESTTMP/.hg/hgrc:1: novaluekey
Pierre-Yves David
test-config: add tests for invalid syntax...
r22275 [255]
Invalid syntax: no key
$ cat > .hg/hgrc << EOF
> =nokeyvalue
> EOF
$ hg showconfig
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 hg: parse error at $TESTTMP/.hg/hgrc:1: =nokeyvalue
Pierre-Yves David
test-config: add tests for invalid syntax...
r22275 [255]
Razvan Cojocaru
config: highlight parse error caused by leading spaces (issue3214)...
r22276 Test hint about invalid syntax from leading white space
$ cat > .hg/hgrc << EOF
> key=value
> EOF
$ hg showconfig
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 hg: parse error at $TESTTMP/.hg/hgrc:1: key=value
Razvan Cojocaru
config: highlight parse error caused by leading spaces (issue3214)...
r22276 unexpected leading whitespace
[255]
$ cat > .hg/hgrc << EOF
> [section]
> key=value
> EOF
$ hg showconfig
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 hg: parse error at $TESTTMP/.hg/hgrc:1: [section]
Razvan Cojocaru
config: highlight parse error caused by leading spaces (issue3214)...
r22276 unexpected leading whitespace
[255]
Pierre-Yves David
test-config: add tests for invalid syntax...
r22275 Reset hgrc
$ echo > .hg/hgrc
FUJIWARA Katsunori
tests: rename from test-config-case.t to test-config.t for centralization...
r19086 Test case sensitive configuration
Yuya Nishihara
tests: write hgrc of more than two lines by using shell heredoc...
r23172 $ cat <<EOF >> $HGRCPATH
> [Section]
> KeY = Case Sensitive
> key = lower case
> EOF
FUJIWARA Katsunori
tests: rename from test-config-case.t to test-config.t for centralization...
r19086
$ hg showconfig Section
Section.KeY=Case Sensitive
Section.key=lower case
Mathias De Maré
config: add template support...
r29950 $ hg showconfig Section -Tjson
[
{
"name": "Section.KeY",
Jun Wu
runtests: set web.ipv6 if we use IPv6...
r30986 "source": "*.hgrc:*", (glob)
Mathias De Maré
config: add template support...
r29950 "value": "Case Sensitive"
},
{
"name": "Section.key",
Jun Wu
runtests: set web.ipv6 if we use IPv6...
r30986 "source": "*.hgrc:*", (glob)
Mathias De Maré
config: add template support...
r29950 "value": "lower case"
}
]
$ hg showconfig Section.KeY -Tjson
[
{
"name": "Section.KeY",
Jun Wu
runtests: set web.ipv6 if we use IPv6...
r30986 "source": "*.hgrc:*", (glob)
Mathias De Maré
config: add template support...
r29950 "value": "Case Sensitive"
}
]
$ hg showconfig -Tjson | tail -7
},
{
"name": "*", (glob)
"source": "*", (glob)
"value": "*" (glob)
}
]
Yuya Nishihara
ui: do not translate empty configsource() to 'none' (API)...
r30618 Test empty config source:
$ cat <<EOF > emptysource.py
> def reposetup(ui, repo):
Yuya Nishihara
py3: byte-stringify test-config.t and test-config-env.py
r36748 > ui.setconfig(b'empty', b'source', b'value')
Yuya Nishihara
ui: do not translate empty configsource() to 'none' (API)...
r30618 > EOF
$ cp .hg/hgrc .hg/hgrc.orig
$ cat <<EOF >> .hg/hgrc
> [extensions]
> emptysource = `pwd`/emptysource.py
> EOF
$ hg config --debug empty.source
read config from: * (glob)
none: value
$ hg config empty.source -Tjson
[
{
"name": "empty.source",
"source": "",
"value": "value"
}
]
$ cp .hg/hgrc.orig .hg/hgrc
FUJIWARA Katsunori
config: discard "%unset" values defined in the other files read in previously...
r19087 Test "%unset"
$ cat >> $HGRCPATH <<EOF
> [unsettest]
> local-hgrcpath = should be unset (HGRCPATH)
> %unset local-hgrcpath
>
> global = should be unset (HGRCPATH)
>
> both = should be unset (HGRCPATH)
>
> set-after-unset = should be unset (HGRCPATH)
> EOF
$ cat >> .hg/hgrc <<EOF
> [unsettest]
> local-hgrc = should be unset (.hg/hgrc)
> %unset local-hgrc
>
> %unset global
>
> both = should be unset (.hg/hgrc)
> %unset both
>
> set-after-unset = should be unset (.hg/hgrc)
> %unset set-after-unset
> set-after-unset = should be set (.hg/hgrc)
> EOF
$ hg showconfig unsettest
unsettest.set-after-unset=should be set (.hg/hgrc)
Aaron Kushner
config: exit non zero on non-existent config option (issue4247)...
r22316
Test exit code when no config matches
$ hg config Section.idontexist
[1]
Gregory Szorc
ui: don't fixup [paths] sub-options...
r29412
sub-options in [paths] aren't expanded
$ cat > .hg/hgrc << EOF
> [paths]
> foo = ~/foo
> foo:suboption = ~/foo
> EOF
$ hg showconfig paths
paths.foo:suboption=~/foo
paths.foo=$TESTTMP/foo
Yuya Nishihara
chg: deduplicate error handling of ui.system()...
r31108
edit failure
$ HGEDITOR=false hg config --edit
abort: edit failed: false exited with status 1
[255]
Jun Wu
rcutil: let environ override system configs (BC)...
r31685
config affected by environment variables
$ EDITOR=e1 VISUAL=e2 hg config --debug | grep 'ui\.editor'
$VISUAL: ui.editor=e2
$ VISUAL=e2 hg config --debug --config ui.editor=e3 | grep 'ui\.editor'
--config: ui.editor=e3
$ PAGER=p1 hg config --debug | grep 'pager\.pager'
$PAGER: pager.pager=p1
$ PAGER=p1 hg config --debug --config pager.pager=p2 | grep 'pager\.pager'
--config: pager.pager=p2
David Demelier
configitems: add alias support in config...
r33329
verify that aliases are evaluated as well
$ hg init aliastest
$ cd aliastest
$ cat > .hg/hgrc << EOF
> [ui]
> user = repo user
> EOF
$ touch index
$ unset HGUSER
$ hg ci -Am test
adding index
$ hg log --template '{author}\n'
repo user
$ cd ..
alias has lower priority
$ hg init aliaspriority
$ cd aliaspriority
$ cat > .hg/hgrc << EOF
> [ui]
> user = alias user
> username = repo user
> EOF
$ touch index
$ unset HGUSER
$ hg ci -Am test
adding index
$ hg log --template '{author}\n'
repo user
$ cd ..