##// END OF EJS Templates
hg: establish a cache for localrepository instances...
hg: establish a cache for localrepository instances hgweb contained code for determining whether a cached localrepository instance was up to date. This code was way too low-level to be in hgweb. This functionality has been moved to a new "cachedlocalrepo" class in hg.py. The code has been changed slightly to facilitate use inside a class. hgweb has been refactored to use the new API. As part of this refactor, hgweb.repo no longer exists! We're very close to using a distinct repo instance per thread. The new cache records state when it is created. This intelligence prevents an extra localrepository from being created on the first hgweb request. This is why some redundant output from test-extension.t has gone away.

File last commit:

r25393:eb52de50 merge default
r26219:ae33fff1 default
Show More
test-commit.t
652 lines | 14.8 KiB | text/troff | Tads3Lexer
Nicolas Dumazet
tests: unify test-commit
r11802 commit date test
$ hg init test
$ cd test
$ echo foo > foo
$ hg add foo
FUJIWARA Katsunori
ui: invoke editor for committing with HGEDITFORM environment variable...
r22205 $ cat > $TESTTMP/checkeditform.sh <<EOF
> env | grep HGEDITFORM
> true
> EOF
$ HGEDITOR="sh $TESTTMP/checkeditform.sh" hg commit -m ""
FUJIWARA Katsunori
commit: change "editform" to distinguish merge commits from others...
r22248 HGEDITFORM=commit.normal.normal
Nicolas Dumazet
tests: unify test-commit
r11802 abort: empty commit message
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-commit
r11802 $ hg commit -d '0 0' -m commit-1
$ echo foo >> foo
$ hg commit -d '1 4444444' -m commit-3
abort: impossible time zone offset: 4444444
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-commit
r11802 $ hg commit -d '1 15.1' -m commit-4
Nicolas Dumazet
util: get rid of extra trailing whitespace in parsedate abort message
r12105 abort: invalid date: '1\t15.1'
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-commit
r11802 $ hg commit -d 'foo bar' -m commit-5
Nicolas Dumazet
util: get rid of extra trailing whitespace in parsedate abort message
r12105 abort: invalid date: 'foo bar'
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-commit
r11802 $ hg commit -d ' 1 4444' -m commit-6
$ hg commit -d '111111111111 0' -m commit-7
abort: date exceeds 32 bits: 111111111111
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Adrian Buehlmann
parsedate: abort on negative dates (issue2513)...
r13062 $ hg commit -d '-7654321 3600' -m commit-7
abort: negative date value: -7654321
[255]
Nicolas Dumazet
tests: unify test-commit
r11802
commit added file that has been deleted
$ echo bar > bar
$ hg add bar
$ rm bar
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m commit-8
Martin Geisler
commit: note when files are missing...
r13899 nothing changed (1 missing files, see 'hg status')
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m commit-8-2 bar
Nicolas Dumazet
tests: unify test-commit
r11802 abort: bar: file not found!
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-commit
r11802
$ hg -q revert -a --no-backup
$ mkdir dir
$ echo boo > dir/file
$ hg add
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 adding dir/file (glob)
Nicolas Dumazet
tests: unify test-commit
r11802 $ hg -v commit -m commit-9 dir
Mads Kiilerich
localrepo: show headline notes in commitctx before showing filenames...
r23749 committing files:
Nicolas Dumazet
tests: unify test-commit
r11802 dir/file
Mads Kiilerich
localrepo: show headline notes in commitctx before showing filenames...
r23749 committing manifest
committing changelog
Nicolas Dumazet
tests: unify test-commit
r11802 committed changeset 2:d2a76177cb42
$ echo > dir.file
$ hg add
adding dir.file
$ hg commit -m commit-10 dir dir.file
abort: dir: no match under directory!
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-commit
r11802
$ echo >> dir/file
$ mkdir bleh
$ mkdir dir2
$ cd bleh
$ hg commit -m commit-11 .
abort: bleh: no match under directory!
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-commit
r11802 $ hg commit -m commit-12 ../dir ../dir2
abort: dir2: no match under directory!
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-commit
r11802 $ hg -v commit -m commit-13 ../dir
Mads Kiilerich
localrepo: show headline notes in commitctx before showing filenames...
r23749 committing files:
Nicolas Dumazet
tests: unify test-commit
r11802 dir/file
Mads Kiilerich
localrepo: show headline notes in commitctx before showing filenames...
r23749 committing manifest
committing changelog
Nicolas Dumazet
tests: unify test-commit
r11802 committed changeset 3:1cd62a2d8db5
$ cd ..
$ hg commit -m commit-14 does-not-exist
Mads Kiilerich
tests: hide 'No such file or directory' messages...
r15521 abort: does-not-exist: * (glob)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Mads Kiilerich
tests: introduce c-style conditional sections in .t tests...
r16842
#if symlink
Nicolas Dumazet
tests: unify test-commit
r11802 $ ln -s foo baz
$ hg commit -m commit-15 baz
abort: baz: file not tracked!
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Mads Kiilerich
tests: introduce c-style conditional sections in .t tests...
r16842 #endif
Nicolas Dumazet
tests: unify test-commit
r11802 $ touch quux
$ hg commit -m commit-16 quux
abort: quux: file not tracked!
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-commit
r11802 $ echo >> dir/file
$ hg -v commit -m commit-17 dir/file
Mads Kiilerich
localrepo: show headline notes in commitctx before showing filenames...
r23749 committing files:
Nicolas Dumazet
tests: unify test-commit
r11802 dir/file
Mads Kiilerich
localrepo: show headline notes in commitctx before showing filenames...
r23749 committing manifest
committing changelog
Nicolas Dumazet
tests: unify test-commit
r11802 committed changeset 4:49176991390e
An empty date was interpreted as epoch origin
$ echo foo >> foo
$ hg commit -d '' -m commit-no-date
$ hg tip --template '{date|isodate}\n' | grep '1970'
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Adrian Buehlmann
introduce new RequirementError (issue2649)...
r13447
Make sure we do not obscure unknown requires file entries (issue2649)
$ echo foo >> foo
$ echo fake >> .hg/requires
$ hg commit -m bla
Mads Kiilerich
repo: rephrase the "missing requirement" error message...
r20820 abort: repository requires features unknown to this Mercurial: fake!
(see http://mercurial.selenic.com/wiki/MissingRequirement for more information)
Adrian Buehlmann
introduce new RequirementError (issue2649)...
r13447 [255]
Nicolas Dumazet
tests: unify test-commit
r11802 $ cd ..
partial subdir commit test
$ hg init test2
$ cd test2
$ mkdir foo
$ echo foo > foo/foo
$ mkdir bar
$ echo bar > bar/bar
$ hg add
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 adding bar/bar (glob)
adding foo/foo (glob)
"Bradley M. Kuhn"
commit: --edit/-e to force edit of otherwise-supplied commit message...
r21021 $ HGEDITOR=cat hg ci -e -m commit-subdir-1 foo
commit-subdir-1
HG: Enter commit message. Lines beginning with 'HG:' are removed.
HG: Leave message empty to abort commit.
HG: --
HG: user: test
HG: branch 'default'
HG: added foo/foo
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg ci -m commit-subdir-2 bar
Nicolas Dumazet
tests: unify test-commit
r11802
subdir log 1
$ hg log -v foo
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 0:f97e73a25882
Nicolas Dumazet
tests: unify test-commit
r11802 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Nicolas Dumazet
tests: unify test-commit
r11802 files: foo/foo
description:
commit-subdir-1
subdir log 2
$ hg log -v bar
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 1:aa809156d50d
Nicolas Dumazet
tests: unify test-commit
r11802 tag: tip
user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Nicolas Dumazet
tests: unify test-commit
r11802 files: bar/bar
description:
commit-subdir-2
full log
$ hg log -v
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 1:aa809156d50d
Nicolas Dumazet
tests: unify test-commit
r11802 tag: tip
user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Nicolas Dumazet
tests: unify test-commit
r11802 files: bar/bar
description:
commit-subdir-2
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 0:f97e73a25882
Nicolas Dumazet
tests: unify test-commit
r11802 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Nicolas Dumazet
tests: unify test-commit
r11802 files: foo/foo
description:
commit-subdir-1
$ cd ..
dot and subdir commit test
$ hg init test3
"Bradley M. Kuhn"
commit: --edit/-e to force edit of otherwise-supplied commit message...
r21021 $ echo commit-foo-subdir > commit-log-test
Nicolas Dumazet
tests: unify test-commit
r11802 $ cd test3
$ mkdir foo
$ echo foo content > foo/plain-file
$ hg add foo/plain-file
"Bradley M. Kuhn"
commit: --edit/-e to force edit of otherwise-supplied commit message...
r21021 $ HGEDITOR=cat hg ci --edit -l ../commit-log-test foo
commit-foo-subdir
HG: Enter commit message. Lines beginning with 'HG:' are removed.
HG: Leave message empty to abort commit.
HG: --
HG: user: test
HG: branch 'default'
HG: added foo/plain-file
Nicolas Dumazet
tests: unify test-commit
r11802 $ echo modified foo content > foo/plain-file
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg ci -m commit-foo-dot .
Nicolas Dumazet
tests: unify test-commit
r11802
full log
$ hg log -v
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 1:95b38e3a5b2e
Nicolas Dumazet
tests: unify test-commit
r11802 tag: tip
user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Nicolas Dumazet
tests: unify test-commit
r11802 files: foo/plain-file
description:
commit-foo-dot
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 0:65d4e9386227
Nicolas Dumazet
tests: unify test-commit
r11802 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Nicolas Dumazet
tests: unify test-commit
r11802 files: foo/plain-file
description:
commit-foo-subdir
subdir log
$ cd foo
$ hg log .
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 1:95b38e3a5b2e
Nicolas Dumazet
tests: unify test-commit
r11802 tag: tip
user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Nicolas Dumazet
tests: unify test-commit
r11802 summary: commit-foo-dot
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 0:65d4e9386227
Nicolas Dumazet
tests: unify test-commit
r11802 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Nicolas Dumazet
tests: unify test-commit
r11802 summary: commit-foo-subdir
$ cd ..
$ cd ..
Martin Geisler
tests: added a short description to issue numbers...
r12399 Issue1049: Hg permits partial commit of merge without warning
Nicolas Dumazet
tests: unify test-commit
r11802 $ hg init issue1049
$ cd issue1049
$ echo a > a
$ hg ci -Ama
adding a
$ echo a >> a
$ hg ci -mb
$ hg up 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo b >> a
$ hg ci -mc
created new head
$ HGMERGE=true hg merge
merging a
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
should fail because we are specifying a file name
$ hg ci -mmerge a
abort: cannot partially commit a merge (do not specify files or patterns)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-commit
r11802
should fail because we are specifying a pattern
$ hg ci -mmerge -I a
abort: cannot partially commit a merge (do not specify files or patterns)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-commit
r11802
should succeed
FUJIWARA Katsunori
commit: change "editform" to distinguish merge commits from others...
r22248 $ HGEDITOR="sh $TESTTMP/checkeditform.sh" hg ci -mmerge --edit
HGEDITFORM=commit.normal.merge
Nicolas Dumazet
tests: unify test-commit
r11802 $ cd ..
test commit message content
$ hg init commitmsg
$ cd commitmsg
$ echo changed > changed
$ echo removed > removed
Ryan McElroy
templatekw: replace currentbookmark with activebookmark keyword...
r25014 $ hg book activebookmark
Nicolas Dumazet
tests: unify test-commit
r11802 $ hg ci -qAm init
$ hg rm removed
$ echo changed >> changed
$ echo added > added
$ hg add added
$ HGEDITOR=cat hg ci -A
HG: Enter commit message. Lines beginning with 'HG:' are removed.
HG: Leave message empty to abort commit.
HG: --
HG: user: test
HG: branch 'default'
Ryan McElroy
templatekw: replace currentbookmark with activebookmark keyword...
r25014 HG: bookmark 'activebookmark'
Nicolas Dumazet
tests: unify test-commit
r11802 HG: added added
HG: changed changed
HG: removed removed
abort: empty commit message
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
FUJIWARA Katsunori
localrepo: save manually edited commit message as soon as possible...
r20765
test saving last-message.txt
$ hg init sub
$ echo a > sub/a
$ hg -R sub add sub/a
$ cat > sub/.hg/hgrc <<EOF
> [hooks]
> precommit.test-saving-last-message = false
> EOF
$ echo 'sub = sub' > .hgsub
$ hg add .hgsub
Sean Farley
tests: use TESTTMP instead of TESTDIR...
r20859 $ cat > $TESTTMP/editor.sh <<EOF
FUJIWARA Katsunori
localrepo: save manually edited commit message as soon as possible...
r20765 > echo "==== before editing:"
> cat \$1
> echo "===="
> echo "test saving last-message.txt" >> \$1
> EOF
$ rm -f .hg/last-message.txt
Sean Farley
tests: use TESTTMP instead of TESTDIR...
r20859 $ HGEDITOR="sh $TESTTMP/editor.sh" hg commit -S -q
FUJIWARA Katsunori
localrepo: save manually edited commit message as soon as possible...
r20765 ==== before editing:
HG: Enter commit message. Lines beginning with 'HG:' are removed.
HG: Leave message empty to abort commit.
HG: --
HG: user: test
HG: branch 'default'
Ryan McElroy
templatekw: replace currentbookmark with activebookmark keyword...
r25014 HG: bookmark 'activebookmark'
FUJIWARA Katsunori
localrepo: save manually edited commit message as soon as possible...
r20765 HG: subrepo sub
HG: added .hgsub
HG: added added
HG: changed .hgsubstate
HG: changed changed
HG: removed removed
====
abort: precommit.test-saving-last-message hook exited with status 1 (in subrepo sub)
[255]
$ cat .hg/last-message.txt
test saving last-message.txt
FUJIWARA Katsunori
cmdutil: make commit message shown in text editor customizable by template...
r21924 test that '[committemplate] changeset' definition and commit log
specific template keywords work well
$ cat >> .hg/hgrc <<EOF
> [committemplate]
FUJIWARA Katsunori
cmdutil: look commit template definition up by specified 'editform'...
r22012 > changeset.commit.normal = HG: this is "commit.normal" template
> HG: {extramsg}
Ryan McElroy
templatekw: replace currentbookmark with activebookmark keyword...
r25014 > {if(activebookmark,
> "HG: bookmark '{activebookmark}' is activated\n",
FUJIWARA Katsunori
cmdutil: look commit template definition up by specified 'editform'...
r22012 > "HG: no bookmark is activated\n")}{subrepos %
> "HG: subrepo '{subrepo}' is changed\n"}
>
> changeset.commit = HG: this is "commit" template
> HG: {extramsg}
Ryan McElroy
templatekw: replace currentbookmark with activebookmark keyword...
r25014 > {if(activebookmark,
> "HG: bookmark '{activebookmark}' is activated\n",
FUJIWARA Katsunori
cmdutil: look commit template definition up by specified 'editform'...
r22012 > "HG: no bookmark is activated\n")}{subrepos %
> "HG: subrepo '{subrepo}' is changed\n"}
>
FUJIWARA Katsunori
cmdutil: make commit message shown in text editor customizable by template...
r21924 > changeset = HG: this is customized commit template
> HG: {extramsg}
Ryan McElroy
templatekw: replace currentbookmark with activebookmark keyword...
r25014 > {if(activebookmark,
> "HG: bookmark '{activebookmark}' is activated\n",
FUJIWARA Katsunori
cmdutil: make commit message shown in text editor customizable by template...
r21924 > "HG: no bookmark is activated\n")}{subrepos %
> "HG: subrepo '{subrepo}' is changed\n"}
> EOF
$ hg init sub2
$ echo a > sub2/a
$ hg -R sub2 add sub2/a
$ echo 'sub2 = sub2' >> .hgsub
$ HGEDITOR=cat hg commit -S -q
FUJIWARA Katsunori
cmdutil: look commit template definition up by specified 'editform'...
r22012 HG: this is "commit.normal" template
FUJIWARA Katsunori
cmdutil: make commit message shown in text editor customizable by template...
r21924 HG: Leave message empty to abort commit.
Ryan McElroy
templatekw: replace currentbookmark with activebookmark keyword...
r25014 HG: bookmark 'activebookmark' is activated
FUJIWARA Katsunori
cmdutil: make commit message shown in text editor customizable by template...
r21924 HG: subrepo 'sub' is changed
HG: subrepo 'sub2' is changed
abort: empty commit message
[255]
FUJIWARA Katsunori
cmdutil: look commit template definition up by specified 'editform'...
r22012 $ cat >> .hg/hgrc <<EOF
> [committemplate]
> changeset.commit.normal =
> # now, "changeset.commit" should be chosen for "hg commit"
> EOF
Ryan McElroy
templatekw: replace currentbookmark with activebookmark keyword...
r25014 $ hg bookmark --inactive activebookmark
FUJIWARA Katsunori
cmdutil: make commit message shown in text editor customizable by template...
r21924 $ hg forget .hgsub
$ HGEDITOR=cat hg commit -q
FUJIWARA Katsunori
cmdutil: look commit template definition up by specified 'editform'...
r22012 HG: this is "commit" template
HG: Leave message empty to abort commit.
HG: no bookmark is activated
abort: empty commit message
[255]
$ cat >> .hg/hgrc <<EOF
> [committemplate]
> changeset.commit =
> # now, "changeset" should be chosen for "hg commit"
> EOF
$ HGEDITOR=cat hg commit -q
FUJIWARA Katsunori
cmdutil: make commit message shown in text editor customizable by template...
r21924 HG: this is customized commit template
HG: Leave message empty to abort commit.
HG: no bookmark is activated
abort: empty commit message
[255]
$ cat >> .hg/hgrc <<EOF
FUJIWARA Katsunori
context: avoid breaking already fixed self._status at ctx.status()...
r23711 > [committemplate]
> changeset = {desc}
FUJIWARA Katsunori
templatekw: compare target context and its parent exactly (issue4690)...
r25392 > HG: mods={file_mods}
> HG: adds={file_adds}
> HG: dels={file_dels}
FUJIWARA Katsunori
context: avoid breaking already fixed self._status at ctx.status()...
r23711 > HG: files={files}
> HG:
FUJIWARA Katsunori
context: override _dirstatestatus in workingcommitctx for correct matching...
r23712 > {splitlines(diff()) % 'HG: {line}\n'
FUJIWARA Katsunori
context: avoid breaking already fixed self._status at ctx.status()...
r23711 > }HG:
FUJIWARA Katsunori
templatekw: compare target context and its parent exactly (issue4690)...
r25392 > HG: mods={file_mods}
> HG: adds={file_adds}
> HG: dels={file_dels}
FUJIWARA Katsunori
context: avoid breaking already fixed self._status at ctx.status()...
r23711 > HG: files={files}\n
> EOF
$ hg status -amr
M changed
A added
R removed
$ HGEDITOR=cat hg commit -q -e -m "foo bar" changed
foo bar
FUJIWARA Katsunori
templatekw: compare target context and its parent exactly (issue4690)...
r25392 HG: mods=changed
HG: adds=
HG: dels=
FUJIWARA Katsunori
context: avoid breaking already fixed self._status at ctx.status()...
r23711 HG: files=changed
HG:
FUJIWARA Katsunori
context: override _dirstatestatus in workingcommitctx for correct matching...
r23712 HG: --- a/changed Thu Jan 01 00:00:00 1970 +0000
HG: +++ b/changed Thu Jan 01 00:00:00 1970 +0000
HG: @@ -1,1 +1,2 @@
HG: changed
HG: +changed
FUJIWARA Katsunori
context: avoid breaking already fixed self._status at ctx.status()...
r23711 HG:
FUJIWARA Katsunori
templatekw: compare target context and its parent exactly (issue4690)...
r25392 HG: mods=changed
HG: adds=
HG: dels=
FUJIWARA Katsunori
context: avoid breaking already fixed self._status at ctx.status()...
r23711 HG: files=changed
$ hg status -amr
A added
R removed
$ hg parents --template "M {file_mods}\nA {file_adds}\nR {file_dels}\n"
M changed
A
R
$ hg rollback -q
$ cat >> .hg/hgrc <<EOF
FUJIWARA Katsunori
context: override _dirstatestatus in workingcommitctx for correct matching...
r23712 > [committemplate]
> changeset = {desc}
FUJIWARA Katsunori
templatekw: compare target context and its parent exactly (issue4690)...
r25392 > HG: mods={file_mods}
> HG: adds={file_adds}
> HG: dels={file_dels}
FUJIWARA Katsunori
context: override _dirstatestatus in workingcommitctx for correct matching...
r23712 > HG: files={files}
> HG:
> {splitlines(diff("changed")) % 'HG: {line}\n'
> }HG:
FUJIWARA Katsunori
templatekw: compare target context and its parent exactly (issue4690)...
r25392 > HG: mods={file_mods}
> HG: adds={file_adds}
> HG: dels={file_dels}
FUJIWARA Katsunori
context: override _dirstatestatus in workingcommitctx for correct matching...
r23712 > HG: files={files}
> HG:
> {splitlines(diff("added")) % 'HG: {line}\n'
> }HG:
FUJIWARA Katsunori
templatekw: compare target context and its parent exactly (issue4690)...
r25392 > HG: mods={file_mods}
> HG: adds={file_adds}
> HG: dels={file_dels}
FUJIWARA Katsunori
context: override _dirstatestatus in workingcommitctx for correct matching...
r23712 > HG: files={files}
> HG:
> {splitlines(diff("removed")) % 'HG: {line}\n'
> }HG:
FUJIWARA Katsunori
templatekw: compare target context and its parent exactly (issue4690)...
r25392 > HG: mods={file_mods}
> HG: adds={file_adds}
> HG: dels={file_dels}
FUJIWARA Katsunori
context: override _dirstatestatus in workingcommitctx for correct matching...
r23712 > HG: files={files}\n
> EOF
$ HGEDITOR=cat hg commit -q -e -m "foo bar" added removed
foo bar
FUJIWARA Katsunori
templatekw: compare target context and its parent exactly (issue4690)...
r25392 HG: mods=
HG: adds=added
HG: dels=removed
FUJIWARA Katsunori
context: override _dirstatestatus in workingcommitctx for correct matching...
r23712 HG: files=added removed
HG:
HG:
FUJIWARA Katsunori
templatekw: compare target context and its parent exactly (issue4690)...
r25392 HG: mods=
HG: adds=added
HG: dels=removed
FUJIWARA Katsunori
context: override _dirstatestatus in workingcommitctx for correct matching...
r23712 HG: files=added removed
HG:
HG: --- /dev/null Thu Jan 01 00:00:00 1970 +0000
HG: +++ b/added Thu Jan 01 00:00:00 1970 +0000
HG: @@ -0,0 +1,1 @@
HG: +added
HG:
FUJIWARA Katsunori
templatekw: compare target context and its parent exactly (issue4690)...
r25392 HG: mods=
HG: adds=added
HG: dels=removed
FUJIWARA Katsunori
context: override _dirstatestatus in workingcommitctx for correct matching...
r23712 HG: files=added removed
HG:
HG: --- a/removed Thu Jan 01 00:00:00 1970 +0000
HG: +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
HG: @@ -1,1 +0,0 @@
HG: -removed
HG:
FUJIWARA Katsunori
templatekw: compare target context and its parent exactly (issue4690)...
r25392 HG: mods=
HG: adds=added
HG: dels=removed
FUJIWARA Katsunori
context: override _dirstatestatus in workingcommitctx for correct matching...
r23712 HG: files=added removed
$ hg status -amr
M changed
$ hg parents --template "M {file_mods}\nA {file_adds}\nR {file_dels}\n"
M
A added
R removed
$ hg rollback -q
$ cat >> .hg/hgrc <<EOF
FUJIWARA Katsunori
cmdutil: make commit message shown in text editor customizable by template...
r21924 > # disable customizing for subsequent tests
> [committemplate]
> changeset =
> EOF
Adrian Buehlmann
tests: roll test-commit-copy.t into test-commit.t
r16849 $ cd ..
commit copy
$ hg init dir2
$ cd dir2
$ echo bleh > bar
$ hg add bar
$ hg ci -m 'add bar'
$ hg cp bar foo
$ echo >> bar
$ hg ci -m 'cp bar foo; change bar'
$ hg debugrename foo
foo renamed from bar:26d3ca0dfd18e44d796b564e38dd173c9668d3a9
$ hg debugindex bar
Bryan O'Sullivan
tests: reduce spurious failures when run with generaldelta...
r17132 rev offset length ..... linkrev nodeid p1 p2 (re)
0 0 6 ..... 0 26d3ca0dfd18 000000000000 000000000000 (re)
1 6 7 ..... 1 d267bddd54f7 26d3ca0dfd18 000000000000 (re)
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
Durham Goode
commit: add ui.allowemptycommit config option...
r25018 Test making empty commits
$ hg commit --config ui.allowemptycommit=True -m "empty commit"
$ hg log -r . -v --stat
changeset: 2:d809f3644287
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
description:
empty commit
Augie Fackler
pathauditor: check for codepoints ignored on OS X
r23598 verify pathauditor blocks evil filepaths
$ cat > evil-commit.py <<EOF
> from mercurial import ui, hg, context, node
> notrc = u".h\u200cg".encode('utf-8') + '/hgrc'
> u = ui.ui()
> r = hg.repository(u, '.')
> def filectxfn(repo, memctx, path):
> return context.memfilectx(repo, path, '[hooks]\nupdate = echo owned')
> c = context.memctx(r, [r['tip'].node(), node.nullid],
> 'evil', [notrc], filectxfn, 0)
> r.commitctx(c)
> EOF
$ $PYTHON evil-commit.py
Matt Harbison
tests: add missing globs for Windows...
r23627 #if windows
$ hg co --clean tip
abort: path contains illegal component: .h\xe2\x80\x8cg\\hgrc (esc)
[255]
#else
Augie Fackler
pathauditor: check for codepoints ignored on OS X
r23598 $ hg co --clean tip
abort: path contains illegal component: .h\xe2\x80\x8cg/hgrc (esc)
[255]
Matt Harbison
tests: add missing globs for Windows...
r23627 #endif
Augie Fackler
pathauditor: check for codepoints ignored on OS X
r23598
Matt Mackall
pathauditor: check for Windows shortname aliases
r23599 $ hg rollback -f
Durham Goode
commit: add ui.allowemptycommit config option...
r25018 repository tip rolled back to revision 2 (undo commit)
Matt Mackall
pathauditor: check for Windows shortname aliases
r23599 $ cat > evil-commit.py <<EOF
> from mercurial import ui, hg, context, node
> notrc = "HG~1/hgrc"
> u = ui.ui()
> r = hg.repository(u, '.')
> def filectxfn(repo, memctx, path):
> return context.memfilectx(repo, path, '[hooks]\nupdate = echo owned')
> c = context.memctx(r, [r['tip'].node(), node.nullid],
> 'evil', [notrc], filectxfn, 0)
> r.commitctx(c)
> EOF
$ $PYTHON evil-commit.py
$ hg co --clean tip
Matt Harbison
tests: add missing globs for Windows...
r23627 abort: path contains illegal component: HG~1/hgrc (glob)
Matt Mackall
pathauditor: check for Windows shortname aliases
r23599 [255]
$ hg rollback -f
Durham Goode
commit: add ui.allowemptycommit config option...
r25018 repository tip rolled back to revision 2 (undo commit)
Matt Mackall
pathauditor: check for Windows shortname aliases
r23599 $ cat > evil-commit.py <<EOF
> from mercurial import ui, hg, context, node
> notrc = "HG8B6C~2/hgrc"
> u = ui.ui()
> r = hg.repository(u, '.')
> def filectxfn(repo, memctx, path):
> return context.memfilectx(repo, path, '[hooks]\nupdate = echo owned')
> c = context.memctx(r, [r['tip'].node(), node.nullid],
> 'evil', [notrc], filectxfn, 0)
> r.commitctx(c)
> EOF
$ $PYTHON evil-commit.py
$ hg co --clean tip
Matt Harbison
tests: add missing globs for Windows...
r23627 abort: path contains illegal component: HG8B6C~2/hgrc (glob)
Matt Mackall
pathauditor: check for Windows shortname aliases
r23599 [255]