##// END OF EJS Templates
internals: extract frame-based protocol docs to own document...
internals: extract frame-based protocol docs to own document wireprotocol.txt is quite long and difficult to digest. The frame-based protocol is effectively a standalone concept (and could even be used outside of Mercurial). So this commit extracts its docs to a standalone file. The first few paragraphs were rewritten as part of the extraction. Sections headers were adjusted accordingly. Existing referalls in wireprotocol.txt were updated to refer to the new doc / concept, which I've started referring to as `hgrpc`. I'm on the fence as to whether to move the HTTP and SSH transport details to the new doc as well. For now, I'm leaving them in wireprotocol.txt. Differential Revision: https://phab.mercurial-scm.org/D4443

File last commit:

r37301:d4e62df1 default
r39594:b0e0db15 default
Show More
test-commit.t
833 lines | 20.1 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
Boris Feld
util: raise ParseError when parsing dates (BC)...
r32462 hg: parse error: 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
Boris Feld
util: raise ParseError when parsing dates (BC)...
r32462 hg: parse error: 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
Boris Feld
util: raise ParseError when parsing dates (BC)...
r32462 hg: parse error: 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
Boris Feld
util: raise ParseError when parsing dates (BC)...
r32462 hg: parse error: date exceeds 32 bits: 111111111111
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Florent Gallaire
date: reallow negative timestamp, fix for Windows buggy gmtime() (issue2513)...
r28825 $ hg commit -d '-111111111111 0' -m commit-7
Boris Feld
util: raise ParseError when parsing dates (BC)...
r32462 hg: parse error: date exceeds 32 bits: -111111111111
Florent Gallaire
date: reallow negative timestamp, fix for Windows buggy gmtime() (issue2513)...
r28825 [255]
$ echo foo >> foo
Florent Gallaire
date: fix boundary check of negative integer
r28864 $ hg commit -d '1901-12-13 20:45:52 +0000' -m commit-7-2
Florent Gallaire
date: reallow negative timestamp, fix for Windows buggy gmtime() (issue2513)...
r28825 $ echo foo >> foo
Florent Gallaire
date: fix boundary check of negative integer
r28864 $ hg commit -d '-2147483648 0' -m commit-7-3
Florent Gallaire
date: reallow negative timestamp, fix for Windows buggy gmtime() (issue2513)...
r28825 $ hg log -T '{rev} {date|isodatesec}\n' -l2
Florent Gallaire
date: fix boundary check of negative integer
r28864 3 1901-12-13 20:45:52 +0000
2 1901-12-13 20:45:52 +0000
$ hg commit -d '1901-12-13 20:45:51 +0000' -m commit-7
Boris Feld
util: raise ParseError when parsing dates (BC)...
r32462 hg: parse error: date exceeds 32 bits: -2147483649
Florent Gallaire
date: reallow negative timestamp, fix for Windows buggy gmtime() (issue2513)...
r28825 [255]
Florent Gallaire
date: fix boundary check of negative integer
r28864 $ hg commit -d '-2147483649 0' -m commit-7
Boris Feld
util: raise ParseError when parsing dates (BC)...
r32462 hg: parse error: date exceeds 32 bits: -2147483649
Adrian Buehlmann
parsedate: abort on negative dates (issue2513)...
r13062 [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
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 adding dir/file
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
Florent Gallaire
date: fix boundary check of negative integer
r28864 committed changeset 4:1957363f1ced
Nicolas Dumazet
tests: unify test-commit
r11802
$ 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
Florent Gallaire
date: fix boundary check of negative integer
r28864 committed changeset 5:a31d8f87544a
Nicolas Dumazet
tests: unify test-commit
r11802 $ 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]
Matt Harbison
test-commit: stabilize for filesystems without symlink support
r33577 $ rm baz
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
Florent Gallaire
date: fix boundary check of negative integer
r28864 committed changeset 6:32d054c9d085
Nicolas Dumazet
tests: unify test-commit
r11802
An empty date was interpreted as epoch origin
$ echo foo >> foo
devel: activate default-date in tests...
r32410 $ hg commit -d '' -m commit-no-date --config devel.default-date=
Nicolas Dumazet
tests: unify test-commit
r11802 $ 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
Pulkit Goyal
commitextras: check the format of the arguments and no internal key is used...
r33547 Using the advanced --extra flag
$ echo "[extensions]" >> $HGRCPATH
$ echo "commitextras=" >> $HGRCPATH
$ hg status
? quux
Matt Harbison
test-commit: stabilize for filesystems without symlink support
r33577 $ hg add quux
$ hg commit -m "adding internal used extras" --extra amend_source=hash
abort: key 'amend_source' is used internally, can't be set manually
[255]
Pulkit Goyal
commitextras: make sure keys contains ascii letters, numbers, '_' and '-' only
r33603 $ hg commit -m "special chars in extra" --extra id@phab=214
abort: keys can only contain ascii letters, digits, '_' and '-'
[255]
Pulkit Goyal
commitextras: make sure keys are not empty...
r33607 $ hg commit -m "empty key" --extra =value
abort: unable to parse '=value', keys can't be empty
[255]
Pulkit Goyal
commitextras: check the format of the arguments and no internal key is used...
r33547 $ hg commit -m "adding extras" --extra sourcehash=foo --extra oldhash=bar
$ hg log -r . -T '{extras % "{extra}\n"}'
branch=default
oldhash=bar
sourcehash=foo
Martin von Zweigbergk
tests: demonstrate that failed "hg ci -A" updates dirstate (issue5645)...
r33618 Failed commit with --addremove should not update dirstate
$ echo foo > newfile
$ hg status
? newfile
$ HGEDITOR=false hg ci --addremove
adding newfile
abort: edit failed: false exited with status 1
[255]
$ hg status
Martin von Zweigbergk
commit: don't let failed commit with --addremove update dirstate (issue5645)...
r33619 ? newfile
Martin von Zweigbergk
tests: demonstrate that failed "hg ci -A" updates dirstate (issue5645)...
r33618
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!
Matt Mackall
urls: bulk-change primary website URLs
r26421 (see https://mercurial-scm.org/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
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 adding bar/bar
adding foo/foo
"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
====
Matt Harbison
subrepo: make the output references to subrepositories consistent...
r33365 abort: precommit.test-saving-last-message hook exited with status 1 (in subrepository "sub")
FUJIWARA Katsunori
localrepo: save manually edited commit message as soon as possible...
r20765 [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]
Yuya Nishihara
commit: optionally strip quotes from commit template (BC)...
r32046 > changeset.commit.normal = 'HG: this is "commit.normal" template
FUJIWARA Katsunori
cmdutil: look commit template definition up by specified 'editform'...
r22012 > 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 %
Yuya Nishihara
commit: optionally strip quotes from commit template (BC)...
r32046 > "HG: subrepo '{subrepo}' is changed\n"}'
FUJIWARA Katsunori
cmdutil: look commit template definition up by specified 'editform'...
r22012 >
> 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
Gregory Szorc
debugcommands: drop offset and length from debugindex by default...
r37301 rev linkrev nodeid p1 p2
0 0 26d3ca0dfd18 000000000000 000000000000
1 1 d267bddd54f7 26d3ca0dfd18 000000000000
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
Augie Fackler
tests: update test-commit to pass our import checker
r33953 > from __future__ import absolute_import
> from mercurial import context, hg, node, ui as uimod
Augie Fackler
tests: add missing b prefixes in test-commit.t...
r36438 > notrc = u".h\u200cg".encode('utf-8') + b'/hgrc'
Augie Fackler
tests: update test-commit to pass our import checker
r33953 > u = uimod.ui.load()
Augie Fackler
tests: add missing b prefixes in test-commit.t...
r36438 > r = hg.repository(u, b'.')
Augie Fackler
pathauditor: check for codepoints ignored on OS X
r23598 > def filectxfn(repo, memctx, path):
Martin von Zweigbergk
memfilectx: make changectx argument mandatory in constructor (API)...
r35401 > return context.memfilectx(repo, memctx, path,
Augie Fackler
tests: add missing b prefixes in test-commit.t...
r36438 > b'[hooks]\nupdate = echo owned')
> c = context.memctx(r, [r[b'tip'].node(), node.nullid],
> b'evil', [notrc], filectxfn, 0)
Augie Fackler
pathauditor: check for codepoints ignored on OS X
r23598 > 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
Augie Fackler
tests: update test-commit to pass our import checker
r33953 > from __future__ import absolute_import
> from mercurial import context, hg, node, ui as uimod
Augie Fackler
tests: add missing b prefixes in test-commit.t...
r36438 > notrc = b"HG~1/hgrc"
Augie Fackler
tests: update test-commit to pass our import checker
r33953 > u = uimod.ui.load()
Augie Fackler
tests: add missing b prefixes in test-commit.t...
r36438 > r = hg.repository(u, b'.')
Matt Mackall
pathauditor: check for Windows shortname aliases
r23599 > def filectxfn(repo, memctx, path):
Martin von Zweigbergk
memfilectx: make changectx argument mandatory in constructor (API)...
r35401 > return context.memfilectx(repo, memctx, path,
Augie Fackler
tests: add missing b prefixes in test-commit.t...
r36438 > b'[hooks]\nupdate = echo owned')
> c = context.memctx(r, [r[b'tip'].node(), node.nullid],
> b'evil', [notrc], filectxfn, 0)
Matt Mackall
pathauditor: check for Windows shortname aliases
r23599 > r.commitctx(c)
> EOF
$ $PYTHON evil-commit.py
$ hg co --clean tip
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 abort: path contains illegal component: HG~1/hgrc
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
Augie Fackler
tests: update test-commit to pass our import checker
r33953 > from __future__ import absolute_import
> from mercurial import context, hg, node, ui as uimod
Augie Fackler
tests: add missing b prefixes in test-commit.t...
r36438 > notrc = b"HG8B6C~2/hgrc"
Augie Fackler
tests: update test-commit to pass our import checker
r33953 > u = uimod.ui.load()
Augie Fackler
tests: add missing b prefixes in test-commit.t...
r36438 > r = hg.repository(u, b'.')
Matt Mackall
pathauditor: check for Windows shortname aliases
r23599 > def filectxfn(repo, memctx, path):
Martin von Zweigbergk
memfilectx: make changectx argument mandatory in constructor (API)...
r35401 > return context.memfilectx(repo, memctx, path,
Augie Fackler
tests: add missing b prefixes in test-commit.t...
r36438 > b'[hooks]\nupdate = echo owned')
> c = context.memctx(r, [r[b'tip'].node(), node.nullid],
> b'evil', [notrc], filectxfn, 0)
Matt Mackall
pathauditor: check for Windows shortname aliases
r23599 > r.commitctx(c)
> EOF
$ $PYTHON evil-commit.py
$ hg co --clean tip
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 abort: path contains illegal component: HG8B6C~2/hgrc
Matt Mackall
pathauditor: check for Windows shortname aliases
r23599 [255]
Tony Tung
commit: abort when a committemplate is not changed...
r26742
# test that an unmodified commit template message aborts
$ hg init unmodified_commit_template
$ cd unmodified_commit_template
$ echo foo > foo
$ hg add foo
$ hg commit -m "foo"
$ cat >> .hg/hgrc <<EOF
> [committemplate]
> changeset.commit = HI THIS IS NOT STRIPPED
> HG: this is customized commit template
> HG: {extramsg}
> {if(activebookmark,
> "HG: bookmark '{activebookmark}' is activated\n",
> "HG: no bookmark is activated\n")}{subrepos %
> "HG: subrepo '{subrepo}' is changed\n"}
> EOF
$ cat > $TESTTMP/notouching.sh <<EOF
> true
> EOF
$ echo foo2 > foo2
$ hg add foo2
$ HGEDITOR="sh $TESTTMP/notouching.sh" hg commit
abort: commit message unchanged
[255]
Sean Farley
cmdutil: add special string that ignores rest of text...
r30703
test that text below the --- >8 --- special string is ignored
Yuya Nishihara
commit: update test to actually modify template text...
r30723 $ cat <<'EOF' > $TESTTMP/lowercaseline.sh
> cat $1 | sed s/LINE/line/ | tee $1.new
> mv $1.new $1
> EOF
Sean Farley
cmdutil: add special string that ignores rest of text...
r30703 $ hg init ignore_below_special_string
$ cd ignore_below_special_string
$ echo foo > foo
$ hg add foo
$ hg commit -m "foo"
$ cat >> .hg/hgrc <<EOF
> [committemplate]
Yuya Nishihara
commit: update test to actually modify template text...
r30723 > changeset.commit = first LINE
Sean Farley
cmdutil: add special string that ignores rest of text...
r30703 > HG: this is customized commit template
> HG: {extramsg}
> HG: ------------------------ >8 ------------------------
> {diff()}
> EOF
$ echo foo2 > foo2
$ hg add foo2
Yuya Nishihara
commit: fix unmodified message detection for the "--- >8 ----" magic...
r30724 $ HGEDITOR="sh $TESTTMP/notouching.sh" hg ci
abort: commit message unchanged
[255]
Yuya Nishihara
commit: update test to actually modify template text...
r30723 $ HGEDITOR="sh $TESTTMP/lowercaseline.sh" hg ci
Sean Farley
cmdutil: add special string that ignores rest of text...
r30703 first line
HG: this is customized commit template
HG: Leave message empty to abort commit.
HG: ------------------------ >8 ------------------------
diff -r e63c23eaa88a foo2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/foo2 Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,1 @@
+foo2
$ hg log -T '{desc}\n' -r .
first line
test that the special string --- >8 --- isn't used when not at the beginning of
a line
$ cat >> .hg/hgrc <<EOF
> [committemplate]
Yuya Nishihara
commit: update test to actually modify template text...
r30723 > changeset.commit = first LINE2
Sean Farley
cmdutil: add special string that ignores rest of text...
r30703 > another line HG: ------------------------ >8 ------------------------
> HG: this is customized commit template
> HG: {extramsg}
> HG: ------------------------ >8 ------------------------
> {diff()}
> EOF
$ echo foo >> foo
Yuya Nishihara
commit: update test to actually modify template text...
r30723 $ HGEDITOR="sh $TESTTMP/lowercaseline.sh" hg ci
Sean Farley
cmdutil: add special string that ignores rest of text...
r30703 first line2
another line HG: ------------------------ >8 ------------------------
HG: this is customized commit template
HG: Leave message empty to abort commit.
HG: ------------------------ >8 ------------------------
diff -r 3661b22b0702 foo
--- a/foo Thu Jan 01 00:00:00 1970 +0000
+++ b/foo Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +1,2 @@
foo
+foo
$ hg log -T '{desc}\n' -r .
first line2
another line HG: ------------------------ >8 ------------------------
also test that this special string isn't accepted when there is some extra text
at the end
$ cat >> .hg/hgrc <<EOF
> [committemplate]
Yuya Nishihara
commit: update test to actually modify template text...
r30723 > changeset.commit = first LINE3
Sean Farley
cmdutil: add special string that ignores rest of text...
r30703 > HG: ------------------------ >8 ------------------------foobar
> second line
> HG: this is customized commit template
> HG: {extramsg}
> HG: ------------------------ >8 ------------------------
> {diff()}
> EOF
$ echo foo >> foo
Yuya Nishihara
commit: update test to actually modify template text...
r30723 $ HGEDITOR="sh $TESTTMP/lowercaseline.sh" hg ci
Sean Farley
cmdutil: add special string that ignores rest of text...
r30703 first line3
HG: ------------------------ >8 ------------------------foobar
second line
HG: this is customized commit template
HG: Leave message empty to abort commit.
HG: ------------------------ >8 ------------------------
diff -r ce648f5f066f foo
--- a/foo Thu Jan 01 00:00:00 1970 +0000
+++ b/foo Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +1,3 @@
foo
foo
+foo
$ hg log -T '{desc}\n' -r .
first line3
second line
Tony Tung
commit: abort when a committemplate is not changed...
r26742 $ cd ..