##// END OF EJS Templates
largefiles: move "updatestandin" invocation to "hg.updaterepo" wrapper...
largefiles: move "updatestandin" invocation to "hg.updaterepo" wrapper Code paths below expect "hg.updaterepo" (or "hg.update" using it) to execute linear merging: - "update" in commands - "postincoming" in commands, used for: - "hg pull --update" - "hg unbundle --update" - "hgsubrepo.get" in subrepo For linear merging with largefiles, standins should be updated according to (possibly dirty) largefiles before "merge.update" invocation to detect conflicts correctly. Before this patch, only the "update" command can execute linear merging correctly, because largefiles extension takes care of only it. This patch moves "updatestandin" invocation from "overrideupdate" ("hg update" wrapper) to "_hgupdaterepo" ("hg.updaterepo" wrapper) to execute linear merging in "hg.updaterepo" correctly. This is also a preparation to centralize the logic of updating largefiles in the working directory into the function wrapping "merge.update" in the subsequent patch.

File last commit:

r22248:75618a22 default
r22287:f3ac9677 default
Show More
test-commit.t
460 lines | 10.0 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
dir/file
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
dir/file
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
dir/file
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
Antonio Zanardo
commit: show active bookmark in commit editor helper text...
r18538 $ hg book currentbookmark
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'
Antonio Zanardo
commit: show active bookmark in commit editor helper text...
r18538 HG: bookmark 'currentbookmark'
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'
HG: bookmark 'currentbookmark'
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}
> {if(currentbookmark,
> "HG: bookmark '{currentbookmark}' is activated\n",
> "HG: no bookmark is activated\n")}{subrepos %
> "HG: subrepo '{subrepo}' is changed\n"}
>
> changeset.commit = HG: this is "commit" template
> HG: {extramsg}
> {if(currentbookmark,
> "HG: bookmark '{currentbookmark}' is activated\n",
> "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}
> {if(currentbookmark,
> "HG: bookmark '{currentbookmark}' is activated\n",
> "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.
HG: bookmark 'currentbookmark' is activated
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
FUJIWARA Katsunori
cmdutil: make commit message shown in text editor customizable by template...
r21924 $ hg bookmark --inactive currentbookmark
$ 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
> # 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
$ cd ..