##// END OF EJS Templates
merge with stable
merge with stable

File last commit:

r38444:1322ae04 stable
r38445:00368bc0 merge default
Show More
test-subrepo.t
1983 lines | 51.0 KiB | text/troff | Tads3Lexer
Martin Geisler
subrepos: abort commit by default if a subrepo is dirty (BC)...
r15321 Let commit recurse into subrepos by default to match pre-2.0 behavior:
$ echo "[ui]" >> $HGRCPATH
$ echo "commitsubrepos = Yes" >> $HGRCPATH
Martin Geisler
tests: unify test-subrepo
r11912 $ hg init t
$ cd t
first revision, no sub
$ echo a > a
$ hg ci -Am0
adding a
add first sub
$ echo s = s > .hgsub
$ hg add .hgsub
$ hg init s
$ echo a > s/a
Martin Geisler
tests: added a short description to issue numbers...
r12399 Issue2232: committing a subrepo without .hgsub
Martin Geisler
tests: unify test-subrepo
r11912
$ hg ci -mbad s
abort: can't commit subrepos without .hgsub
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-subrepo
r11912
Matt Harbison
subrepo: add basic support to hgsubrepo for the files command...
r24413 $ hg -R s add s/a
$ hg files -S
.hgsub
a
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 s/a
Matt Harbison
subrepo: add basic support to hgsubrepo for the files command...
r24413
Martin Geisler
tests: unify test-subrepo
r11912 $ hg -R s ci -Ams0
$ hg sum
parent: 0:f7b1eb17ad24 tip
0
branch: default
commit: 1 added, 1 subrepos
update: (current)
Gilles Moris
summary: move the parents phase marker to commit line (issue4688)...
r25382 phases: 1 draft
Martin Geisler
tests: unify test-subrepo
r11912 $ hg ci -m1
FUJIWARA Katsunori
localrepo: omit ".hgsubstate" also from "added" files...
r20827 test handling .hgsubstate "added" explicitly.
$ hg parents --template '{node}\n{files}\n'
7cf8cfea66e410e8e3336508dfeec07b3192de51
.hgsub .hgsubstate
$ hg rollback -q
$ hg add .hgsubstate
$ hg ci -m1
$ hg parents --template '{node}\n{files}\n'
7cf8cfea66e410e8e3336508dfeec07b3192de51
.hgsub .hgsubstate
Hannes Oldenburg
cmdutil: warnings not issued in remove if subrepopath overlaps...
r29622 Subrepopath which overlaps with filepath, does not change warnings in remove()
$ mkdir snot
$ touch snot/file
$ hg remove -S snot/file
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 not removing snot/file: file is untracked
Hannes Oldenburg
cmdutil: warnings not issued in remove if subrepopath overlaps...
r29622 [1]
Hannes Oldenburg
cmdutil: warnings not issued in cat if subrepopath overlaps...
r29633 $ hg cat snot/filenot
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 snot/filenot: no such file in rev 7cf8cfea66e4
Hannes Oldenburg
cmdutil: warnings not issued in cat if subrepopath overlaps...
r29633 [1]
Hannes Oldenburg
cmdutil: warnings not issued in remove if subrepopath overlaps...
r29622 $ rm -r snot
Angel Ezquerra
tests: add test for fileset 'subrepo' keyword
r16454 Revert subrepo and test subrepo fileset keyword:
Angel Ezquerra
revert: warn that subrepos cannot be reverted...
r15265
$ echo b > s/a
Matt Harbison
revert: display full subrepo output with --dry-run...
r24134 $ hg revert --dry-run "set:subrepo('glob:s*')"
reverting subrepo s
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 reverting s/a
Matt Harbison
revert: display full subrepo output with --dry-run...
r24134 $ cat s/a
b
Angel Ezquerra
tests: add test for fileset 'subrepo' keyword
r16454 $ hg revert "set:subrepo('glob:s*')"
Angel Ezquerra
revert: add support for reverting subrepos without --no-backup and/or --all...
r16430 reverting subrepo s
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 reverting s/a
Matt Harbison
revert: display full subrepo output with --dry-run...
r24134 $ cat s/a
a
Angel Ezquerra
revert: add support for reverting subrepos without --no-backup and/or --all...
r16430 $ rm s/a.orig
Angel Ezquerra
revert: warn that subrepos cannot be reverted...
r15265
Angel Ezquerra
revert: add support for reverting subrepos without --no-backup and/or --all...
r16430 Revert subrepo with no backup. The "reverting s/a" line is gone since
we're really running 'hg update' in the subrepo:
$ echo b > s/a
$ hg revert --no-backup s
reverting subrepo s
Angel Ezquerra
revert: warn that subrepos cannot be reverted...
r15265
Martin Geisler
tests: added a short description to issue numbers...
r12399 Issue2022: update -C
Martin Geisler
tests: unify test-subrepo
r11912
$ echo b > s/a
$ hg sum
parent: 1:7cf8cfea66e4 tip
1
branch: default
commit: 1 subrepos
update: (current)
Gilles Moris
summary: move the parents phase marker to commit line (issue4688)...
r25382 phases: 2 draft
Martin Geisler
tests: unify test-subrepo
r11912 $ hg co -C 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg sum
parent: 1:7cf8cfea66e4 tip
1
branch: default
commit: (clean)
update: (current)
Gilles Moris
summary: move the parents phase marker to commit line (issue4688)...
r25382 phases: 2 draft
Martin Geisler
tests: unify test-subrepo
r11912
Eric Roshan Eisner
cmdutil.bailifchanged: abort for dirty subrepos
r15231 commands that require a clean repo should respect subrepos
$ echo b >> s/a
$ hg backout tip
Matt Harbison
subrepo: make the output references to subrepositories consistent...
r33365 abort: uncommitted changes in subrepository "s"
Eric Roshan Eisner
cmdutil.bailifchanged: abort for dirty subrepos
r15231 [255]
$ hg revert -C -R s s/a
Martin Geisler
tests: unify test-subrepo
r11912 add sub sub
$ echo ss = ss > s/.hgsub
$ hg init s/ss
$ echo a > s/ss/a
$ hg -R s add s/.hgsub
$ hg -R s/ss add s/ss/a
$ hg sum
parent: 1:7cf8cfea66e4 tip
1
branch: default
commit: 1 subrepos
update: (current)
Gilles Moris
summary: move the parents phase marker to commit line (issue4688)...
r25382 phases: 2 draft
Martin Geisler
tests: unify test-subrepo
r11912 $ hg ci -m2
committing subrepository s
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 committing subrepository s/ss
Martin Geisler
tests: unify test-subrepo
r11912 $ hg sum
parent: 2:df30734270ae tip
2
branch: default
commit: (clean)
update: (current)
Gilles Moris
summary: move the parents phase marker to commit line (issue4688)...
r25382 phases: 3 draft
Martin Geisler
tests: unify test-subrepo
r11912
FUJIWARA Katsunori
localrepo: omit ".hgsubstate" also from "added" files...
r20827 test handling .hgsubstate "modified" explicitly.
$ hg parents --template '{node}\n{files}\n'
df30734270ae757feb35e643b7018e818e78a9aa
.hgsubstate
$ hg rollback -q
$ hg status -A .hgsubstate
M .hgsubstate
$ hg ci -m2
$ hg parents --template '{node}\n{files}\n'
df30734270ae757feb35e643b7018e818e78a9aa
.hgsubstate
Patrick Mezard
commit: abort if a subrepo is modified and ui.commitsubrepos=no...
r13411 bump sub rev (and check it is ignored by ui.commitsubrepos)
Martin Geisler
tests: unify test-subrepo
r11912
$ echo b > s/a
$ hg -R s ci -ms1
Patrick Mezard
commit: abort if a subrepo is modified and ui.commitsubrepos=no...
r13411 $ hg --config ui.commitsubrepos=no ci -m3
Martin Geisler
tests: unify test-subrepo
r11912
Patrick Mezard
commit: abort if a subrepo is modified and ui.commitsubrepos=no...
r13411 leave sub dirty (and check ui.commitsubrepos=no aborts the commit)
Martin Geisler
tests: unify test-subrepo
r11912
$ echo c > s/a
Patrick Mezard
commit: abort if a subrepo is modified and ui.commitsubrepos=no...
r13411 $ hg --config ui.commitsubrepos=no ci -m4
Matt Harbison
subrepo: make the output references to subrepositories consistent...
r33365 abort: uncommitted changes in subrepository "s"
Martin Geisler
subrepos: abort commit by default if a subrepo is dirty (BC)...
r15321 (use --subrepos for recursive commit)
Patrick Mezard
commit: abort if a subrepo is modified and ui.commitsubrepos=no...
r13411 [255]
Patrick Mezard
identity: show trailing '+' for dirty subrepos (issue2839)
r17255 $ hg id
f6affe3fbfaa+ tip
$ hg -R s ci -mc
$ hg id
f6affe3fbfaa+ tip
$ echo d > s/a
Martin Geisler
tests: unify test-subrepo
r11912 $ hg ci -m4
committing subrepository s
$ hg tip -R s
Patrick Mezard
identity: show trailing '+' for dirty subrepos (issue2839)
r17255 changeset: 4:02dcf1d70411
Martin Geisler
tests: unify test-subrepo
r11912 tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 4
check caching
$ hg co 0
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ hg debugsub
restore
$ hg co
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg debugsub
path s
source s
Patrick Mezard
identity: show trailing '+' for dirty subrepos (issue2839)
r17255 revision 02dcf1d704118aee3ee306ccfa1910850d5b05ef
Martin Geisler
tests: unify test-subrepo
r11912
new branch for merge tests
$ hg co 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo t = t >> .hgsub
$ hg init t
$ echo t > t/t
$ hg -R t add t
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 adding t/t
Martin Geisler
tests: unify test-subrepo
r11912
5
$ hg ci -m5 # add sub
committing subrepository t
created new head
$ echo t2 > t/t
6
$ hg st -R s
$ hg ci -m6 # change sub
committing subrepository t
$ hg debugsub
path s
source s
revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4
path t
source t
revision 6747d179aa9a688023c4b0cad32e4c92bb7f34ad
$ echo t3 > t/t
7
$ hg ci -m7 # change sub again for conflict test
committing subrepository t
$ hg rm .hgsub
8
$ hg ci -m8 # remove sub
FUJIWARA Katsunori
localrepo: omit ".hgsubstate" also from "added" files...
r20827 test handling .hgsubstate "removed" explicitly.
$ hg parents --template '{node}\n{files}\n'
96615c1dad2dc8e3796d7332c77ce69156f7b78e
.hgsub .hgsubstate
$ hg rollback -q
$ hg remove .hgsubstate
$ hg ci -m8
$ hg parents --template '{node}\n{files}\n'
96615c1dad2dc8e3796d7332c77ce69156f7b78e
.hgsub .hgsubstate
Martin Geisler
tests: unify test-subrepo
r11912 merge tests
$ hg co -C 3
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg merge 5 # test adding
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg debugsub
path s
source s
revision fc627a69481fcbe5f1135069e8a3881c023e4cf5
path t
source t
revision 60ca1237c19474e7a3978b0dc1ca4e6f36d51382
$ hg ci -m9
created new head
$ hg merge 6 --debug # test change
searching for copies back to rev 2
resolving manifests
Siddharth Agarwal
manifestmerge: pass in branchmerge and force separately...
r18605 branchmerge: True, force: False, partial: False
Martin Geisler
merge: make debug output easier to read...
r15625 ancestor: 1f14a2e2d3ec, local: f0d2028bf86d+, remote: 1831e14459c4
Matt Harbison
tests: flag Windows specific lines about background closing as optional
r28318 starting 4 threads for background file closing (?)
Siddharth Agarwal
merge.mergestate: perform all premerges before any merges (BC)...
r26618 .hgsubstate: versions differ -> m (premerge)
Martin Geisler
tests: unify test-subrepo
r11912 subrepo merge f0d2028bf86d+ 1831e14459c4 1f14a2e2d3ec
subrepo t: other changed, get t:6747d179aa9a688023c4b0cad32e4c92bb7f34ad:hg
getting subrepo t
resolving manifests
Siddharth Agarwal
manifestmerge: pass in branchmerge and force separately...
r18605 branchmerge: False, force: False, partial: False
Simon Heimberg
subrepo: only do clean update when overwrite is set (issue3276)...
r17895 ancestor: 60ca1237c194, local: 60ca1237c194+, remote: 6747d179aa9a
Martin Geisler
tests: unify test-subrepo
r11912 t: remote is newer -> g
Bryan O'Sullivan
tests: update test output (will be folded into parent)
r18631 getting t
Martin Geisler
tests: unify test-subrepo
r11912 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg debugsub
path s
source s
revision fc627a69481fcbe5f1135069e8a3881c023e4cf5
path t
source t
revision 6747d179aa9a688023c4b0cad32e4c92bb7f34ad
$ echo conflict > t/t
$ hg ci -m10
committing subrepository t
$ HGMERGE=internal:merge hg merge --debug 7 # test conflict
searching for copies back to rev 2
resolving manifests
Siddharth Agarwal
manifestmerge: pass in branchmerge and force separately...
r18605 branchmerge: True, force: False, partial: False
Martin Geisler
merge: make debug output easier to read...
r15625 ancestor: 1831e14459c4, local: e45c8b14af55+, remote: f94576341bcf
Matt Harbison
tests: flag Windows specific lines about background closing as optional
r28318 starting 4 threads for background file closing (?)
Siddharth Agarwal
merge.mergestate: perform all premerges before any merges (BC)...
r26618 .hgsubstate: versions differ -> m (premerge)
Martin Geisler
tests: unify test-subrepo
r11912 subrepo merge e45c8b14af55+ f94576341bcf 1831e14459c4
Angel Ezquerra
merge: let the user choose to merge, keep local or keep remote subrepo revisions...
r19811 subrepo t: both sides changed
subrepository t diverged (local revision: 20a0db6fbf6c, remote revision: 7af322bc1198)
Simon Farnsworth
merge: use labels in subrepo merge...
r30060 starting 4 threads for background file closing (?)
Simon Farnsworth
merge: add conflict labels to merge command...
r30062 (M)erge, keep (l)ocal [working copy] or keep (r)emote [merge rev]? m
Matt Harbison
subrepo: make the output references to subrepositories consistent...
r33365 merging subrepository "t"
Martin Geisler
tests: unify test-subrepo
r11912 searching for copies back to rev 2
resolving manifests
Siddharth Agarwal
manifestmerge: pass in branchmerge and force separately...
r18605 branchmerge: True, force: False, partial: False
Martin Geisler
merge: make debug output easier to read...
r15625 ancestor: 6747d179aa9a, local: 20a0db6fbf6c+, remote: 7af322bc1198
Mads Kiilerich
merge: change debug logging - test output changes but no real changes...
r21391 preserving t for resolve of t
Matt Harbison
test-subrepo: update output for Windows
r31772 starting 4 threads for background file closing (?)
Siddharth Agarwal
merge.mergestate: perform all premerges before any merges (BC)...
r26618 t: versions differ -> m (premerge)
Siddharth Agarwal
filemerge: add debug output for whether this is a change/delete conflict...
r27161 picked tool ':merge' for t (binary False symlink False changedelete False)
Martin Geisler
tests: unify test-subrepo
r11912 merging t
my t@20a0db6fbf6c+ other t@7af322bc1198 ancestor t@6747d179aa9a
Siddharth Agarwal
merge.mergestate: perform all premerges before any merges (BC)...
r26618 t: versions differ -> m (merge)
Siddharth Agarwal
filemerge: add debug output for whether this is a change/delete conflict...
r27161 picked tool ':merge' for t (binary False symlink False changedelete False)
Siddharth Agarwal
filemerge: break overall filemerge into separate premerge and merge steps...
r26611 my t@20a0db6fbf6c+ other t@7af322bc1198 ancestor t@6747d179aa9a
Siddharth Agarwal
simplemerge: move conflict warning message to filemerge...
r26614 warning: conflicts while merging t! (edit, then use 'hg resolve --mark')
Martin Geisler
tests: unify test-subrepo
r11912 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
Pulkit Goyal
merge: add `--abort` flag which can abort the merge...
r35722 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
Angel Ezquerra
merge: let the user choose to merge, keep local or keep remote subrepo revisions...
r19811 subrepo t: merge with t:7af322bc1198a32402fe903e0b7ebcfc5c9bf8f4:hg
Martin Geisler
tests: unify test-subrepo
r11912 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
should conflict
$ cat t/t
Pierre-Yves David
merge: drop the quotes around commit description...
r21693 <<<<<<< local: 20a0db6fbf6c - test: 10
Martin Geisler
tests: unify test-subrepo
r11912 conflict
=======
t3
Kostia Balytskyi
conflicts: make spacing consistent in conflict markers...
r30460 >>>>>>> other: 7af322bc1198 - test: 7
Martin Geisler
tests: unify test-subrepo
r11912
Martin von Zweigbergk
subrepo: add tests for change/remove conflicts...
r24110 11: remove subrepo t
$ hg co -C 5
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg revert -r 4 .hgsub # remove t
$ hg ci -m11
created new head
$ hg debugsub
path s
source s
revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4
local removed, remote changed, keep changed
$ hg merge 6
Simon Farnsworth
subrepo: move prompts out of the if (issue5505)...
r31516 remote [merge rev] changed subrepository t which local [working copy] removed
Martin von Zweigbergk
subrepo: add tests for change/remove conflicts...
r24110 use (c)hanged version or (d)elete? c
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
BROKEN: should include subrepo t
$ hg debugsub
path s
source s
revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4
$ cat .hgsubstate
e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s
6747d179aa9a688023c4b0cad32e4c92bb7f34ad t
$ hg ci -m 'local removed, remote changed, keep changed'
BROKEN: should include subrepo t
$ hg debugsub
path s
source s
revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4
BROKEN: should include subrepo t
$ cat .hgsubstate
e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s
$ cat t/t
t2
local removed, remote changed, keep removed
$ hg co -C 11
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg merge --config ui.interactive=true 6 <<EOF
> d
> EOF
Simon Farnsworth
subrepo: move prompts out of the if (issue5505)...
r31516 remote [merge rev] changed subrepository t which local [working copy] removed
Martin von Zweigbergk
subrepo: add tests for change/remove conflicts...
r24110 use (c)hanged version or (d)elete? d
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg debugsub
path s
source s
revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4
$ cat .hgsubstate
e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s
$ hg ci -m 'local removed, remote changed, keep removed'
created new head
$ hg debugsub
path s
source s
revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4
$ cat .hgsubstate
e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s
local changed, remote removed, keep changed
$ hg co -C 6
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg merge 11
Simon Farnsworth
subrepo: move prompts out of the if (issue5505)...
r31516 local [working copy] changed subrepository t which remote [merge rev] removed
Martin von Zweigbergk
subrepo: add tests for change/remove conflicts...
r24110 use (c)hanged version or (d)elete? c
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
BROKEN: should include subrepo t
$ hg debugsub
path s
source s
revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4
BROKEN: should include subrepo t
$ cat .hgsubstate
e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s
$ hg ci -m 'local changed, remote removed, keep changed'
created new head
BROKEN: should include subrepo t
$ hg debugsub
path s
source s
revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4
BROKEN: should include subrepo t
$ cat .hgsubstate
e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s
$ cat t/t
t2
local changed, remote removed, keep removed
$ hg co -C 6
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg merge --config ui.interactive=true 11 <<EOF
> d
> EOF
Simon Farnsworth
subrepo: move prompts out of the if (issue5505)...
r31516 local [working copy] changed subrepository t which remote [merge rev] removed
Martin von Zweigbergk
subrepo: add tests for change/remove conflicts...
r24110 use (c)hanged version or (d)elete? d
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg debugsub
path s
source s
revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4
$ cat .hgsubstate
e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s
$ hg ci -m 'local changed, remote removed, keep removed'
created new head
$ hg debugsub
path s
source s
revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4
$ cat .hgsubstate
e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s
clean up to avoid having to fix up the tests below
$ hg co -C 10
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cat >> $HGRCPATH <<EOF
> [extensions]
> strip=
> EOF
$ hg strip -r 11:15
saved backup bundle to $TESTTMP/t/.hg/strip-backup/*-backup.hg (glob)
Martin Geisler
tests: unify test-subrepo
r11912 clone
$ cd ..
$ hg clone t tc
updating to branch default
Simon Heimberg
tests: remove glob lines which unnecessary match / for \ on windows...
r18720 cloning subrepo s from $TESTTMP/t/s
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 cloning subrepo s/ss from $TESTTMP/t/s/ss
Simon Heimberg
tests: remove glob lines which unnecessary match / for \ on windows...
r18720 cloning subrepo t from $TESTTMP/t/t
Martin Geisler
tests: unify test-subrepo
r11912 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd tc
$ hg debugsub
path s
source s
revision fc627a69481fcbe5f1135069e8a3881c023e4cf5
path t
source t
revision 20a0db6fbf6c3d2836e6519a642ae929bfc67c0e
Yuya Nishihara
subrepo: add config option to reject any subrepo operations (SEC)...
r34986 $ cd ..
clone with subrepo disabled (update should fail)
Gregory Szorc
subrepo: use per-type config options to enable subrepos...
r34990 $ hg clone t -U tc2 --config subrepos.allowed=false
$ hg update -R tc2 --config subrepos.allowed=false
abort: subrepos not enabled
Yuya Nishihara
subrepo: add config option to reject any subrepo operations (SEC)...
r34986 (see 'hg help config.subrepos' for details)
[255]
$ ls tc2
a
Gregory Szorc
subrepo: use per-type config options to enable subrepos...
r34990 $ hg clone t tc3 --config subrepos.allowed=false
Yuya Nishihara
subrepo: add config option to reject any subrepo operations (SEC)...
r34986 updating to branch default
Gregory Szorc
subrepo: use per-type config options to enable subrepos...
r34990 abort: subrepos not enabled
Yuya Nishihara
subrepo: add config option to reject any subrepo operations (SEC)...
r34986 (see 'hg help config.subrepos' for details)
[255]
$ ls tc3
a
Martin Geisler
tests: unify test-subrepo
r11912
Gregory Szorc
subrepo: use per-type config options to enable subrepos...
r34990 And again with just the hg type disabled
$ hg clone t -U tc4 --config subrepos.hg:allowed=false
$ hg update -R tc4 --config subrepos.hg:allowed=false
abort: hg subrepos not allowed
Yuya Nishihara
subrepo: extend config option to disable subrepos by type (SEC)...
r34987 (see 'hg help config.subrepos' for details)
[255]
$ ls tc4
a
Gregory Szorc
subrepo: use per-type config options to enable subrepos...
r34990 $ hg clone t tc5 --config subrepos.hg:allowed=false
updating to branch default
abort: hg subrepos not allowed
(see 'hg help config.subrepos' for details)
[255]
$ ls tc5
a
Martin Geisler
tests: unify test-subrepo
r11912 push
Yuya Nishihara
subrepo: add config option to reject any subrepo operations (SEC)...
r34986 $ cd tc
Martin Geisler
tests: unify test-subrepo
r11912 $ echo bah > t/t
$ hg ci -m11
committing subrepository t
$ hg push
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 pushing to $TESTTMP/t
no changes made to subrepo s/ss since last push to $TESTTMP/t/s/ss
Angel Ezquerra
test-subrepo: add tests for subrepo "storeclean" checks...
r18941 no changes made to subrepo s since last push to $TESTTMP/t/s
Simon Heimberg
tests: remove glob lines which unnecessary match / for \ on windows...
r18720 pushing subrepo t to $TESTTMP/t/t
Martin Geisler
tests: unify test-subrepo
r11912 searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
push -f
$ echo bah > s/a
$ hg ci -m12
committing subrepository s
$ hg push
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 pushing to $TESTTMP/t
no changes made to subrepo s/ss since last push to $TESTTMP/t/s/ss
Simon Heimberg
tests: remove glob lines which unnecessary match / for \ on windows...
r18720 pushing subrepo s to $TESTTMP/t/s
Martin Geisler
tests: unify test-subrepo
r11912 searching for changes
Matt Harbison
subrepo: make the output references to subrepositories consistent...
r33365 abort: push creates new remote head 12a213df6fa9! (in subrepository "s")
timeless
discovery: use single quotes in use warning
r29973 (merge or see 'hg help push' for details about pushing new heads)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-subrepo
r11912 $ hg push -f
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 pushing to $TESTTMP/t
pushing subrepo s/ss to $TESTTMP/t/s/ss
Martin Geisler
tests: unify test-subrepo
r11912 searching for changes
no changes found
Simon Heimberg
tests: remove glob lines which unnecessary match / for \ on windows...
r18720 pushing subrepo s to $TESTTMP/t/s
Martin Geisler
tests: unify test-subrepo
r11912 searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
Simon Heimberg
tests: remove glob lines which unnecessary match / for \ on windows...
r18720 pushing subrepo t to $TESTTMP/t/t
Martin Geisler
tests: unify test-subrepo
r11912 searching for changes
no changes found
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
Angel Ezquerra
test-subrepo: add tests for subrepo "storeclean" checks...
r18941 check that unmodified subrepos are not pushed
$ hg clone . ../tcc
updating to branch default
cloning subrepo s from $TESTTMP/tc/s
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 cloning subrepo s/ss from $TESTTMP/tc/s/ss
Angel Ezquerra
test-subrepo: add tests for subrepo "storeclean" checks...
r18941 cloning subrepo t from $TESTTMP/tc/t
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
the subrepos on the new clone have nothing to push to its source
$ hg push -R ../tcc .
pushing to .
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 no changes made to subrepo s/ss since last push to s/ss
Angel Ezquerra
test-subrepo: add tests for subrepo "storeclean" checks...
r18941 no changes made to subrepo s since last push to s
no changes made to subrepo t since last push to t
searching for changes
no changes found
[1]
the subrepos on the source do not have a clean store versus the clone target
because they were never explicitly pushed to the source
$ hg push ../tcc
pushing to ../tcc
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 pushing subrepo s/ss to ../tcc/s/ss
Angel Ezquerra
test-subrepo: add tests for subrepo "storeclean" checks...
r18941 searching for changes
no changes found
pushing subrepo s to ../tcc/s
searching for changes
no changes found
pushing subrepo t to ../tcc/t
searching for changes
no changes found
searching for changes
no changes found
[1]
after push their stores become clean
$ hg push ../tcc
pushing to ../tcc
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 no changes made to subrepo s/ss since last push to ../tcc/s/ss
Angel Ezquerra
test-subrepo: add tests for subrepo "storeclean" checks...
r18941 no changes made to subrepo s since last push to ../tcc/s
no changes made to subrepo t since last push to ../tcc/t
searching for changes
no changes found
[1]
updating a subrepo to a different revision or changing
its working directory does not make its store dirty
$ hg -R s update '.^'
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg push
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 pushing to $TESTTMP/t
no changes made to subrepo s/ss since last push to $TESTTMP/t/s/ss
Angel Ezquerra
test-subrepo: add tests for subrepo "storeclean" checks...
r18941 no changes made to subrepo s since last push to $TESTTMP/t/s
no changes made to subrepo t since last push to $TESTTMP/t/t
searching for changes
no changes found
[1]
$ echo foo >> s/a
$ hg push
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 pushing to $TESTTMP/t
no changes made to subrepo s/ss since last push to $TESTTMP/t/s/ss
Angel Ezquerra
test-subrepo: add tests for subrepo "storeclean" checks...
r18941 no changes made to subrepo s since last push to $TESTTMP/t/s
no changes made to subrepo t since last push to $TESTTMP/t/t
searching for changes
no changes found
[1]
$ hg -R s update -C tip
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
committing into a subrepo makes its store (but not its parent's store) dirty
$ echo foo >> s/ss/a
$ hg -R s/ss commit -m 'test dirty store detection'
Matt Harbison
subrepo: don't pass the outer repo's --rev or --branch to subrepo outgoing()...
r24875
$ hg out -S -r `hg log -r tip -T "{node|short}"`
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 comparing with $TESTTMP/t
Matt Harbison
subrepo: don't pass the outer repo's --rev or --branch to subrepo outgoing()...
r24875 searching for changes
no changes found
comparing with $TESTTMP/t/s
searching for changes
no changes found
comparing with $TESTTMP/t/s/ss
searching for changes
changeset: 1:79ea5566a333
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: test dirty store detection
comparing with $TESTTMP/t/t
searching for changes
no changes found
Angel Ezquerra
test-subrepo: add tests for subrepo "storeclean" checks...
r18941 $ hg push
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 pushing to $TESTTMP/t
pushing subrepo s/ss to $TESTTMP/t/s/ss
Angel Ezquerra
test-subrepo: add tests for subrepo "storeclean" checks...
r18941 searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
no changes made to subrepo s since last push to $TESTTMP/t/s
no changes made to subrepo t since last push to $TESTTMP/t/t
searching for changes
no changes found
[1]
a subrepo store may be clean versus one repo but not versus another
$ hg push
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 pushing to $TESTTMP/t
no changes made to subrepo s/ss since last push to $TESTTMP/t/s/ss
Angel Ezquerra
test-subrepo: add tests for subrepo "storeclean" checks...
r18941 no changes made to subrepo s since last push to $TESTTMP/t/s
no changes made to subrepo t since last push to $TESTTMP/t/t
searching for changes
no changes found
[1]
$ hg push ../tcc
pushing to ../tcc
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 pushing subrepo s/ss to ../tcc/s/ss
Angel Ezquerra
test-subrepo: add tests for subrepo "storeclean" checks...
r18941 searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
no changes made to subrepo s since last push to ../tcc/s
no changes made to subrepo t since last push to ../tcc/t
searching for changes
no changes found
[1]
Martin Geisler
tests: unify test-subrepo
r11912 update
$ cd ../t
$ hg up -C # discard our earlier merge
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Pulkit Goyal
update: show the commit to which we updated in case of multiple heads (BC)...
r32698 updated to "c373c8102e68: 12"
Pierre-Yves David
update: warn about other topological heads on bare update...
r28029 2 other heads for branch "default"
Martin Geisler
tests: unify test-subrepo
r11912 $ echo blah > t/t
$ hg ci -m13
committing subrepository t
Yuya Nishihara
subrepo: fix exception on revert when "all" option is omitted...
r18943 backout calls revert internally with minimal opts, which should not raise
KeyError
Ruslan Sayfutdinov
backout: commit changeset by default (BC)...
r27890 $ hg backout ".^" --no-commit
Yuya Nishihara
subrepo: fix exception on revert when "all" option is omitted...
r18943 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
Pierre-Yves David
backout: add a message after backout that need manual commit...
r20276 changeset c373c8102e68 backed out, don't forget to commit.
Yuya Nishihara
subrepo: fix exception on revert when "all" option is omitted...
r18943
$ hg up -C # discard changes
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Pulkit Goyal
update: show the commit to which we updated in case of multiple heads (BC)...
r32698 updated to "925c17564ef8: 13"
Pierre-Yves David
update: warn about other topological heads on bare update...
r28029 2 other heads for branch "default"
Yuya Nishihara
subrepo: fix exception on revert when "all" option is omitted...
r18943
Martin Geisler
tests: unify test-subrepo
r11912 pull
$ cd ../tc
$ hg pull
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 pulling from $TESTTMP/t
Martin Geisler
tests: unify test-subrepo
r11912 searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets 925c17564ef8
Martin Geisler
tests: unify test-subrepo
r11912 (run 'hg update' to get a working copy)
should pull t
Matt Harbison
subrepo: don't pass the outer repo's --rev or --branch to subrepo incoming()...
r24876 $ hg incoming -S -r `hg log -r tip -T "{node|short}"`
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 comparing with $TESTTMP/t
Matt Harbison
subrepo: don't pass the outer repo's --rev or --branch to subrepo incoming()...
r24876 no changes found
comparing with $TESTTMP/t/s
searching for changes
no changes found
comparing with $TESTTMP/t/s/ss
searching for changes
no changes found
comparing with $TESTTMP/t/t
searching for changes
changeset: 5:52c0adc0515a
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: 13
Martin Geisler
tests: unify test-subrepo
r11912 $ hg up
Simon Heimberg
tests: remove glob lines which unnecessary match / for \ on windows...
r18720 pulling subrepo t from $TESTTMP/t/t
Martin Geisler
tests: unify test-subrepo
r11912 searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets 52c0adc0515a
Angel Ezquerra
test-subrepo: add tests for subrepo "storeclean" checks...
r18941 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
Pulkit Goyal
update: show the commit to which we updated in case of multiple heads (BC)...
r32698 updated to "925c17564ef8: 13"
Pierre-Yves David
update: warn about other topological heads on bare update...
r28029 2 other heads for branch "default"
Martin Geisler
tests: unify test-subrepo
r11912 $ cat t/t
blah
bogus subrepo path aborts
$ echo 'bogus=[boguspath' >> .hgsub
$ hg ci -m 'bogus subrepo path'
Matt Harbison
subrepo: make the output references to subrepositories consistent...
r33365 abort: missing ] in subrepository source
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-subrepo
r11912
Martin Geisler
tests: added a short description to issue numbers...
r12399 Issue1986: merge aborts when trying to merge a subrepo that
shouldn't need merging
Martin Geisler
tests: unify test-subrepo
r11912
# subrepo layout
#
# o 5 br
# /|
# o | 4 default
# | |
# | o 3 br
# |/|
# o | 2 default
# | |
# | o 1 br
# |/
# o 0 default
$ cd ..
$ rm -rf sub
$ hg init main
$ cd main
$ hg init s
$ cd s
$ echo a > a
$ hg ci -Am1
adding a
$ hg branch br
marked working directory as branch br
Matt Mackall
branch: warn on branching
r15615 (branches are permanent and global, did you want a bookmark?)
Martin Geisler
tests: unify test-subrepo
r11912 $ echo a >> a
$ hg ci -m1
$ hg up default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo b > b
$ hg ci -Am1
adding b
$ hg up br
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg merge tip
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg ci -m1
$ hg up 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo c > c
$ hg ci -Am1
adding c
$ hg up 3
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg merge 4
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg ci -m1
# main repo layout:
#
# * <-- try to merge default into br again
# .`|
# . o 5 br --> substate = 5
# . |
# o | 4 default --> substate = 4
# | |
# | o 3 br --> substate = 2
# |/|
# o | 2 default --> substate = 2
# | |
# | o 1 br --> substate = 3
# |/
# o 0 default --> substate = 2
$ cd ..
$ echo 's = s' > .hgsub
$ hg -R s up 2
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg ci -Am1
adding .hgsub
$ hg branch br
marked working directory as branch br
Matt Mackall
branch: warn on branching
r15615 (branches are permanent and global, did you want a bookmark?)
Martin Geisler
tests: unify test-subrepo
r11912 $ echo b > b
$ hg -R s up 3
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg ci -Am1
adding b
$ hg up default
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo c > c
$ hg ci -Am1
adding c
$ hg up 1
2 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg merge 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg ci -m1
$ hg up 2
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg -R s up 4
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo d > d
$ hg ci -Am1
adding d
$ hg up 3
2 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg -R s up 5
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo e > e
$ hg ci -Am1
adding e
$ hg up 5
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg merge 4 # try to merge default into br again
Angel Ezquerra
merge: let the user choose to merge, keep local or keep remote subrepo revisions...
r19811 subrepository s diverged (local revision: f8f13b33206e, remote revision: a3f9062a4f88)
Simon Farnsworth
merge: add conflict labels to merge command...
r30062 (M)erge, keep (l)ocal [working copy] or keep (r)emote [merge rev]? m
Martin Geisler
tests: unify test-subrepo
r11912 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ cd ..
test subrepo delete from .hgsubstate
$ hg init testdelete
$ mkdir testdelete/nested testdelete/nested2
$ hg init testdelete/nested
$ hg init testdelete/nested2
$ echo test > testdelete/nested/foo
$ echo test > testdelete/nested2/foo
$ hg -R testdelete/nested add
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 adding testdelete/nested/foo
Martin Geisler
tests: unify test-subrepo
r11912 $ hg -R testdelete/nested2 add
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 adding testdelete/nested2/foo
Martin Geisler
tests: unify test-subrepo
r11912 $ hg -R testdelete/nested ci -m test
$ hg -R testdelete/nested2 ci -m test
$ echo nested = nested > testdelete/.hgsub
$ echo nested2 = nested2 >> testdelete/.hgsub
$ hg -R testdelete add
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 adding testdelete/.hgsub
Martin Geisler
tests: unify test-subrepo
r11912 $ hg -R testdelete ci -m "nested 1 & 2 added"
$ echo nested = nested > testdelete/.hgsub
$ hg -R testdelete ci -m "nested 2 deleted"
$ cat testdelete/.hgsubstate
bdf5c9a3103743d900b12ae0db3ffdcfd7b0d878 nested
$ hg -R testdelete remove testdelete/.hgsub
$ hg -R testdelete ci -m ".hgsub deleted"
$ cat testdelete/.hgsubstate
Matt Mackall
subrepo: be more careful with deletions of .hgsub and .hgsubstate (issue2844)...
r14536 bdf5c9a3103743d900b12ae0db3ffdcfd7b0d878 nested
Martin Geisler
tests: unify test-subrepo
r11912
test repository cloning
$ mkdir mercurial mercurial2
$ hg init nested_absolute
$ echo test > nested_absolute/foo
$ hg -R nested_absolute add
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 adding nested_absolute/foo
Martin Geisler
tests: unify test-subrepo
r11912 $ hg -R nested_absolute ci -mtest
$ cd mercurial
$ hg init nested_relative
$ echo test2 > nested_relative/foo2
$ hg -R nested_relative add
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 adding nested_relative/foo2
Martin Geisler
tests: unify test-subrepo
r11912 $ hg -R nested_relative ci -mtest2
$ hg init main
$ echo "nested_relative = ../nested_relative" > main/.hgsub
$ echo "nested_absolute = `pwd`/nested_absolute" >> main/.hgsub
$ hg -R main add
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 adding main/.hgsub
Martin Geisler
tests: unify test-subrepo
r11912 $ hg -R main ci -m "add subrepos"
$ cd ..
$ hg clone mercurial/main mercurial2/main
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cat mercurial2/main/nested_absolute/.hg/hgrc \
> mercurial2/main/nested_relative/.hg/hgrc
[paths]
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 default = $TESTTMP/mercurial/nested_absolute
Martin Geisler
tests: unify test-subrepo
r11912 [paths]
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 default = $TESTTMP/mercurial/nested_relative
Martin Geisler
tests: unify test-subrepo
r11912 $ rm -rf mercurial mercurial2
Martin Geisler
tests: added a short description to issue numbers...
r12399 Issue1977: multirepo push should fail if subrepo push fails
Martin Geisler
tests: unify test-subrepo
r11912
$ hg init repo
$ hg init repo/s
$ echo a > repo/s/a
$ hg -R repo/s ci -Am0
adding a
$ echo s = s > repo/.hgsub
$ hg -R repo ci -Am1
adding .hgsub
$ hg clone repo repo2
updating to branch default
Simon Heimberg
tests: remove glob lines which unnecessary match / for \ on windows...
r18720 cloning subrepo s from $TESTTMP/repo/s
Martin Geisler
tests: unify test-subrepo
r11912 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -q -R repo2 pull -u
$ echo 1 > repo2/s/a
$ hg -R repo2/s ci -m2
$ hg -q -R repo2/s push
$ hg -R repo2/s up -C 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Simon Heimberg
subrepo: only do clean update when overwrite is set (issue3276)...
r17895 $ echo 2 > repo2/s/b
$ hg -R repo2/s ci -m3 -A
adding b
Martin Geisler
tests: unify test-subrepo
r11912 created new head
$ hg -R repo2 ci -m3
$ hg -q -R repo2 push
Matt Harbison
subrepo: make the output references to subrepositories consistent...
r33365 abort: push creates new remote head cc505f09a8b2! (in subrepository "s")
timeless
discovery: use single quotes in use warning
r29973 (merge or see 'hg help push' for details about pushing new heads)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-subrepo
r11912 $ hg -R repo update
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
Simon Heimberg
subrepo: only do clean update when overwrite is set (issue3276)...
r17895
test if untracked file is not overwritten
FUJIWARA Katsunori
context: write dirstate out explicitly after marking files as clean...
r25753 (this also tests that updated .hgsubstate is treated as "modified",
when 'merge.update()' is aborted before 'merge.recordupdates()', even
if none of mode, size and timestamp of it isn't changed on the
filesystem (see also issue4583))
Simon Heimberg
subrepo: only do clean update when overwrite is set (issue3276)...
r17895 $ echo issue3276_ok > repo/s/b
$ hg -R repo2 push -f -q
FUJIWARA Katsunori
merge: mark .hgsubstate as possibly dirty before submerge for consistency...
r23971 $ touch -t 200001010000 repo/.hgsubstate
FUJIWARA Katsunori
context: write dirstate out explicitly after marking files as clean...
r25753
$ cat >> repo/.hg/hgrc <<EOF
> [fakedirstatewritetime]
> # emulate invoking dirstate.write() via repo.status()
> # at 2000-01-01 00:00
> fakenow = 200001010000
>
> [extensions]
> fakedirstatewritetime = $TESTDIR/fakedirstatewritetime.py
> EOF
Simon Heimberg
subrepo: only do clean update when overwrite is set (issue3276)...
r17895 $ hg -R repo update
b: untracked file differs
Matt Harbison
subrepo: make the output references to subrepositories consistent...
r33365 abort: untracked files in working directory differ from files in requested revision (in subrepository "s")
Simon Heimberg
subrepo: only do clean update when overwrite is set (issue3276)...
r17895 [255]
FUJIWARA Katsunori
context: write dirstate out explicitly after marking files as clean...
r25753 $ cat >> repo/.hg/hgrc <<EOF
> [extensions]
> fakedirstatewritetime = !
> EOF
Simon Heimberg
subrepo: only do clean update when overwrite is set (issue3276)...
r17895
$ cat repo/s/b
issue3276_ok
$ rm repo/s/b
FUJIWARA Katsunori
merge: mark .hgsubstate as possibly dirty before submerge for consistency...
r23971 $ touch -t 200001010000 repo/.hgsubstate
Simon Heimberg
subrepo: only do clean update when overwrite is set (issue3276)...
r17895 $ hg -R repo revert --all
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 reverting repo/.hgsubstate
Simon Heimberg
subrepo: only do clean update when overwrite is set (issue3276)...
r17895 reverting subrepo s
$ hg -R repo update
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cat repo/s/b
2
Martin Geisler
tests: unify test-subrepo
r11912 $ rm -rf repo2 repo
Mads Kiilerich
subrepo: abort instead of pushing/pulling to the repo itself...
r12753
Issue1852 subrepos with relative paths always push/pull relative to default
Prepare a repo with subrepo
$ hg init issue1852a
$ cd issue1852a
$ hg init sub/repo
$ echo test > sub/repo/foo
$ hg -R sub/repo add sub/repo/foo
$ echo sub/repo = sub/repo > .hgsub
$ hg add .hgsub
$ hg ci -mtest
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 committing subrepository sub/repo
Mads Kiilerich
subrepo: abort instead of pushing/pulling to the repo itself...
r12753 $ echo test >> sub/repo/foo
$ hg ci -mtest
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 committing subrepository sub/repo
Matt Harbison
cat: support cat with explicit paths in subrepos...
r21041 $ hg cat sub/repo/foo
test
test
Matt Harbison
tests: adjust recent output changes for Windows
r32678 $ hg cat sub/repo/foo -Tjson | sed 's|\\\\|/|g'
Yuya Nishihara
cat: add formatter support...
r32578 [
{
"abspath": "foo",
"data": "test\ntest\n",
Matt Harbison
tests: adjust recent output changes for Windows
r32678 "path": "sub/repo/foo"
Yuya Nishihara
cat: add formatter support...
r32578 }
]
Yuya Nishihara
cat: record the current behavior of wildcard matches in subrepos...
r35166
non-exact match:
$ hg cat -T '{path}\n' 'glob:**'
.hgsub
.hgsubstate
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 sub/repo/foo
Yuya Nishihara
cat: record the current behavior of wildcard matches in subrepos...
r35166 $ hg cat -T '{path}\n' 're:^sub'
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 sub/repo/foo
Yuya Nishihara
cat: record the current behavior of wildcard matches in subrepos...
r35166
missing subrepos in working directory:
Matt Harbison
cat: support cat with explicit paths in subrepos...
r21041 $ mkdir -p tmp/sub/repo
$ hg cat -r 0 --output tmp/%p_p sub/repo/foo
$ cat tmp/sub/repo/foo_p
test
$ mv sub/repo sub_
$ hg cat sub/repo/baz
skipping missing subrepository: sub/repo
[1]
$ rm -rf sub/repo
$ mv sub_ sub/repo
Mads Kiilerich
subrepo: abort instead of pushing/pulling to the repo itself...
r12753 $ cd ..
Create repo without default path, pull top repo, and see what happens on update
$ hg init issue1852b
$ hg -R issue1852b pull issue1852a
pulling from issue1852a
requesting all changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 3 changes to 2 files
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets 19487b456929:be5eb94e7215
Mads Kiilerich
subrepo: abort instead of pushing/pulling to the repo itself...
r12753 (run 'hg update' to get a working copy)
$ hg -R issue1852b update
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 abort: default path for subrepository not found (in subrepository "sub/repo")
Mads Kiilerich
subrepo: abort instead of pushing/pulling to the repo itself...
r12753 [255]
Matt Harbison
ui: add support for fully printing chained exception stacks in ui.traceback()...
r18965 Ensure a full traceback, not just the SubrepoAbort part
Pierre-Yves David
error: get Abort from 'error' instead of 'util'...
r26587 $ hg -R issue1852b update --traceback 2>&1 | grep 'raise error\.Abort'
raise error.Abort(_("default path for subrepository not found"))
Matt Harbison
ui: add support for fully printing chained exception stacks in ui.traceback()...
r18965
Mads Kiilerich
subrepo: abort instead of pushing/pulling to the repo itself...
r12753 Pull -u now doesn't help
$ hg -R issue1852b pull -u issue1852a
pulling from issue1852a
searching for changes
no changes found
Try the same, but with pull -u
$ hg init issue1852c
$ hg -R issue1852c pull -r0 -u issue1852a
pulling from issue1852a
adding changesets
adding manifests
adding file changes
added 1 changesets with 2 changes to 2 files
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets 19487b456929
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 cloning subrepo sub/repo from issue1852a/sub/repo
Mads Kiilerich
subrepo: propagate non-default pull/push path to relative subrepos (issue1852)
r12852 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Mads Kiilerich
subrepo: abort instead of pushing/pulling to the repo itself...
r12753
Try to push from the other side
Mads Kiilerich
subrepo: propagate non-default pull/push path to relative subrepos (issue1852)
r12852 $ hg -R issue1852a push `pwd`/issue1852c
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 pushing to $TESTTMP/issue1852c
pushing subrepo sub/repo to $TESTTMP/issue1852c/sub/repo
Mads Kiilerich
subrepo: propagate non-default pull/push path to relative subrepos (issue1852)
r12852 searching for changes
no changes found
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
Oleg Stepanov
subrepo: do not report known files inside repositories as unknown
r13233
Martin Geisler
subrepo: respect non-default path for incoming/outgoing...
r14360 Incoming and outgoing should not use the default path:
$ hg clone -q issue1852a issue1852d
$ hg -R issue1852d outgoing --subrepos issue1852c
comparing with issue1852c
searching for changes
no changes found
comparing with issue1852c/sub/repo
searching for changes
no changes found
[1]
$ hg -R issue1852d incoming --subrepos issue1852c
comparing with issue1852c
searching for changes
no changes found
comparing with issue1852c/sub/repo
searching for changes
no changes found
[1]
Matt Harbison
subrepo: don't write .hgsubstate lines with empty subrepo state (issue4622)...
r24858 Check that merge of a new subrepo doesn't write the uncommitted state to
.hgsubstate (issue4622)
$ hg init issue1852a/addedsub
$ echo zzz > issue1852a/addedsub/zz.txt
$ hg -R issue1852a/addedsub ci -Aqm "initial ZZ"
$ hg clone issue1852a/addedsub issue1852d/addedsub
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo def > issue1852a/sub/repo/foo
$ hg -R issue1852a ci -SAm 'tweaked subrepo'
adding tmp/sub/repo/foo_p
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 committing subrepository sub/repo
Matt Harbison
subrepo: don't write .hgsubstate lines with empty subrepo state (issue4622)...
r24858
$ echo 'addedsub = addedsub' >> issue1852d/.hgsub
$ echo xyz > issue1852d/sub/repo/foo
$ hg -R issue1852d pull -u
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 pulling from $TESTTMP/issue1852a
Matt Harbison
subrepo: don't write .hgsubstate lines with empty subrepo state (issue4622)...
r24858 searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 2 changes to 2 files
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets c82b79fdcc5b
Matt Harbison
subrepo: don't write .hgsubstate lines with empty subrepo state (issue4622)...
r24858 subrepository sub/repo diverged (local revision: f42d5c7504a8, remote revision: 46cd4aac504c)
Simon Farnsworth
merge: use labels in subrepo merge...
r30060 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 pulling subrepo sub/repo from $TESTTMP/issue1852a/sub/repo
Matt Harbison
subrepo: don't write .hgsubstate lines with empty subrepo state (issue4622)...
r24858 searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets 46cd4aac504c
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 subrepository sources for sub/repo differ
Matt Harbison
subrepo: don't write .hgsubstate lines with empty subrepo state (issue4622)...
r24858 use (l)ocal source (f42d5c7504a8) or (r)emote source (46cd4aac504c)? l
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cat issue1852d/.hgsubstate
f42d5c7504a811dda50f5cf3e5e16c3330b87172 sub/repo
Oleg Stepanov
subrepo: do not report known files inside repositories as unknown
r13233 Check status of files when none of them belong to the first
subrepository:
$ hg init subrepo-status
$ cd subrepo-status
$ hg init subrepo-1
$ hg init subrepo-2
$ cd subrepo-2
$ touch file
$ hg add file
$ cd ..
$ echo subrepo-1 = subrepo-1 > .hgsub
$ echo subrepo-2 = subrepo-2 >> .hgsub
$ hg add .hgsub
$ hg ci -m 'Added subrepos'
committing subrepository subrepo-2
$ hg st subrepo-2/file
Erik Zielke
subrepo: make update -C clean the working directory for svn subrepos...
r13322
simon@laptop-tosh
share: always set default path to work with subrepos (issue3518)...
r17938 Check that share works with subrepo
$ hg --config extensions.share= share . ../shared
updating working directory
Matt Harbison
subrepo: share instead of clone if the parent repo is shared (issue5675) (BC)...
r34816 sharing subrepo subrepo-1 from $TESTTMP/subrepo-status/subrepo-1
sharing subrepo subrepo-2 from $TESTTMP/subrepo-status/subrepo-2
simon@laptop-tosh
share: always set default path to work with subrepos (issue3518)...
r17938 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Matt Harbison
subrepo: share instead of clone if the parent repo is shared (issue5675) (BC)...
r34816 $ find ../shared/* | sort
../shared/subrepo-1
../shared/subrepo-1/.hg
../shared/subrepo-1/.hg/cache
../shared/subrepo-1/.hg/cache/storehash
../shared/subrepo-1/.hg/cache/storehash/* (glob)
../shared/subrepo-1/.hg/hgrc
../shared/subrepo-1/.hg/requires
../shared/subrepo-1/.hg/sharedpath
../shared/subrepo-2
../shared/subrepo-2/.hg
../shared/subrepo-2/.hg/branch
../shared/subrepo-2/.hg/cache
../shared/subrepo-2/.hg/cache/checkisexec (execbit !)
../shared/subrepo-2/.hg/cache/checklink (symlink !)
../shared/subrepo-2/.hg/cache/checklink-target (symlink !)
../shared/subrepo-2/.hg/cache/storehash
../shared/subrepo-2/.hg/cache/storehash/* (glob)
../shared/subrepo-2/.hg/dirstate
../shared/subrepo-2/.hg/hgrc
../shared/subrepo-2/.hg/requires
../shared/subrepo-2/.hg/sharedpath
../shared/subrepo-2/file
Matt Harbison
subrepo: use sharepath if available when locating the source repo...
r18510 $ hg -R ../shared in
Matt Harbison
share: backout fd903f89e42b, except the test...
r18511 abort: repository default not found!
[255]
Matt Harbison
subrepo: use sharepath if available when locating the source repo...
r18510 $ hg -R ../shared/subrepo-2 showconfig paths
paths.default=$TESTTMP/subrepo-status/subrepo-2
$ hg -R ../shared/subrepo-1 sum --remote
parent: -1:000000000000 tip (empty repository)
branch: default
commit: (clean)
update: (current)
remote: (synced)
simon@laptop-tosh
share: always set default path to work with subrepos (issue3518)...
r17938
Erik Zielke
subrepo: make update -C clean the working directory for svn subrepos...
r13322 Check hg update --clean
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 $ cd $TESTTMP/t
Erik Zielke
subrepo: make update -C clean the working directory for svn subrepos...
r13322 $ rm -r t/t.orig
$ hg status -S --all
C .hgsub
C .hgsubstate
C a
C s/.hgsub
C s/.hgsubstate
C s/a
C s/ss/a
C t/t
$ echo c1 > s/a
$ cd s
$ echo c1 > b
$ echo c1 > c
$ hg add b
$ cd ..
$ hg status -S
M s/a
A s/b
? s/c
$ hg update -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Pulkit Goyal
update: show the commit to which we updated in case of multiple heads (BC)...
r32698 updated to "925c17564ef8: 13"
Pierre-Yves David
update: warn about other topological heads on bare update...
r28029 2 other heads for branch "default"
Erik Zielke
subrepo: make update -C clean the working directory for svn subrepos...
r13322 $ hg status -S
? s/b
? s/c
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417
Sticky subrepositories, no changes
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 $ cd $TESTTMP/t
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 $ hg id
925c17564ef8 tip
$ hg -R s id
12a213df6fa9 tip
Mads Kiilerich
check-code: fix check for trailing whitespace on sh command lines...
r17345 $ hg -R t id
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 52c0adc0515a tip
$ hg update 11
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id
365661e5936a
$ hg -R s id
fc627a69481f
Mads Kiilerich
check-code: fix check for trailing whitespace on sh command lines...
r17345 $ hg -R t id
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 e95bcfa18a35
Mads Kiilerich
spelling: fixes from spell checker
r21024 Sticky subrepositories, file changes
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 $ touch s/f1
$ touch t/f1
$ hg add -S s/f1
$ hg add -S t/f1
$ hg id
Patrick Mezard
identity: show trailing '+' for dirty subrepos (issue2839)
r17255 365661e5936a+
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 $ hg -R s id
fc627a69481f+
Mads Kiilerich
check-code: fix check for trailing whitespace on sh command lines...
r17345 $ hg -R t id
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 e95bcfa18a35+
$ hg update tip
Angel Ezquerra
merge: let the user choose to merge, keep local or keep remote subrepo revisions...
r19811 subrepository s diverged (local revision: fc627a69481f, remote revision: 12a213df6fa9)
Simon Farnsworth
merge: use labels in subrepo merge...
r30060 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 subrepository sources for s differ
Mads Kiilerich
subrepo: remove superfluous newline from subrepo prompt
r22590 use (l)ocal source (fc627a69481f) or (r)emote source (12a213df6fa9)? l
Angel Ezquerra
merge: let the user choose to merge, keep local or keep remote subrepo revisions...
r19811 subrepository t diverged (local revision: e95bcfa18a35, remote revision: 52c0adc0515a)
Simon Farnsworth
merge: use labels in subrepo merge...
r30060 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 subrepository sources for t differ
Mads Kiilerich
subrepo: remove superfluous newline from subrepo prompt
r22590 use (l)ocal source (e95bcfa18a35) or (r)emote source (52c0adc0515a)? l
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id
925c17564ef8+ tip
$ hg -R s id
fc627a69481f+
Mads Kiilerich
check-code: fix check for trailing whitespace on sh command lines...
r17345 $ hg -R t id
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 e95bcfa18a35+
$ hg update --clean tip
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Sticky subrepository, revision updates
$ hg id
925c17564ef8 tip
$ hg -R s id
12a213df6fa9 tip
Mads Kiilerich
check-code: fix check for trailing whitespace on sh command lines...
r17345 $ hg -R t id
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 52c0adc0515a tip
$ cd s
$ hg update -r -2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ../t
$ hg update -r 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ..
$ hg update 10
Angel Ezquerra
merge: let the user choose to merge, keep local or keep remote subrepo revisions...
r19811 subrepository s diverged (local revision: 12a213df6fa9, remote revision: fc627a69481f)
Simon Farnsworth
merge: use labels in subrepo merge...
r30060 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
Angel Ezquerra
merge: let the user choose to merge, keep local or keep remote subrepo revisions...
r19811 subrepository t diverged (local revision: 52c0adc0515a, remote revision: 20a0db6fbf6c)
Simon Farnsworth
merge: use labels in subrepo merge...
r30060 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 subrepository sources for t differ (in checked out version)
Mads Kiilerich
subrepo: remove superfluous newline from subrepo prompt
r22590 use (l)ocal source (7af322bc1198) or (r)emote source (20a0db6fbf6c)? l
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id
e45c8b14af55+
$ hg -R s id
Patrick Mezard
identity: show trailing '+' for dirty subrepos (issue2839)
r17255 02dcf1d70411
Mads Kiilerich
check-code: fix check for trailing whitespace on sh command lines...
r17345 $ hg -R t id
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 7af322bc1198
Sticky subrepository, file changes and revision updates
$ touch s/f1
$ touch t/f1
$ hg add -S s/f1
$ hg add -S t/f1
$ hg id
e45c8b14af55+
$ hg -R s id
Patrick Mezard
identity: show trailing '+' for dirty subrepos (issue2839)
r17255 02dcf1d70411+
Mads Kiilerich
check-code: fix check for trailing whitespace on sh command lines...
r17345 $ hg -R t id
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 7af322bc1198+
$ hg update tip
Angel Ezquerra
merge: let the user choose to merge, keep local or keep remote subrepo revisions...
r19811 subrepository s diverged (local revision: 12a213df6fa9, remote revision: 12a213df6fa9)
Simon Farnsworth
merge: use labels in subrepo merge...
r30060 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 subrepository sources for s differ
Mads Kiilerich
subrepo: remove superfluous newline from subrepo prompt
r22590 use (l)ocal source (02dcf1d70411) or (r)emote source (12a213df6fa9)? l
Angel Ezquerra
merge: let the user choose to merge, keep local or keep remote subrepo revisions...
r19811 subrepository t diverged (local revision: 52c0adc0515a, remote revision: 52c0adc0515a)
Simon Farnsworth
merge: use labels in subrepo merge...
r30060 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 subrepository sources for t differ
Mads Kiilerich
subrepo: remove superfluous newline from subrepo prompt
r22590 use (l)ocal source (7af322bc1198) or (r)emote source (52c0adc0515a)? l
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id
Patrick Mezard
identity: show trailing '+' for dirty subrepos (issue2839)
r17255 925c17564ef8+ tip
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 $ hg -R s id
Patrick Mezard
identity: show trailing '+' for dirty subrepos (issue2839)
r17255 02dcf1d70411+
Mads Kiilerich
check-code: fix check for trailing whitespace on sh command lines...
r17345 $ hg -R t id
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 7af322bc1198+
Sticky repository, update --clean
$ hg update --clean tip
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id
925c17564ef8 tip
$ hg -R s id
12a213df6fa9 tip
Mads Kiilerich
check-code: fix check for trailing whitespace on sh command lines...
r17345 $ hg -R t id
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 52c0adc0515a tip
Test subrepo already at intended revision:
$ cd s
$ hg update fc627a69481f
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ..
$ hg update 11
Angel Ezquerra
merge: let the user choose to merge, keep local or keep remote subrepo revisions...
r19811 subrepository s diverged (local revision: 12a213df6fa9, remote revision: fc627a69481f)
Simon Farnsworth
merge: use labels in subrepo merge...
r30060 (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id -n
11+
$ hg -R s id
fc627a69481f
Mads Kiilerich
check-code: fix check for trailing whitespace on sh command lines...
r17345 $ hg -R t id
Erik Zielke
subrepos: prompt on conflicts on update with dirty subrepos...
r13417 e95bcfa18a35
Matt Mackall
subrepo: be more careful with deletions of .hgsub and .hgsubstate (issue2844)...
r14536
Test that removing .hgsubstate doesn't break anything:
$ hg rm -f .hgsubstate
$ hg ci -mrm
Matt Mackall
subrepo: rewrite handling of subrepo state at commit (issue2403)...
r16073 nothing changed
[1]
Matt Mackall
subrepo: be more careful with deletions of .hgsub and .hgsubstate (issue2844)...
r14536 $ hg log -vr tip
Matt Mackall
subrepo: rewrite handling of subrepo state at commit (issue2403)...
r16073 changeset: 13:925c17564ef8
Matt Mackall
subrepo: be more careful with deletions of .hgsub and .hgsubstate (issue2844)...
r14536 tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
Matt Mackall
subrepo: rewrite handling of subrepo state at commit (issue2403)...
r16073 files: .hgsubstate
Matt Mackall
subrepo: be more careful with deletions of .hgsub and .hgsubstate (issue2844)...
r14536 description:
Matt Mackall
subrepo: rewrite handling of subrepo state at commit (issue2403)...
r16073 13
Matt Mackall
subrepo: be more careful with deletions of .hgsub and .hgsubstate (issue2844)...
r14536
Test that removing .hgsub removes .hgsubstate:
$ hg rm .hgsub
$ hg ci -mrm2
Matt Mackall
subrepo: rewrite handling of subrepo state at commit (issue2403)...
r16073 created new head
Matt Mackall
subrepo: be more careful with deletions of .hgsub and .hgsubstate (issue2844)...
r14536 $ hg log -vr tip
Matt Mackall
subrepo: rewrite handling of subrepo state at commit (issue2403)...
r16073 changeset: 14:2400bccd50af
Matt Mackall
subrepo: be more careful with deletions of .hgsub and .hgsubstate (issue2844)...
r14536 tag: tip
Matt Mackall
subrepo: rewrite handling of subrepo state at commit (issue2403)...
r16073 parent: 11:365661e5936a
Matt Mackall
subrepo: be more careful with deletions of .hgsub and .hgsubstate (issue2844)...
r14536 user: test
date: Thu Jan 01 00:00:00 1970 +0000
files: .hgsub .hgsubstate
description:
rm2
Martin Geisler
test-subrepo: test for Issue3153
r15635 Test issue3153: diff -S with deleted subrepos
$ hg diff --nodates -S -c .
Matt Mackall
subrepo: rewrite handling of subrepo state at commit (issue2403)...
r16073 diff -r 365661e5936a -r 2400bccd50af .hgsub
Martin Geisler
test-subrepo: test for Issue3153
r15635 --- a/.hgsub
+++ /dev/null
@@ -1,2 +0,0 @@
-s = s
-t = t
Matt Mackall
subrepo: rewrite handling of subrepo state at commit (issue2403)...
r16073 diff -r 365661e5936a -r 2400bccd50af .hgsubstate
Martin Geisler
test-subrepo: test for Issue3153
r15635 --- a/.hgsubstate
+++ /dev/null
@@ -1,2 +0,0 @@
-fc627a69481fcbe5f1135069e8a3881c023e4cf5 s
-e95bcfa18a358dc4936da981ebf4147b4cad1362 t
Martin Geisler
merge with stable
r15636
David M. Carr
tests: add test for add of explicit path in subrepo...
r15409 Test behavior of add for explicit path in subrepo:
$ cd ..
David M. Carr
tests: add test for behavior of forget for explicit path in subrepo...
r15473 $ hg init explicit
$ cd explicit
David M. Carr
tests: add test for add of explicit path in subrepo...
r15409 $ echo s = s > .hgsub
$ hg add .hgsub
$ hg init s
$ hg ci -m0
David M. Carr
add: support adding explicit files in subrepos...
r15410 Adding with an explicit path in a subrepo adds the file
David M. Carr
tests: add test for add of explicit path in subrepo...
r15409 $ echo c1 > f1
$ echo c2 > s/f2
$ hg st -S
? f1
? s/f2
$ hg add s/f2
$ hg st -S
David M. Carr
add: support adding explicit files in subrepos...
r15410 A s/f2
David M. Carr
tests: add test for add of explicit path in subrepo...
r15409 ? f1
David M. Carr
add: support adding explicit files in subrepos...
r15410 $ hg ci -R s -m0
David M. Carr
tests: add test for add of explicit path in subrepo...
r15409 $ hg ci -Am1
adding f1
David M. Carr
add: support adding explicit files in subrepos...
r15410 Adding with an explicit path in a subrepo with -S has the same behavior
David M. Carr
tests: add test for add of explicit path in subrepo...
r15409 $ echo c3 > f3
$ echo c4 > s/f4
$ hg st -S
? f3
? s/f4
$ hg add -S s/f4
$ hg st -S
A s/f4
? f3
$ hg ci -R s -m1
$ hg ci -Ama2
adding f3
Adding without a path or pattern silently ignores subrepos
$ echo c5 > f5
$ echo c6 > s/f6
$ echo c7 > s/f7
$ hg st -S
? f5
? s/f6
? s/f7
$ hg add
adding f5
$ hg st -S
A f5
? s/f6
? s/f7
$ hg ci -R s -Am2
adding f6
adding f7
$ hg ci -m3
Adding without a path or pattern with -S also adds files in subrepos
$ echo c8 > f8
$ echo c9 > s/f9
$ echo c10 > s/f10
$ hg st -S
? f8
? s/f10
? s/f9
$ hg add -S
adding f8
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 adding s/f10
adding s/f9
David M. Carr
tests: add test for add of explicit path in subrepo...
r15409 $ hg st -S
A f8
A s/f10
A s/f9
$ hg ci -R s -m3
$ hg ci -m4
Adding with a pattern silently ignores subrepos
$ echo c11 > fm11
$ echo c12 > fn12
$ echo c13 > s/fm13
$ echo c14 > s/fn14
$ hg st -S
? fm11
? fn12
? s/fm13
? s/fn14
$ hg add 'glob:**fm*'
adding fm11
$ hg st -S
A fm11
? fn12
? s/fm13
? s/fn14
$ hg ci -R s -Am4
adding fm13
adding fn14
$ hg ci -Am5
adding fn12
Adding with a pattern with -S also adds matches in subrepos
$ echo c15 > fm15
$ echo c16 > fn16
$ echo c17 > s/fm17
$ echo c18 > s/fn18
$ hg st -S
? fm15
? fn16
? s/fm17
? s/fn18
$ hg add -S 'glob:**fm*'
adding fm15
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 adding s/fm17
David M. Carr
tests: add test for add of explicit path in subrepo...
r15409 $ hg st -S
A fm15
A s/fm17
? fn16
? s/fn18
$ hg ci -R s -Am5
adding fn18
$ hg ci -Am6
adding fn16
David M. Carr
tests: add test for behavior of forget for explicit path in subrepo...
r15473
Test behavior of forget for explicit path in subrepo:
David M. Carr
forget: support forgetting explicit paths in subrepos...
r15474 Forgetting an explicit path in a subrepo untracks the file
David M. Carr
tests: add test for behavior of forget for explicit path in subrepo...
r15473 $ echo c19 > s/f19
$ hg add s/f19
$ hg st -S
A s/f19
$ hg forget s/f19
David M. Carr
forget: support forgetting explicit paths in subrepos...
r15474 $ hg st -S
? s/f19
David M. Carr
tests: add test for behavior of forget for explicit path in subrepo...
r15473 $ rm s/f19
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 $ cd ..
Pierre-Yves David
subrepo: allows to drop courtesy phase sync (issue3781)...
r18520
Courtesy phases synchronisation to publishing server does not block the push
(issue3781)
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R main issue3781
$ cp -R main issue3781-dest
Pierre-Yves David
subrepo: allows to drop courtesy phase sync (issue3781)...
r18520 $ cd issue3781-dest/s
$ hg phase tip # show we have draft changeset
5: draft
$ chmod a-w .hg/store/phaseroots # prevent phase push
$ cd ../../issue3781
$ cat >> .hg/hgrc << EOF
> [paths]
> default=../issue3781-dest/
> EOF
Pierre-Yves David
tests: use 'legacy.exchange' option in various mixed tests...
r29687 $ hg push --config devel.legacy.exchange=bundle1
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 pushing to $TESTTMP/issue3781-dest
Pierre-Yves David
subrepo: detect issue3781 case earlier so it apply to bundle2...
r25337 pushing subrepo s to $TESTTMP/issue3781-dest/s
searching for changes
no changes found
searching for changes
no changes found
[1]
# clean the push cache
$ rm s/.hg/cache/storehash/*
Pierre-Yves David
tests: remove all remaining usage of experimental.bundle2-exp...
r29688 $ hg push # bundle2+
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 pushing to $TESTTMP/issue3781-dest
Pierre-Yves David
subrepo: allows to drop courtesy phase sync (issue3781)...
r18520 pushing subrepo s to $TESTTMP/issue3781-dest/s
searching for changes
no changes found
searching for changes
no changes found
[1]
FUJIWARA Katsunori
subrepo: check phase of state in each subrepositories before committing...
r20176 $ cd ..
Pierre-Yves David
subrepo: allows to drop courtesy phase sync (issue3781)...
r18520
FUJIWARA Katsunori
subrepo: check phase of state in each subrepositories before committing...
r20176 Test phase choice for newly created commit with "phases.subrepochecks"
configuration
$ cd t
$ hg update -q -r 12
$ cat >> s/ss/.hg/hgrc <<EOF
> [phases]
> new-commit = secret
> EOF
$ cat >> s/.hg/hgrc <<EOF
> [phases]
> new-commit = draft
> EOF
$ echo phasecheck1 >> s/ss/a
$ hg -R s commit -S --config phases.checksubrepos=abort -m phasecheck1
committing subrepository ss
transaction abort!
rollback completed
abort: can't commit in draft phase conflicting secret from subrepository ss
[255]
$ echo phasecheck2 >> s/ss/a
$ hg -R s commit -S --config phases.checksubrepos=ignore -m phasecheck2
committing subrepository ss
$ hg -R s/ss phase tip
3: secret
$ hg -R s phase tip
6: draft
$ echo phasecheck3 >> s/ss/a
$ hg -R s commit -S -m phasecheck3
committing subrepository ss
warning: changes are committed in secret phase from subrepository ss
$ hg -R s/ss phase tip
4: secret
$ hg -R s phase tip
7: secret
$ cat >> t/.hg/hgrc <<EOF
> [phases]
> new-commit = draft
> EOF
$ cat >> .hg/hgrc <<EOF
> [phases]
> new-commit = public
> EOF
$ echo phasecheck4 >> s/ss/a
$ echo phasecheck4 >> t/t
$ hg commit -S -m phasecheck4
committing subrepository s
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 committing subrepository s/ss
FUJIWARA Katsunori
subrepo: check phase of state in each subrepositories before committing...
r20176 warning: changes are committed in secret phase from subrepository ss
committing subrepository t
warning: changes are committed in secret phase from subrepository s
created new head
$ hg -R s/ss phase tip
5: secret
$ hg -R s phase tip
8: secret
$ hg -R t phase tip
6: draft
$ hg phase tip
15: secret
$ cd ..
Jordi Gutiérrez Hermoso
commit: propagate --secret option to subrepos (issue4182)...
r20772
Mads Kiilerich
spelling: fixes from spell checker
r21024 Test that commit --secret works on both repo and subrepo (issue4182)
Jordi Gutiérrez Hermoso
commit: propagate --secret option to subrepos (issue4182)...
r20772
$ cd main
$ echo secret >> b
$ echo secret >> s/b
$ hg commit --secret --subrepo -m "secret"
committing subrepository s
$ hg phase -r .
6: secret
$ cd s
$ hg phase -r .
6: secret
$ cd ../../
FUJIWARA Katsunori
subrepo: add test whether "[paths]" is configured correctly at subrepo creation...
r21890
FUJIWARA Katsunori
templatekw: add 'subrepos' keyword to show updated subrepositories...
r21897 Test "subrepos" template keyword
$ cd t
$ hg update -q 15
$ cat > .hgsub <<EOF
> s = s
> EOF
$ hg commit -m "16"
warning: changes are committed in secret phase from subrepository s
(addition of ".hgsub" itself)
$ hg diff --nodates -c 1 .hgsubstate
diff -r f7b1eb17ad24 -r 7cf8cfea66e4 .hgsubstate
--- /dev/null
+++ b/.hgsubstate
@@ -0,0 +1,1 @@
+e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s
$ hg log -r 1 --template "{p1node|short} {p2node|short}\n{subrepos % '{subrepo}\n'}"
f7b1eb17ad24 000000000000
s
(modification of existing entry)
$ hg diff --nodates -c 2 .hgsubstate
diff -r 7cf8cfea66e4 -r df30734270ae .hgsubstate
--- a/.hgsubstate
+++ b/.hgsubstate
@@ -1,1 +1,1 @@
-e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s
+dc73e2e6d2675eb2e41e33c205f4bdab4ea5111d s
$ hg log -r 2 --template "{p1node|short} {p2node|short}\n{subrepos % '{subrepo}\n'}"
7cf8cfea66e4 000000000000
s
(addition of entry)
$ hg diff --nodates -c 5 .hgsubstate
diff -r 7cf8cfea66e4 -r 1f14a2e2d3ec .hgsubstate
--- a/.hgsubstate
+++ b/.hgsubstate
@@ -1,1 +1,2 @@
e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s
+60ca1237c19474e7a3978b0dc1ca4e6f36d51382 t
$ hg log -r 5 --template "{p1node|short} {p2node|short}\n{subrepos % '{subrepo}\n'}"
7cf8cfea66e4 000000000000
t
(removal of existing entry)
$ hg diff --nodates -c 16 .hgsubstate
diff -r 8bec38d2bd0b -r f2f70bc3d3c9 .hgsubstate
--- a/.hgsubstate
+++ b/.hgsubstate
@@ -1,2 +1,1 @@
0731af8ca9423976d3743119d0865097c07bdc1b s
-e202dc79b04c88a636ea8913d9182a1346d9b3dc t
$ hg log -r 16 --template "{p1node|short} {p2node|short}\n{subrepos % '{subrepo}\n'}"
8bec38d2bd0b 000000000000
t
(merging)
$ hg diff --nodates -c 9 .hgsubstate
diff -r f6affe3fbfaa -r f0d2028bf86d .hgsubstate
--- a/.hgsubstate
+++ b/.hgsubstate
@@ -1,1 +1,2 @@
fc627a69481fcbe5f1135069e8a3881c023e4cf5 s
+60ca1237c19474e7a3978b0dc1ca4e6f36d51382 t
$ hg log -r 9 --template "{p1node|short} {p2node|short}\n{subrepos % '{subrepo}\n'}"
f6affe3fbfaa 1f14a2e2d3ec
t
(removal of ".hgsub" itself)
$ hg diff --nodates -c 8 .hgsubstate
diff -r f94576341bcf -r 96615c1dad2d .hgsubstate
--- a/.hgsubstate
+++ /dev/null
@@ -1,2 +0,0 @@
-e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s
-7af322bc1198a32402fe903e0b7ebcfc5c9bf8f4 t
$ hg log -r 8 --template "{p1node|short} {p2node|short}\n{subrepos % '{subrepo}\n'}"
f94576341bcf 000000000000
FUJIWARA Katsunori
subrepo: add test whether "[paths]" is configured correctly at subrepo creation...
r21890 Test that '[paths]' is configured correctly at subrepo creation
$ cd $TESTTMP/tc
$ cat > .hgsub <<EOF
> # to clear bogus subrepo path 'bogus=[boguspath'
> s = s
> t = t
> EOF
$ hg update -q --clean null
$ rm -rf s t
$ cat >> .hg/hgrc <<EOF
> [paths]
> default-push = /foo/bar
> EOF
$ hg update -q
$ cat s/.hg/hgrc
[paths]
default = $TESTTMP/t/s
default-push = /foo/bar/s
$ cat s/ss/.hg/hgrc
[paths]
default = $TESTTMP/t/s/ss
default-push = /foo/bar/s/ss
$ cat t/.hg/hgrc
[paths]
default = $TESTTMP/t/t
default-push = /foo/bar/t
Matt Harbison
scmutil: consistently return subrepos relative to ctx1 from itersubrepos()...
r25418
$ cd $TESTTMP/t
$ hg up -qC 0
$ echo 'bar' > bar.txt
$ hg ci -Am 'branch before subrepo add'
adding bar.txt
created new head
$ hg merge -r "first(subrepo('s'))"
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg status -S -X '.hgsub*'
A s/a
? s/b
? s/c
? s/f1
$ hg status -S --rev 'p2()'
A bar.txt
? s/b
? s/c
? s/f1
$ hg diff -S -X '.hgsub*' --nodates
diff -r 000000000000 s/a
--- /dev/null
+++ b/s/a
@@ -0,0 +1,1 @@
+a
$ hg diff -S --rev 'p2()' --nodates
diff -r 7cf8cfea66e4 bar.txt
--- /dev/null
+++ b/bar.txt
@@ -0,0 +1,1 @@
+bar
FUJIWARA Katsunori
subrepo: add test whether "[paths]" is configured correctly at subrepo creation...
r21890 $ cd ..
Sean Farley
subrepo: add tests for hg rogue ssh urls (SEC)...
r33729
test for ssh exploit 2017-07-25
Yuya Nishihara
ssh: unban the use of pipe character in user@host:port string...
r33733 $ cat >> $HGRCPATH << EOF
> [ui]
> ssh = sh -c "read l; read l; read l"
> EOF
Sean Farley
subrepo: add tests for hg rogue ssh urls (SEC)...
r33729 $ hg init malicious-proxycommand
$ cd malicious-proxycommand
$ echo 's = [hg]ssh://-oProxyCommand=touch${IFS}owned/path' > .hgsub
$ hg init s
$ cd s
$ echo init > init
$ hg add
adding init
$ hg commit -m init
$ cd ..
$ hg add .hgsub
$ hg ci -m 'add subrepo'
$ cd ..
$ hg clone malicious-proxycommand malicious-proxycommand-clone
updating to branch default
abort: potentially unsafe url: 'ssh://-oProxyCommand=touch${IFS}owned/path' (in subrepository "s")
[255]
also check that a percent encoded '-' (%2D) doesn't work
$ cd malicious-proxycommand
$ echo 's = [hg]ssh://%2DoProxyCommand=touch${IFS}owned/path' > .hgsub
$ hg ci -m 'change url to percent encoded'
$ cd ..
$ rm -r malicious-proxycommand-clone
$ hg clone malicious-proxycommand malicious-proxycommand-clone
updating to branch default
abort: potentially unsafe url: 'ssh://-oProxyCommand=touch${IFS}owned/path' (in subrepository "s")
[255]
also check for a pipe
$ cd malicious-proxycommand
Yuya Nishihara
ssh: unban the use of pipe character in user@host:port string...
r33733 $ echo 's = [hg]ssh://fakehost|touch${IFS}owned/path' > .hgsub
Sean Farley
subrepo: add tests for hg rogue ssh urls (SEC)...
r33729 $ hg ci -m 'change url to pipe'
$ cd ..
$ rm -r malicious-proxycommand-clone
$ hg clone malicious-proxycommand malicious-proxycommand-clone
updating to branch default
Yuya Nishihara
ssh: unban the use of pipe character in user@host:port string...
r33733 abort: no suitable response from remote hg!
Sean Farley
subrepo: add tests for hg rogue ssh urls (SEC)...
r33729 [255]
Yuya Nishihara
ssh: unban the use of pipe character in user@host:port string...
r33733 $ [ ! -f owned ] || echo 'you got owned'
Sean Farley
subrepo: add tests for hg rogue ssh urls (SEC)...
r33729
also check that a percent encoded '|' (%7C) doesn't work
$ cd malicious-proxycommand
Yuya Nishihara
ssh: unban the use of pipe character in user@host:port string...
r33733 $ echo 's = [hg]ssh://fakehost%7Ctouch%20owned/path' > .hgsub
Sean Farley
subrepo: add tests for hg rogue ssh urls (SEC)...
r33729 $ hg ci -m 'change url to percent encoded pipe'
$ cd ..
$ rm -r malicious-proxycommand-clone
$ hg clone malicious-proxycommand malicious-proxycommand-clone
updating to branch default
Yuya Nishihara
ssh: unban the use of pipe character in user@host:port string...
r33733 abort: no suitable response from remote hg!
Sean Farley
subrepo: add tests for hg rogue ssh urls (SEC)...
r33729 [255]
Yuya Nishihara
ssh: unban the use of pipe character in user@host:port string...
r33733 $ [ ! -f owned ] || echo 'you got owned'
Sean Farley
subrepo: add tests for hg rogue ssh urls (SEC)...
r33729
and bad usernames:
$ cd malicious-proxycommand
$ echo 's = [hg]ssh://-oProxyCommand=touch owned@example.com/path' > .hgsub
$ hg ci -m 'owned username'
$ cd ..
$ rm -r malicious-proxycommand-clone
$ hg clone malicious-proxycommand malicious-proxycommand-clone
updating to branch default
abort: potentially unsafe url: 'ssh://-oProxyCommand=touch owned@example.com/path' (in subrepository "s")
[255]
Yuya Nishihara
merge: do not fill manifest of committed revision with pseudo node (issue5526)...
r38444
Test convert subrepositories including merge (issue5526):
$ hg init tconv
$ hg convert --config extensions.convert= -q t/s tconv/s
$ hg convert --config extensions.convert= -q t/s/ss tconv/s/ss
$ hg convert --config extensions.convert= -q t/t tconv/t
convert shouldn't fail because of pseudo filenode:
$ hg convert --config extensions.convert= t tconv
scanning source...
sorting...
converting...
17 0
16 1
15 2
14 3
13 4
12 5
11 6
10 7
9 8
8 9
7 10
6 11
5 12
4 13
3 rm2
2 phasecheck4
1 16
0 branch before subrepo add
converted .hgsubstate should point to valid nodes:
$ hg up -R tconv 9
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cat tconv/.hgsubstate
fc627a69481fcbe5f1135069e8a3881c023e4cf5 s
60ca1237c19474e7a3978b0dc1ca4e6f36d51382 t