tests/test-merge-subrepos.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Tue, 16 Apr 2019 17:26:38 +0200
changeset 42159 4f9a89837f07
parent 40992 1de3364320af
child 42565 4764e8436b2a
permissions -rw-r--r--
setdiscovery: stop limiting the number of local head we initially send In our testing this limitation provides now real gain and instead triggers pathological discovery timing for some repository with many heads. See inline documentation for details. Some timing below: Mozilla try repository, (~1M revs, ~35K heads), discovery between 2 clones with 100 head missing on each side before: ! wall 1.492111 comb 1.490000 user 1.450000 sys 0.040000 (best of 20) ! wall 1.813992 comb 1.820000 user 1.700000 sys 0.120000 (max of 20) ! wall 1.574326 comb 1.573500 user 1.522000 sys 0.051500 (avg of 20) ! wall 1.572583 comb 1.570000 user 1.520000 sys 0.050000 (median of 20) after: ! wall 1.147834 comb 1.150000 user 1.090000 sys 0.060000 (best of 20) ! wall 1.449144 comb 1.450000 user 1.330000 sys 0.120000 (max of 20) ! wall 1.204618 comb 1.202500 user 1.146500 sys 0.056000 (avg of 20) ! wall 1.194407 comb 1.190000 user 1.140000 sys 0.050000 (median of 20) pypy (~100 heads, 317 heads) discovery between clones with only 42 common heads before: ! wall 0.031653 comb 0.030000 user 0.030000 sys 0.000000 (best of 25) ! wall 0.055719 comb 0.050000 user 0.040000 sys 0.010000 (max of 25) ! wall 0.038939 comb 0.039600 user 0.038400 sys 0.001200 (avg of 25) ! wall 0.038660 comb 0.050000 user 0.040000 sys 0.010000 (median of 25) after: ! wall 0.018754 comb 0.020000 user 0.020000 sys 0.000000 (best of 49) ! wall 0.034505 comb 0.040000 user 0.030000 sys 0.010000 (max of 49) ! wall 0.019631 comb 0.019796 user 0.018367 sys 0.001429 (avg of 49) ! wall 0.019132 comb 0.020000 user 0.020000 sys 0.000000 (median of 49) Private repository (~1M revs, ~3K heads), discovery from a strip subset, about 100 changesets to be pulled. before: ! wall 1.837729 comb 1.840000 user 1.790000 sys 0.050000 (best of 20) ! wall 2.203468 comb 2.200000 user 2.100000 sys 0.100000 (max of 20) ! wall 2.049355 comb 2.048500 user 2.002500 sys 0.046000 (avg of 20) ! wall 2.035315 comb 2.040000 user 2.000000 sys 0.040000 (median of 20) after: ! wall 0.136598 comb 0.130000 user 0.110000 sys 0.020000 (best of 20) ! wall 0.330519 comb 0.330000 user 0.260000 sys 0.070000 (max of 20) ! wall 0.157254 comb 0.155500 user 0.123000 sys 0.032500 (avg of 20) ! wall 0.149870 comb 0.140000 user 0.110000 sys 0.030000 (median of 20) Same private repo, discovery between two clone with 500 different heads on each side: before: ! wall 2.372919 comb 2.370000 user 2.320000 sys 0.050000 (best of 20) ! wall 2.622422 comb 2.610000 user 2.510000 sys 0.100000 (max of 20) ! wall 2.450135 comb 2.450000 user 2.402000 sys 0.048000 (avg of 20) ! wall 2.443896 comb 2.450000 user 2.410000 sys 0.040000 (median of 20) after: ! wall 0.625497 comb 0.620000 user 0.570000 sys 0.050000 (best of 20) ! wall 0.834723 comb 0.820000 user 0.730000 sys 0.090000 (max of 20) ! wall 0.675725 comb 0.675500 user 0.628000 sys 0.047500 (avg of 20) ! wall 0.671614 comb 0.680000 user 0.640000 sys 0.040000 (median of 20)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13437
6169493ac3f9 Do not allow merging with uncommitted changes in a subrepo
Oleg Stepanov <oleg.stepanov@jetbrains.com>
parents:
diff changeset
     1
  $ hg init
6169493ac3f9 Do not allow merging with uncommitted changes in a subrepo
Oleg Stepanov <oleg.stepanov@jetbrains.com>
parents:
diff changeset
     2
6169493ac3f9 Do not allow merging with uncommitted changes in a subrepo
Oleg Stepanov <oleg.stepanov@jetbrains.com>
parents:
diff changeset
     3
  $ echo a > a
6169493ac3f9 Do not allow merging with uncommitted changes in a subrepo
Oleg Stepanov <oleg.stepanov@jetbrains.com>
parents:
diff changeset
     4
  $ hg ci -qAm 'add a'
6169493ac3f9 Do not allow merging with uncommitted changes in a subrepo
Oleg Stepanov <oleg.stepanov@jetbrains.com>
parents:
diff changeset
     5
6169493ac3f9 Do not allow merging with uncommitted changes in a subrepo
Oleg Stepanov <oleg.stepanov@jetbrains.com>
parents:
diff changeset
     6
  $ hg init subrepo
6169493ac3f9 Do not allow merging with uncommitted changes in a subrepo
Oleg Stepanov <oleg.stepanov@jetbrains.com>
parents:
diff changeset
     7
  $ echo 'subrepo = http://example.net/libfoo' > .hgsub
6169493ac3f9 Do not allow merging with uncommitted changes in a subrepo
Oleg Stepanov <oleg.stepanov@jetbrains.com>
parents:
diff changeset
     8
  $ hg ci -qAm 'added subrepo'
6169493ac3f9 Do not allow merging with uncommitted changes in a subrepo
Oleg Stepanov <oleg.stepanov@jetbrains.com>
parents:
diff changeset
     9
6169493ac3f9 Do not allow merging with uncommitted changes in a subrepo
Oleg Stepanov <oleg.stepanov@jetbrains.com>
parents:
diff changeset
    10
  $ hg up -qC 0
6169493ac3f9 Do not allow merging with uncommitted changes in a subrepo
Oleg Stepanov <oleg.stepanov@jetbrains.com>
parents:
diff changeset
    11
  $ echo ax > a
6169493ac3f9 Do not allow merging with uncommitted changes in a subrepo
Oleg Stepanov <oleg.stepanov@jetbrains.com>
parents:
diff changeset
    12
  $ hg ci -m 'changed a'
6169493ac3f9 Do not allow merging with uncommitted changes in a subrepo
Oleg Stepanov <oleg.stepanov@jetbrains.com>
parents:
diff changeset
    13
  created new head
6169493ac3f9 Do not allow merging with uncommitted changes in a subrepo
Oleg Stepanov <oleg.stepanov@jetbrains.com>
parents:
diff changeset
    14
6169493ac3f9 Do not allow merging with uncommitted changes in a subrepo
Oleg Stepanov <oleg.stepanov@jetbrains.com>
parents:
diff changeset
    15
  $ hg up -qC 1
6169493ac3f9 Do not allow merging with uncommitted changes in a subrepo
Oleg Stepanov <oleg.stepanov@jetbrains.com>
parents:
diff changeset
    16
  $ cd subrepo
6169493ac3f9 Do not allow merging with uncommitted changes in a subrepo
Oleg Stepanov <oleg.stepanov@jetbrains.com>
parents:
diff changeset
    17
  $ echo b > b
6169493ac3f9 Do not allow merging with uncommitted changes in a subrepo
Oleg Stepanov <oleg.stepanov@jetbrains.com>
parents:
diff changeset
    18
  $ hg add b
6169493ac3f9 Do not allow merging with uncommitted changes in a subrepo
Oleg Stepanov <oleg.stepanov@jetbrains.com>
parents:
diff changeset
    19
  $ cd ..
6169493ac3f9 Do not allow merging with uncommitted changes in a subrepo
Oleg Stepanov <oleg.stepanov@jetbrains.com>
parents:
diff changeset
    20
6169493ac3f9 Do not allow merging with uncommitted changes in a subrepo
Oleg Stepanov <oleg.stepanov@jetbrains.com>
parents:
diff changeset
    21
Should fail, since there are added files to subrepo:
6169493ac3f9 Do not allow merging with uncommitted changes in a subrepo
Oleg Stepanov <oleg.stepanov@jetbrains.com>
parents:
diff changeset
    22
6169493ac3f9 Do not allow merging with uncommitted changes in a subrepo
Oleg Stepanov <oleg.stepanov@jetbrains.com>
parents:
diff changeset
    23
  $ hg merge
33365
6d88468d435b subrepo: make the output references to subrepositories consistent
Matt Harbison <matt_harbison@yahoo.com>
parents: 33364
diff changeset
    24
  abort: uncommitted changes in subrepository "subrepo"
13437
6169493ac3f9 Do not allow merging with uncommitted changes in a subrepo
Oleg Stepanov <oleg.stepanov@jetbrains.com>
parents:
diff changeset
    25
  [255]
33196
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    26
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    27
Deleted files trigger a '+' marker in top level repos.  Deleted files are also
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    28
noticed by `update --check` in the top level repo.
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    29
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    30
  $ hg ci -Sqm 'add b'
33359
583aa1e3658b tests: tweak the subrepo dirty state tests
Matt Harbison <matt_harbison@yahoo.com>
parents: 33196
diff changeset
    31
  $ echo change > subrepo/b
583aa1e3658b tests: tweak the subrepo dirty state tests
Matt Harbison <matt_harbison@yahoo.com>
parents: 33196
diff changeset
    32
583aa1e3658b tests: tweak the subrepo dirty state tests
Matt Harbison <matt_harbison@yahoo.com>
parents: 33196
diff changeset
    33
  $ hg ci -Sm 'change b'
583aa1e3658b tests: tweak the subrepo dirty state tests
Matt Harbison <matt_harbison@yahoo.com>
parents: 33196
diff changeset
    34
  committing subrepository subrepo
583aa1e3658b tests: tweak the subrepo dirty state tests
Matt Harbison <matt_harbison@yahoo.com>
parents: 33196
diff changeset
    35
33196
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    36
  $ rm a
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    37
  $ hg id
33359
583aa1e3658b tests: tweak the subrepo dirty state tests
Matt Harbison <matt_harbison@yahoo.com>
parents: 33196
diff changeset
    38
  9bfe45a197d7+ tip
33196
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    39
  $ hg sum
33359
583aa1e3658b tests: tweak the subrepo dirty state tests
Matt Harbison <matt_harbison@yahoo.com>
parents: 33196
diff changeset
    40
  parent: 4:9bfe45a197d7 tip
583aa1e3658b tests: tweak the subrepo dirty state tests
Matt Harbison <matt_harbison@yahoo.com>
parents: 33196
diff changeset
    41
   change b
33196
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    42
  branch: default
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    43
  commit: 1 deleted (clean)
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    44
  update: 1 new changesets, 2 branch heads (merge)
33359
583aa1e3658b tests: tweak the subrepo dirty state tests
Matt Harbison <matt_harbison@yahoo.com>
parents: 33196
diff changeset
    45
  phases: 5 draft
33196
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    46
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    47
  $ hg up --check -r '.^'
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    48
  abort: uncommitted changes
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    49
  [255]
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    50
  $ hg st -S
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    51
  ! a
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    52
  $ hg up -Cq .
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    53
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    54
Test that dirty is consistent through subrepos
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    55
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    56
  $ rm subrepo/b
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    57
33364
bf2daeddd42b subrepo: consider the parent repo dirty when a file is missing
Matt Harbison <matt_harbison@yahoo.com>
parents: 33359
diff changeset
    58
A deleted subrepo file is flagged as dirty, like the top level repo
33196
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    59
40992
1de3364320af tests: filter out uninteresting log events
Yuya Nishihara <yuya@tcha.org>
parents: 39285
diff changeset
    60
  $ hg id --config extensions.blackbox= --config blackbox.dirty=True \
1de3364320af tests: filter out uninteresting log events
Yuya Nishihara <yuya@tcha.org>
parents: 39285
diff changeset
    61
  > --config blackbox.track='command commandfinish'
33364
bf2daeddd42b subrepo: consider the parent repo dirty when a file is missing
Matt Harbison <matt_harbison@yahoo.com>
parents: 33359
diff changeset
    62
  9bfe45a197d7+ tip
33359
583aa1e3658b tests: tweak the subrepo dirty state tests
Matt Harbison <matt_harbison@yahoo.com>
parents: 33196
diff changeset
    63
  $ cat .hg/blackbox.log
34450
6981d120c9d7 test-merge-subrepos: make test compatible with chg
Saurabh Singh <singhsrb@fb.com>
parents: 33366
diff changeset
    64
  * @9bfe45a197d7b0ab09bf287729dd57e9619c9da5+ (*)> serve --cmdserver chgunix * (glob) (chg !)
35034
02845f7441af dispatch: verify result of early command parsing
Yuya Nishihara <yuya@tcha.org>
parents: 34450
diff changeset
    65
  * @9bfe45a197d7b0ab09bf287729dd57e9619c9da5+ (*)> id --config *extensions.blackbox=* --config *blackbox.dirty=True* (glob)
33364
bf2daeddd42b subrepo: consider the parent repo dirty when a file is missing
Matt Harbison <matt_harbison@yahoo.com>
parents: 33359
diff changeset
    66
  * @9bfe45a197d7b0ab09bf287729dd57e9619c9da5+ (*)> id --config *extensions.blackbox=* --config *blackbox.dirty=True* exited 0 * (glob)
33196
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    67
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    68
TODO: a deleted file should be listed as such, like the top level repo
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    69
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    70
  $ hg sum
33359
583aa1e3658b tests: tweak the subrepo dirty state tests
Matt Harbison <matt_harbison@yahoo.com>
parents: 33196
diff changeset
    71
  parent: 4:9bfe45a197d7 tip
583aa1e3658b tests: tweak the subrepo dirty state tests
Matt Harbison <matt_harbison@yahoo.com>
parents: 33196
diff changeset
    72
   change b
33196
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    73
  branch: default
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    74
  commit: (clean)
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    75
  update: 1 new changesets, 2 branch heads (merge)
33359
583aa1e3658b tests: tweak the subrepo dirty state tests
Matt Harbison <matt_harbison@yahoo.com>
parents: 33196
diff changeset
    76
  phases: 5 draft
33196
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    77
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    78
Modified subrepo files are noticed by `update --check` and `summary`
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    79
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    80
  $ echo mod > subrepo/b
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    81
  $ hg st -S
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    82
  M subrepo/b
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    83
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    84
  $ hg up -r '.^' --check
33365
6d88468d435b subrepo: make the output references to subrepositories consistent
Matt Harbison <matt_harbison@yahoo.com>
parents: 33364
diff changeset
    85
  abort: uncommitted changes in subrepository "subrepo"
33196
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    86
  [255]
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    87
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    88
  $ hg sum
33359
583aa1e3658b tests: tweak the subrepo dirty state tests
Matt Harbison <matt_harbison@yahoo.com>
parents: 33196
diff changeset
    89
  parent: 4:9bfe45a197d7 tip
583aa1e3658b tests: tweak the subrepo dirty state tests
Matt Harbison <matt_harbison@yahoo.com>
parents: 33196
diff changeset
    90
   change b
33196
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    91
  branch: default
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    92
  commit: 1 subrepos
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    93
  update: 1 new changesets, 2 branch heads (merge)
33359
583aa1e3658b tests: tweak the subrepo dirty state tests
Matt Harbison <matt_harbison@yahoo.com>
parents: 33196
diff changeset
    94
  phases: 5 draft
33196
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    95
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    96
TODO: why is -R needed here?  If it's because the subrepo is treated as a
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    97
discrete unit, then this should probably warn or something.
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    98
  $ hg revert -R subrepo --no-backup subrepo/b -r .
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
    99
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
   100
  $ rm subrepo/b
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
   101
  $ hg st -S
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
   102
  ! subrepo/b
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
   103
33364
bf2daeddd42b subrepo: consider the parent repo dirty when a file is missing
Matt Harbison <matt_harbison@yahoo.com>
parents: 33359
diff changeset
   104
`hg update --check` notices a subrepo with a missing file, like it notices a
bf2daeddd42b subrepo: consider the parent repo dirty when a file is missing
Matt Harbison <matt_harbison@yahoo.com>
parents: 33359
diff changeset
   105
missing file in the top level repo.
33196
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
   106
33364
bf2daeddd42b subrepo: consider the parent repo dirty when a file is missing
Matt Harbison <matt_harbison@yahoo.com>
parents: 33359
diff changeset
   107
  $ hg up -r '.^' --check
33365
6d88468d435b subrepo: make the output references to subrepositories consistent
Matt Harbison <matt_harbison@yahoo.com>
parents: 33364
diff changeset
   108
  abort: uncommitted changes in subrepository "subrepo"
33364
bf2daeddd42b subrepo: consider the parent repo dirty when a file is missing
Matt Harbison <matt_harbison@yahoo.com>
parents: 33359
diff changeset
   109
  [255]
bf2daeddd42b subrepo: consider the parent repo dirty when a file is missing
Matt Harbison <matt_harbison@yahoo.com>
parents: 33359
diff changeset
   110
bf2daeddd42b subrepo: consider the parent repo dirty when a file is missing
Matt Harbison <matt_harbison@yahoo.com>
parents: 33359
diff changeset
   111
  $ hg up -r '.^' --config ui.interactive=True << EOF
33366
062c1bde1781 test-subrepo: demonstrate a status problem when merge deletes a file
Matt Harbison <matt_harbison@yahoo.com>
parents: 33365
diff changeset
   112
  > d
33359
583aa1e3658b tests: tweak the subrepo dirty state tests
Matt Harbison <matt_harbison@yahoo.com>
parents: 33196
diff changeset
   113
  > EOF
39285
a3fd84f4fb38 filemerge: fix the wrong placements of messages in prompt
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 39284
diff changeset
   114
  file 'b' was deleted in local [working copy] but was modified in other [destination].
39277
f785073f792c merge: improve interactive one-changed one-deleted message (issue5550)
Augie Fackler <augie@google.com>
parents: 35393
diff changeset
   115
  What do you want to do?
33366
062c1bde1781 test-subrepo: demonstrate a status problem when merge deletes a file
Matt Harbison <matt_harbison@yahoo.com>
parents: 33365
diff changeset
   116
  use (c)hanged version, leave (d)eleted, or leave (u)nresolved? d
33196
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
   117
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
   118
33366
062c1bde1781 test-subrepo: demonstrate a status problem when merge deletes a file
Matt Harbison <matt_harbison@yahoo.com>
parents: 33365
diff changeset
   119
XXX: There's a difference between wdir() and '.', so there should be a status.
062c1bde1781 test-subrepo: demonstrate a status problem when merge deletes a file
Matt Harbison <matt_harbison@yahoo.com>
parents: 33365
diff changeset
   120
`hg files -S` from the top is also missing 'subrepo/b'.
062c1bde1781 test-subrepo: demonstrate a status problem when merge deletes a file
Matt Harbison <matt_harbison@yahoo.com>
parents: 33365
diff changeset
   121
33196
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
   122
  $ hg st -S
33366
062c1bde1781 test-subrepo: demonstrate a status problem when merge deletes a file
Matt Harbison <matt_harbison@yahoo.com>
parents: 33365
diff changeset
   123
  $ hg st -R subrepo
062c1bde1781 test-subrepo: demonstrate a status problem when merge deletes a file
Matt Harbison <matt_harbison@yahoo.com>
parents: 33365
diff changeset
   124
  $ hg files -R subrepo
062c1bde1781 test-subrepo: demonstrate a status problem when merge deletes a file
Matt Harbison <matt_harbison@yahoo.com>
parents: 33365
diff changeset
   125
  [1]
062c1bde1781 test-subrepo: demonstrate a status problem when merge deletes a file
Matt Harbison <matt_harbison@yahoo.com>
parents: 33365
diff changeset
   126
  $ hg files -R subrepo -r '.'
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35034
diff changeset
   127
  subrepo/b
33196
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
   128
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
   129
  $ hg bookmark -r tip @other
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
   130
  $ echo xyz > subrepo/c
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
   131
  $ hg ci -SAm 'add c'
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
   132
  adding subrepo/c
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
   133
  committing subrepository subrepo
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
   134
  created new head
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
   135
  $ rm subrepo/c
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
   136
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
   137
Merge sees deleted subrepo files as an uncommitted change
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
   138
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
   139
  $ hg merge @other
33365
6d88468d435b subrepo: make the output references to subrepositories consistent
Matt Harbison <matt_harbison@yahoo.com>
parents: 33364
diff changeset
   140
  abort: uncommitted changes in subrepository "subrepo"
33196
439b4d005b4a tests: demonstrate inconsistencies with dirty state in various commands
Matt Harbison <matt_harbison@yahoo.com>
parents: 19803
diff changeset
   141
  [255]