tests/test-treemanifest.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Sun, 21 May 2017 15:35:21 +0200
changeset 32476 e5e31b0fc924
parent 31294 c134a33b1d73
child 33286 2428e8ec0793
permissions -rw-r--r--
hidden: use _domainancestors to compute revs revealed by dynamic blocker The complexity of computing the revealed changesets is now 'O(revealed)'. This massively speeds up the computation on large repository. Moving it to the millisecond range. Below are timing from two Mozilla repositories with different contents: 1) mozilla repository with: * 400667 changesets * 35 hidden changesets (first rev-268334) * 288 visible drafts * obsolete working copy (dynamicblockers), Before: ! visible ! wall 0.030247 comb 0.030000 user 0.030000 sys 0.000000 (best of 100) After: ! visible ! wall 0.000585 comb 0.000000 user 0.000000 sys 0.000000 (best of 4221) The timing above include the computation of obsolete changeset: ! obsolete ! wall 0.000396 comb 0.000000 user 0.000000 sys 0.000000 (best of 6816) So adjusted time give 30ms before versus 0.2ms after. A 150x speedup. 2) mozilla repository with: * 405645 changesets * 4312 hidden changesets (first rev-326004) * 264 visible drafts * obsolete working copy (dynamicblockers), Before: ! visible ! wall 0.168658 comb 0.170000 user 0.170000 sys 0.000000 (best of 48) After ! visible ! wall 0.008612 comb 0.010000 user 0.010000 sys 0.000000 (best of 325) The timing above include the computation of obsolete changeset: ! obsolete ! wall 0.006408 comb 0.010000 user 0.010000 sys 0.000000 (best of 404) So adjusted time give 160ms before versus 2ms after. A 75x speedup.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
28168
1a943a3a78ea tests: put test-treemanifest.t on a port diet
timeless <timeless@mozdev.org>
parents: 28063
diff changeset
     1
#require killdaemons
1a943a3a78ea tests: put test-treemanifest.t on a port diet
timeless <timeless@mozdev.org>
parents: 28063
diff changeset
     2
26920
4d1a96bb831f test: enable generaldelta early in 'test-treemanifest.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25398
diff changeset
     3
  $ cat << EOF >> $HGRCPATH
4d1a96bb831f test: enable generaldelta early in 'test-treemanifest.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25398
diff changeset
     4
  > [format]
4d1a96bb831f test: enable generaldelta early in 'test-treemanifest.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25398
diff changeset
     5
  > usegeneraldelta=yes
27953
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
     6
  > [ui]
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
     7
  > ssh=python "$TESTDIR/dummyssh"
26920
4d1a96bb831f test: enable generaldelta early in 'test-treemanifest.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25398
diff changeset
     8
  > EOF
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     9
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    10
Set up repo
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    11
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    12
  $ hg --config experimental.treemanifest=True init repo
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    13
  $ cd repo
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    14
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    15
Requirements get set on init
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    16
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    17
  $ grep treemanifest .hg/requires
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    18
  treemanifest
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    19
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    20
Without directories, looks like any other repo
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    21
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    22
  $ echo 0 > a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    23
  $ echo 0 > b
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    24
  $ hg ci -Aqm initial
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    25
  $ hg debugdata -m 0
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    26
  a\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (esc)
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    27
  b\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (esc)
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    28
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    29
Submanifest is stored in separate revlog
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    30
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    31
  $ mkdir dir1
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    32
  $ echo 1 > dir1/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    33
  $ echo 1 > dir1/b
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    34
  $ echo 1 > e
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    35
  $ hg ci -Aqm 'add dir1'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    36
  $ hg debugdata -m 1
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    37
  a\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (esc)
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    38
  b\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (esc)
27271
2a31433a59ba manifest: use 't' for tree manifest flag
Martin von Zweigbergk <martinvonz@google.com>
parents: 27251
diff changeset
    39
  dir1\x008b3ffd73f901e83304c83d33132c8e774ceac44et (esc)
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    40
  e\x00b8e02f6433738021a065f94175c7cd23db5f05be (esc)
25119
49c583ca48c4 treemanifest: add --dir option to debug{revlog,data,index}
Martin von Zweigbergk <martinvonz@google.com>
parents: 25091
diff changeset
    41
  $ hg debugdata --dir dir1 0
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    42
  a\x00b8e02f6433738021a065f94175c7cd23db5f05be (esc)
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    43
  b\x00b8e02f6433738021a065f94175c7cd23db5f05be (esc)
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    44
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    45
Can add nested directories
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    46
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    47
  $ mkdir dir1/dir1
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    48
  $ echo 2 > dir1/dir1/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    49
  $ echo 2 > dir1/dir1/b
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    50
  $ mkdir dir1/dir2
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    51
  $ echo 2 > dir1/dir2/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    52
  $ echo 2 > dir1/dir2/b
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    53
  $ hg ci -Aqm 'add dir1/dir1'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    54
  $ hg files -r .
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    55
  a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    56
  b
25153
1929d9c84028 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25119
diff changeset
    57
  dir1/a (glob)
1929d9c84028 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25119
diff changeset
    58
  dir1/b (glob)
1929d9c84028 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25119
diff changeset
    59
  dir1/dir1/a (glob)
1929d9c84028 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25119
diff changeset
    60
  dir1/dir1/b (glob)
1929d9c84028 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25119
diff changeset
    61
  dir1/dir2/a (glob)
1929d9c84028 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25119
diff changeset
    62
  dir1/dir2/b (glob)
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    63
  e
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    64
29699
6943dacc3b4c test-treemanifest: ensure manifest command isn't broken
Augie Fackler <augie@google.com>
parents: 29464
diff changeset
    65
The manifest command works
6943dacc3b4c test-treemanifest: ensure manifest command isn't broken
Augie Fackler <augie@google.com>
parents: 29464
diff changeset
    66
6943dacc3b4c test-treemanifest: ensure manifest command isn't broken
Augie Fackler <augie@google.com>
parents: 29464
diff changeset
    67
  $ hg manifest
6943dacc3b4c test-treemanifest: ensure manifest command isn't broken
Augie Fackler <augie@google.com>
parents: 29464
diff changeset
    68
  a
6943dacc3b4c test-treemanifest: ensure manifest command isn't broken
Augie Fackler <augie@google.com>
parents: 29464
diff changeset
    69
  b
6943dacc3b4c test-treemanifest: ensure manifest command isn't broken
Augie Fackler <augie@google.com>
parents: 29464
diff changeset
    70
  dir1/a
6943dacc3b4c test-treemanifest: ensure manifest command isn't broken
Augie Fackler <augie@google.com>
parents: 29464
diff changeset
    71
  dir1/b
6943dacc3b4c test-treemanifest: ensure manifest command isn't broken
Augie Fackler <augie@google.com>
parents: 29464
diff changeset
    72
  dir1/dir1/a
6943dacc3b4c test-treemanifest: ensure manifest command isn't broken
Augie Fackler <augie@google.com>
parents: 29464
diff changeset
    73
  dir1/dir1/b
6943dacc3b4c test-treemanifest: ensure manifest command isn't broken
Augie Fackler <augie@google.com>
parents: 29464
diff changeset
    74
  dir1/dir2/a
6943dacc3b4c test-treemanifest: ensure manifest command isn't broken
Augie Fackler <augie@google.com>
parents: 29464
diff changeset
    75
  dir1/dir2/b
6943dacc3b4c test-treemanifest: ensure manifest command isn't broken
Augie Fackler <augie@google.com>
parents: 29464
diff changeset
    76
  e
6943dacc3b4c test-treemanifest: ensure manifest command isn't broken
Augie Fackler <augie@google.com>
parents: 29464
diff changeset
    77
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    78
Revision is not created for unchanged directory
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    79
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    80
  $ mkdir dir2
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    81
  $ echo 3 > dir2/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    82
  $ hg add dir2
25153
1929d9c84028 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25119
diff changeset
    83
  adding dir2/a (glob)
25119
49c583ca48c4 treemanifest: add --dir option to debug{revlog,data,index}
Martin von Zweigbergk <martinvonz@google.com>
parents: 25091
diff changeset
    84
  $ hg debugindex --dir dir1 > before
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    85
  $ hg ci -qm 'add dir2'
25119
49c583ca48c4 treemanifest: add --dir option to debug{revlog,data,index}
Martin von Zweigbergk <martinvonz@google.com>
parents: 25091
diff changeset
    86
  $ hg debugindex --dir dir1 > after
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    87
  $ diff before after
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    88
  $ rm before after
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    89
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    90
Removing directory does not create an revlog entry
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    91
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    92
  $ hg rm dir1/dir1
25153
1929d9c84028 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25119
diff changeset
    93
  removing dir1/dir1/a (glob)
1929d9c84028 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25119
diff changeset
    94
  removing dir1/dir1/b (glob)
25119
49c583ca48c4 treemanifest: add --dir option to debug{revlog,data,index}
Martin von Zweigbergk <martinvonz@google.com>
parents: 25091
diff changeset
    95
  $ hg debugindex --dir dir1/dir1 > before
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    96
  $ hg ci -qm 'remove dir1/dir1'
25119
49c583ca48c4 treemanifest: add --dir option to debug{revlog,data,index}
Martin von Zweigbergk <martinvonz@google.com>
parents: 25091
diff changeset
    97
  $ hg debugindex --dir dir1/dir1 > after
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    98
  $ diff before after
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    99
  $ rm before after
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   100
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   101
Check that hg files (calls treemanifest.walk()) works
25222
0de132d5328a treemanifest: lazily load manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 25153
diff changeset
   102
without loading all directory revlogs
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   103
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   104
  $ hg co 'desc("add dir2")'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   105
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
25222
0de132d5328a treemanifest: lazily load manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 25153
diff changeset
   106
  $ mv .hg/store/meta/dir2 .hg/store/meta/dir2-backup
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   107
  $ hg files -r . dir1
25153
1929d9c84028 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25119
diff changeset
   108
  dir1/a (glob)
1929d9c84028 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25119
diff changeset
   109
  dir1/b (glob)
1929d9c84028 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25119
diff changeset
   110
  dir1/dir1/a (glob)
1929d9c84028 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25119
diff changeset
   111
  dir1/dir1/b (glob)
1929d9c84028 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25119
diff changeset
   112
  dir1/dir2/a (glob)
1929d9c84028 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25119
diff changeset
   113
  dir1/dir2/b (glob)
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   114
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   115
Check that status between revisions works (calls treemanifest.matches())
25222
0de132d5328a treemanifest: lazily load manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 25153
diff changeset
   116
without loading all directory revlogs
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   117
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   118
  $ hg status --rev 'desc("add dir1")' --rev . dir1
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   119
  A dir1/dir1/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   120
  A dir1/dir1/b
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   121
  A dir1/dir2/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   122
  A dir1/dir2/b
25222
0de132d5328a treemanifest: lazily load manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 25153
diff changeset
   123
  $ mv .hg/store/meta/dir2-backup .hg/store/meta/dir2
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   124
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   125
Merge creates 2-parent revision of directory revlog
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   126
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   127
  $ echo 5 > dir1/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   128
  $ hg ci -Aqm 'modify dir1/a'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   129
  $ hg co '.^'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   130
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   131
  $ echo 6 > dir1/b
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   132
  $ hg ci -Aqm 'modify dir1/b'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   133
  $ hg merge 'desc("modify dir1/a")'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   134
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   135
  (branch merge, don't forget to commit)
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   136
  $ hg ci -m 'conflict-free merge involving dir1/'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   137
  $ cat dir1/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   138
  5
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   139
  $ cat dir1/b
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   140
  6
25119
49c583ca48c4 treemanifest: add --dir option to debug{revlog,data,index}
Martin von Zweigbergk <martinvonz@google.com>
parents: 25091
diff changeset
   141
  $ hg debugindex --dir dir1
26920
4d1a96bb831f test: enable generaldelta early in 'test-treemanifest.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25398
diff changeset
   142
     rev    offset  length  delta linkrev nodeid       p1           p2
4d1a96bb831f test: enable generaldelta early in 'test-treemanifest.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25398
diff changeset
   143
       0         0      54     -1       1 8b3ffd73f901 000000000000 000000000000
27271
2a31433a59ba manifest: use 't' for tree manifest flag
Martin von Zweigbergk <martinvonz@google.com>
parents: 27251
diff changeset
   144
       1        54      68      0       2 68e9d057c5a8 8b3ffd73f901 000000000000
2a31433a59ba manifest: use 't' for tree manifest flag
Martin von Zweigbergk <martinvonz@google.com>
parents: 27251
diff changeset
   145
       2       122      12      1       4 4698198d2624 68e9d057c5a8 000000000000
2a31433a59ba manifest: use 't' for tree manifest flag
Martin von Zweigbergk <martinvonz@google.com>
parents: 27251
diff changeset
   146
       3       134      55      1       5 44844058ccce 68e9d057c5a8 000000000000
2a31433a59ba manifest: use 't' for tree manifest flag
Martin von Zweigbergk <martinvonz@google.com>
parents: 27251
diff changeset
   147
       4       189      55      1       6 bf3d9b744927 68e9d057c5a8 000000000000
2a31433a59ba manifest: use 't' for tree manifest flag
Martin von Zweigbergk <martinvonz@google.com>
parents: 27251
diff changeset
   148
       5       244      55      4       7 dde7c0af2a03 bf3d9b744927 44844058ccce
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   149
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   150
Merge keeping directory from parent 1 does not create revlog entry. (Note that
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   151
dir1's manifest does change, but only because dir1/a's filelog changes.)
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   152
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   153
  $ hg co 'desc("add dir2")'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   154
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   155
  $ echo 8 > dir2/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   156
  $ hg ci -m 'modify dir2/a'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   157
  created new head
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   158
25119
49c583ca48c4 treemanifest: add --dir option to debug{revlog,data,index}
Martin von Zweigbergk <martinvonz@google.com>
parents: 25091
diff changeset
   159
  $ hg debugindex --dir dir2 > before
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   160
  $ hg merge 'desc("modify dir1/a")'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   161
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   162
  (branch merge, don't forget to commit)
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   163
  $ hg revert -r 'desc("modify dir2/a")' .
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   164
  reverting dir1/a (glob)
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   165
  $ hg ci -m 'merge, keeping parent 1'
25119
49c583ca48c4 treemanifest: add --dir option to debug{revlog,data,index}
Martin von Zweigbergk <martinvonz@google.com>
parents: 25091
diff changeset
   166
  $ hg debugindex --dir dir2 > after
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   167
  $ diff before after
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   168
  $ rm before after
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   169
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   170
Merge keeping directory from parent 2 does not create revlog entry. (Note that
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   171
dir2's manifest does change, but only because dir2/a's filelog changes.)
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   172
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   173
  $ hg co 'desc("modify dir2/a")'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   174
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
25119
49c583ca48c4 treemanifest: add --dir option to debug{revlog,data,index}
Martin von Zweigbergk <martinvonz@google.com>
parents: 25091
diff changeset
   175
  $ hg debugindex --dir dir1 > before
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   176
  $ hg merge 'desc("modify dir1/a")'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   177
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   178
  (branch merge, don't forget to commit)
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   179
  $ hg revert -r 'desc("modify dir1/a")' .
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   180
  reverting dir2/a (glob)
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   181
  $ hg ci -m 'merge, keeping parent 2'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   182
  created new head
25119
49c583ca48c4 treemanifest: add --dir option to debug{revlog,data,index}
Martin von Zweigbergk <martinvonz@google.com>
parents: 25091
diff changeset
   183
  $ hg debugindex --dir dir1 > after
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   184
  $ diff before after
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   185
  $ rm before after
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   186
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   187
Create flat source repo for tests with mixed flat/tree manifests
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   188
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   189
  $ cd ..
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   190
  $ hg init repo-flat
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   191
  $ cd repo-flat
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   192
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   193
Create a few commits with flat manifest
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   194
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   195
  $ echo 0 > a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   196
  $ echo 0 > b
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   197
  $ echo 0 > e
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   198
  $ for d in dir1 dir1/dir1 dir1/dir2 dir2
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   199
  > do
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   200
  >   mkdir $d
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   201
  >   echo 0 > $d/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   202
  >   echo 0 > $d/b
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   203
  > done
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   204
  $ hg ci -Aqm initial
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   205
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   206
  $ echo 1 > a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   207
  $ echo 1 > dir1/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   208
  $ echo 1 > dir1/dir1/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   209
  $ hg ci -Aqm 'modify on branch 1'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   210
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   211
  $ hg co 0
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   212
  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   213
  $ echo 2 > b
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   214
  $ echo 2 > dir1/b
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   215
  $ echo 2 > dir1/dir1/b
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   216
  $ hg ci -Aqm 'modify on branch 2'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   217
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   218
  $ hg merge 1
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   219
  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   220
  (branch merge, don't forget to commit)
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   221
  $ hg ci -m 'merge of flat manifests to new flat manifest'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   222
27953
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
   223
  $ hg serve -p $HGPORT -d --pid-file=hg.pid --errorlog=errors.log
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
   224
  $ cat hg.pid >> $DAEMON_PIDS
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
   225
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   226
Create clone with tree manifests enabled
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   227
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   228
  $ cd ..
27953
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
   229
  $ hg clone --config experimental.treemanifest=1 \
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
   230
  >   http://localhost:$HGPORT repo-mixed -r 1
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   231
  adding changesets
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   232
  adding manifests
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   233
  adding file changes
27953
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
   234
  added 2 changesets with 14 changes to 11 files
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   235
  updating to branch default
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   236
  11 files updated, 0 files merged, 0 files removed, 0 files unresolved
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   237
  $ cd repo-mixed
27952
c5ffbd4c033b tests: minor cleanup to treemanifest test
Martin von Zweigbergk <martinvonz@google.com>
parents: 27946
diff changeset
   238
  $ test -d .hg/store/meta
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   239
  [1]
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   240
  $ grep treemanifest .hg/requires
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   241
  treemanifest
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   242
27953
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
   243
Should be possible to push updates from flat to tree manifest repo
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
   244
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
   245
  $ hg -R ../repo-flat push ssh://user@dummy/repo-mixed
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
   246
  pushing to ssh://user@dummy/repo-mixed
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
   247
  searching for changes
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
   248
  remote: adding changesets
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
   249
  remote: adding manifests
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
   250
  remote: adding file changes
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
   251
  remote: added 2 changesets with 3 changes to 3 files
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
   252
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   253
Commit should store revlog per directory
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   254
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   255
  $ hg co 1
27953
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
   256
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   257
  $ echo 3 > a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   258
  $ echo 3 > dir1/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   259
  $ echo 3 > dir1/dir1/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   260
  $ hg ci -m 'first tree'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   261
  created new head
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   262
  $ find .hg/store/meta | sort
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   263
  .hg/store/meta
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   264
  .hg/store/meta/dir1
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   265
  .hg/store/meta/dir1/00manifest.i
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   266
  .hg/store/meta/dir1/dir1
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   267
  .hg/store/meta/dir1/dir1/00manifest.i
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   268
  .hg/store/meta/dir1/dir2
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   269
  .hg/store/meta/dir1/dir2/00manifest.i
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   270
  .hg/store/meta/dir2
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   271
  .hg/store/meta/dir2/00manifest.i
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   272
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   273
Merge of two trees
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   274
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   275
  $ hg co 2
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   276
  6 files updated, 0 files merged, 0 files removed, 0 files unresolved
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   277
  $ hg merge 1
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   278
  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   279
  (branch merge, don't forget to commit)
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   280
  $ hg ci -m 'merge of flat manifests to new tree manifest'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   281
  created new head
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   282
  $ hg diff -r 3
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   283
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   284
Parent of tree root manifest should be flat manifest, and two for merge
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   285
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   286
  $ hg debugindex -m
26920
4d1a96bb831f test: enable generaldelta early in 'test-treemanifest.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25398
diff changeset
   287
     rev    offset  length  delta linkrev nodeid       p1           p2
4d1a96bb831f test: enable generaldelta early in 'test-treemanifest.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25398
diff changeset
   288
       0         0      80     -1       0 40536115ed9e 000000000000 000000000000
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   289
       1        80      83      0       1 f3376063c255 40536115ed9e 000000000000
26920
4d1a96bb831f test: enable generaldelta early in 'test-treemanifest.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25398
diff changeset
   290
       2       163      89      0       2 5d9b9da231a2 40536115ed9e 000000000000
4d1a96bb831f test: enable generaldelta early in 'test-treemanifest.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25398
diff changeset
   291
       3       252      83      2       3 d17d663cbd8a 5d9b9da231a2 f3376063c255
27271
2a31433a59ba manifest: use 't' for tree manifest flag
Martin von Zweigbergk <martinvonz@google.com>
parents: 27251
diff changeset
   292
       4       335     124      1       4 51e32a8c60ee f3376063c255 000000000000
2a31433a59ba manifest: use 't' for tree manifest flag
Martin von Zweigbergk <martinvonz@google.com>
parents: 27251
diff changeset
   293
       5       459     126      2       5 cc5baa78b230 5d9b9da231a2 f3376063c255
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   294
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   295
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   296
Status across flat/tree boundary should work
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   297
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   298
  $ hg status --rev '.^' --rev .
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   299
  M a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   300
  M dir1/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   301
  M dir1/dir1/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   302
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   303
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   304
Turning off treemanifest config has no effect
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   305
27952
c5ffbd4c033b tests: minor cleanup to treemanifest test
Martin von Zweigbergk <martinvonz@google.com>
parents: 27946
diff changeset
   306
  $ hg debugindex --dir dir1
26920
4d1a96bb831f test: enable generaldelta early in 'test-treemanifest.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25398
diff changeset
   307
     rev    offset  length  delta linkrev nodeid       p1           p2
27271
2a31433a59ba manifest: use 't' for tree manifest flag
Martin von Zweigbergk <martinvonz@google.com>
parents: 27251
diff changeset
   308
       0         0     127     -1       4 064927a0648a 000000000000 000000000000
2a31433a59ba manifest: use 't' for tree manifest flag
Martin von Zweigbergk <martinvonz@google.com>
parents: 27251
diff changeset
   309
       1       127     111      0       5 25ecb8cb8618 000000000000 000000000000
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   310
  $ echo 2 > dir1/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   311
  $ hg --config experimental.treemanifest=False ci -qm 'modify dir1/a'
27952
c5ffbd4c033b tests: minor cleanup to treemanifest test
Martin von Zweigbergk <martinvonz@google.com>
parents: 27946
diff changeset
   312
  $ hg debugindex --dir dir1
26920
4d1a96bb831f test: enable generaldelta early in 'test-treemanifest.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25398
diff changeset
   313
     rev    offset  length  delta linkrev nodeid       p1           p2
27271
2a31433a59ba manifest: use 't' for tree manifest flag
Martin von Zweigbergk <martinvonz@google.com>
parents: 27251
diff changeset
   314
       0         0     127     -1       4 064927a0648a 000000000000 000000000000
2a31433a59ba manifest: use 't' for tree manifest flag
Martin von Zweigbergk <martinvonz@google.com>
parents: 27251
diff changeset
   315
       1       127     111      0       5 25ecb8cb8618 000000000000 000000000000
2a31433a59ba manifest: use 't' for tree manifest flag
Martin von Zweigbergk <martinvonz@google.com>
parents: 27251
diff changeset
   316
       2       238      55      1       6 5b16163a30c6 25ecb8cb8618 000000000000
25231
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   317
27930
7cbb3a01fa38 repair: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27752
diff changeset
   318
Stripping and recovering changes should work
7cbb3a01fa38 repair: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27752
diff changeset
   319
7cbb3a01fa38 repair: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27752
diff changeset
   320
  $ hg st --change tip
7cbb3a01fa38 repair: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27752
diff changeset
   321
  M dir1/a
7cbb3a01fa38 repair: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27752
diff changeset
   322
  $ hg --config extensions.strip= strip tip
7cbb3a01fa38 repair: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27752
diff changeset
   323
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
7cbb3a01fa38 repair: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27752
diff changeset
   324
  saved backup bundle to $TESTTMP/repo-mixed/.hg/strip-backup/51cfd7b1e13b-78a2f3ed-backup.hg (glob)
29464
87c184c9bfef treemanifests: actually strip directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 29371
diff changeset
   325
  $ hg debugindex --dir dir1
87c184c9bfef treemanifests: actually strip directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 29371
diff changeset
   326
     rev    offset  length  delta linkrev nodeid       p1           p2
87c184c9bfef treemanifests: actually strip directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 29371
diff changeset
   327
       0         0     127     -1       4 064927a0648a 000000000000 000000000000
87c184c9bfef treemanifests: actually strip directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 29371
diff changeset
   328
       1       127     111      0       5 25ecb8cb8618 000000000000 000000000000
29715
55d341877316 bundlerepo: add support for treemanifests in cg3 bundles
Augie Fackler <augie@google.com>
parents: 29699
diff changeset
   329
  $ hg incoming .hg/strip-backup/*
55d341877316 bundlerepo: add support for treemanifests in cg3 bundles
Augie Fackler <augie@google.com>
parents: 29699
diff changeset
   330
  comparing with .hg/strip-backup/*-backup.hg (glob)
55d341877316 bundlerepo: add support for treemanifests in cg3 bundles
Augie Fackler <augie@google.com>
parents: 29699
diff changeset
   331
  searching for changes
55d341877316 bundlerepo: add support for treemanifests in cg3 bundles
Augie Fackler <augie@google.com>
parents: 29699
diff changeset
   332
  changeset:   6:51cfd7b1e13b
55d341877316 bundlerepo: add support for treemanifests in cg3 bundles
Augie Fackler <augie@google.com>
parents: 29699
diff changeset
   333
  tag:         tip
55d341877316 bundlerepo: add support for treemanifests in cg3 bundles
Augie Fackler <augie@google.com>
parents: 29699
diff changeset
   334
  user:        test
55d341877316 bundlerepo: add support for treemanifests in cg3 bundles
Augie Fackler <augie@google.com>
parents: 29699
diff changeset
   335
  date:        Thu Jan 01 00:00:00 1970 +0000
55d341877316 bundlerepo: add support for treemanifests in cg3 bundles
Augie Fackler <augie@google.com>
parents: 29699
diff changeset
   336
  summary:     modify dir1/a
55d341877316 bundlerepo: add support for treemanifests in cg3 bundles
Augie Fackler <augie@google.com>
parents: 29699
diff changeset
   337
  
55d341877316 bundlerepo: add support for treemanifests in cg3 bundles
Augie Fackler <augie@google.com>
parents: 29699
diff changeset
   338
  $ hg pull .hg/strip-backup/*
55d341877316 bundlerepo: add support for treemanifests in cg3 bundles
Augie Fackler <augie@google.com>
parents: 29699
diff changeset
   339
  pulling from .hg/strip-backup/51cfd7b1e13b-78a2f3ed-backup.hg
55d341877316 bundlerepo: add support for treemanifests in cg3 bundles
Augie Fackler <augie@google.com>
parents: 29699
diff changeset
   340
  searching for changes
55d341877316 bundlerepo: add support for treemanifests in cg3 bundles
Augie Fackler <augie@google.com>
parents: 29699
diff changeset
   341
  adding changesets
55d341877316 bundlerepo: add support for treemanifests in cg3 bundles
Augie Fackler <augie@google.com>
parents: 29699
diff changeset
   342
  adding manifests
55d341877316 bundlerepo: add support for treemanifests in cg3 bundles
Augie Fackler <augie@google.com>
parents: 29699
diff changeset
   343
  adding file changes
55d341877316 bundlerepo: add support for treemanifests in cg3 bundles
Augie Fackler <augie@google.com>
parents: 29699
diff changeset
   344
  added 1 changesets with 1 changes to 1 files
55d341877316 bundlerepo: add support for treemanifests in cg3 bundles
Augie Fackler <augie@google.com>
parents: 29699
diff changeset
   345
  (run 'hg update' to get a working copy)
55d341877316 bundlerepo: add support for treemanifests in cg3 bundles
Augie Fackler <augie@google.com>
parents: 29699
diff changeset
   346
  $ hg --config extensions.strip= strip tip
55d341877316 bundlerepo: add support for treemanifests in cg3 bundles
Augie Fackler <augie@google.com>
parents: 29699
diff changeset
   347
  saved backup bundle to $TESTTMP/repo-mixed/.hg/strip-backup/*-backup.hg (glob)
27930
7cbb3a01fa38 repair: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27752
diff changeset
   348
  $ hg unbundle -q .hg/strip-backup/*
29464
87c184c9bfef treemanifests: actually strip directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 29371
diff changeset
   349
  $ hg debugindex --dir dir1
87c184c9bfef treemanifests: actually strip directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 29371
diff changeset
   350
     rev    offset  length  delta linkrev nodeid       p1           p2
87c184c9bfef treemanifests: actually strip directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 29371
diff changeset
   351
       0         0     127     -1       4 064927a0648a 000000000000 000000000000
87c184c9bfef treemanifests: actually strip directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 29371
diff changeset
   352
       1       127     111      0       5 25ecb8cb8618 000000000000 000000000000
87c184c9bfef treemanifests: actually strip directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 29371
diff changeset
   353
       2       238      55      1       6 5b16163a30c6 25ecb8cb8618 000000000000
27930
7cbb3a01fa38 repair: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27752
diff changeset
   354
  $ hg st --change tip
7cbb3a01fa38 repair: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27752
diff changeset
   355
  M dir1/a
7cbb3a01fa38 repair: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27752
diff changeset
   356
27931
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   357
Shelving and unshelving should work
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   358
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   359
  $ echo foo >> dir1/a
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   360
  $ hg --config extensions.shelve= shelve
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   361
  shelved as default
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   362
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   363
  $ hg --config extensions.shelve= unshelve
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   364
  unshelving change 'default'
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   365
  $ hg diff --nodates
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   366
  diff -r 708a273da119 dir1/a
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   367
  --- a/dir1/a
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   368
  +++ b/dir1/a
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   369
  @@ -1,1 +1,2 @@
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   370
   1
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   371
  +foo
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   372
27938
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   373
Pushing from treemanifest repo to an empty repo makes that a treemanifest repo
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   374
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   375
  $ cd ..
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   376
  $ hg init empty-repo
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   377
  $ cat << EOF >> empty-repo/.hg/hgrc
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   378
  > [experimental]
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   379
  > changegroup3=yes
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   380
  > EOF
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   381
  $ grep treemanifest empty-repo/.hg/requires
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   382
  [1]
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   383
  $ hg push -R repo -r 0 empty-repo
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   384
  pushing to empty-repo
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   385
  searching for changes
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   386
  adding changesets
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   387
  adding manifests
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   388
  adding file changes
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   389
  added 1 changesets with 2 changes to 2 files
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   390
  $ grep treemanifest empty-repo/.hg/requires
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   391
  treemanifest
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   392
27946
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   393
Pushing to an empty repo works
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   394
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   395
  $ hg --config experimental.treemanifest=1 init clone
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   396
  $ grep treemanifest clone/.hg/requires
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   397
  treemanifest
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   398
  $ hg push -R repo clone
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   399
  pushing to clone
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   400
  searching for changes
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   401
  adding changesets
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   402
  adding manifests
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   403
  adding file changes
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   404
  added 11 changesets with 15 changes to 10 files (+3 heads)
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   405
  $ grep treemanifest clone/.hg/requires
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   406
  treemanifest
28240
1ac8ce137377 changegroup: fix treemanifests on merges
Martin von Zweigbergk <martinvonz@google.com>
parents: 28214
diff changeset
   407
  $ hg -R clone verify
1ac8ce137377 changegroup: fix treemanifests on merges
Martin von Zweigbergk <martinvonz@google.com>
parents: 28214
diff changeset
   408
  checking changesets
1ac8ce137377 changegroup: fix treemanifests on merges
Martin von Zweigbergk <martinvonz@google.com>
parents: 28214
diff changeset
   409
  checking manifests
1ac8ce137377 changegroup: fix treemanifests on merges
Martin von Zweigbergk <martinvonz@google.com>
parents: 28214
diff changeset
   410
  checking directory manifests
1ac8ce137377 changegroup: fix treemanifests on merges
Martin von Zweigbergk <martinvonz@google.com>
parents: 28214
diff changeset
   411
  crosschecking files in changesets and manifests
1ac8ce137377 changegroup: fix treemanifests on merges
Martin von Zweigbergk <martinvonz@google.com>
parents: 28214
diff changeset
   412
  checking files
1ac8ce137377 changegroup: fix treemanifests on merges
Martin von Zweigbergk <martinvonz@google.com>
parents: 28214
diff changeset
   413
  10 files, 11 changesets, 15 total revisions
27946
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   414
25231
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   415
Create deeper repo with tree manifests.
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   416
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   417
  $ hg --config experimental.treemanifest=True init deeprepo
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   418
  $ cd deeprepo
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   419
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   420
  $ mkdir .A
25231
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   421
  $ mkdir b
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   422
  $ mkdir b/bar
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   423
  $ mkdir b/bar/orange
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   424
  $ mkdir b/bar/orange/fly
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   425
  $ mkdir b/foo
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   426
  $ mkdir b/foo/apple
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   427
  $ mkdir b/foo/apple/bees
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   428
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   429
  $ touch .A/one.txt
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   430
  $ touch .A/two.txt
25231
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   431
  $ touch b/bar/fruits.txt
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   432
  $ touch b/bar/orange/fly/gnat.py
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   433
  $ touch b/bar/orange/fly/housefly.txt
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   434
  $ touch b/foo/apple/bees/flower.py
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   435
  $ touch c.txt
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   436
  $ touch d.py
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   437
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   438
  $ hg ci -Aqm 'initial'
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   439
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   440
  $ echo >> .A/one.txt
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   441
  $ echo >> .A/two.txt
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   442
  $ echo >> b/bar/fruits.txt
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   443
  $ echo >> b/bar/orange/fly/gnat.py
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   444
  $ echo >> b/bar/orange/fly/housefly.txt
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   445
  $ echo >> b/foo/apple/bees/flower.py
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   446
  $ echo >> c.txt
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   447
  $ echo >> d.py
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   448
  $ hg ci -Aqm 'second'
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   449
25231
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   450
We'll see that visitdir works by removing some treemanifest revlogs and running
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   451
the files command with various parameters.
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   452
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   453
Test files from the root.
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   454
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   455
  $ hg files -r .
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   456
  .A/one.txt (glob)
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   457
  .A/two.txt (glob)
25299
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   458
  b/bar/fruits.txt (glob)
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   459
  b/bar/orange/fly/gnat.py (glob)
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   460
  b/bar/orange/fly/housefly.txt (glob)
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   461
  b/foo/apple/bees/flower.py (glob)
25231
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   462
  c.txt
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   463
  d.py
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   464
25362
20ad936ac5d2 treemanifest: visit directory 'foo' when given e.g. '-X foo/ba?'
Martin von Zweigbergk <martinvonz@google.com>
parents: 25299
diff changeset
   465
Excludes with a glob should not exclude everything from the glob's root
20ad936ac5d2 treemanifest: visit directory 'foo' when given e.g. '-X foo/ba?'
Martin von Zweigbergk <martinvonz@google.com>
parents: 25299
diff changeset
   466
20ad936ac5d2 treemanifest: visit directory 'foo' when given e.g. '-X foo/ba?'
Martin von Zweigbergk <martinvonz@google.com>
parents: 25299
diff changeset
   467
  $ hg files -r . -X 'b/fo?' b
25398
633d07045494 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25362
diff changeset
   468
  b/bar/fruits.txt (glob)
633d07045494 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25362
diff changeset
   469
  b/bar/orange/fly/gnat.py (glob)
633d07045494 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25362
diff changeset
   470
  b/bar/orange/fly/housefly.txt (glob)
30556
c059286a0f9c tests: replace "cp -r" with "cp -R"
Jun Wu <quark@fb.com>
parents: 29715
diff changeset
   471
  $ cp -R .hg/store .hg/store-copy
25362
20ad936ac5d2 treemanifest: visit directory 'foo' when given e.g. '-X foo/ba?'
Martin von Zweigbergk <martinvonz@google.com>
parents: 25299
diff changeset
   472
25231
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   473
Test files for a subdirectory.
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   474
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   475
  $ rm -r .hg/store/meta/~2e_a
25231
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   476
  $ hg files -r . b
25299
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   477
  b/bar/fruits.txt (glob)
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   478
  b/bar/orange/fly/gnat.py (glob)
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   479
  b/bar/orange/fly/housefly.txt (glob)
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   480
  b/foo/apple/bees/flower.py (glob)
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   481
  $ hg diff -r '.^' -r . --stat b
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   482
   b/bar/fruits.txt              |  1 +
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   483
   b/bar/orange/fly/gnat.py      |  1 +
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   484
   b/bar/orange/fly/housefly.txt |  1 +
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   485
   b/foo/apple/bees/flower.py    |  1 +
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   486
   4 files changed, 4 insertions(+), 0 deletions(-)
30556
c059286a0f9c tests: replace "cp -r" with "cp -R"
Jun Wu <quark@fb.com>
parents: 29715
diff changeset
   487
  $ cp -R .hg/store-copy/. .hg/store
25231
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   488
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   489
Test files with just includes and excludes.
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   490
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   491
  $ rm -r .hg/store/meta/~2e_a
28005
ed94b24a3bb2 tests: simplify treemanifest test by backing up entire .hg/store
Martin von Zweigbergk <martinvonz@google.com>
parents: 27953
diff changeset
   492
  $ rm -r .hg/store/meta/b/bar/orange/fly
ed94b24a3bb2 tests: simplify treemanifest test by backing up entire .hg/store
Martin von Zweigbergk <martinvonz@google.com>
parents: 27953
diff changeset
   493
  $ rm -r .hg/store/meta/b/foo/apple/bees
25362
20ad936ac5d2 treemanifest: visit directory 'foo' when given e.g. '-X foo/ba?'
Martin von Zweigbergk <martinvonz@google.com>
parents: 25299
diff changeset
   494
  $ hg files -r . -I path:b/bar -X path:b/bar/orange/fly -I path:b/foo -X path:b/foo/apple/bees
25299
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   495
  b/bar/fruits.txt (glob)
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   496
  $ hg diff -r '.^' -r . --stat -I path:b/bar -X path:b/bar/orange/fly -I path:b/foo -X path:b/foo/apple/bees
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   497
   b/bar/fruits.txt |  1 +
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   498
   1 files changed, 1 insertions(+), 0 deletions(-)
30556
c059286a0f9c tests: replace "cp -r" with "cp -R"
Jun Wu <quark@fb.com>
parents: 29715
diff changeset
   499
  $ cp -R .hg/store-copy/. .hg/store
25231
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   500
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   501
Test files for a subdirectory, excluding a directory within it.
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   502
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   503
  $ rm -r .hg/store/meta/~2e_a
28005
ed94b24a3bb2 tests: simplify treemanifest test by backing up entire .hg/store
Martin von Zweigbergk <martinvonz@google.com>
parents: 27953
diff changeset
   504
  $ rm -r .hg/store/meta/b/foo
25362
20ad936ac5d2 treemanifest: visit directory 'foo' when given e.g. '-X foo/ba?'
Martin von Zweigbergk <martinvonz@google.com>
parents: 25299
diff changeset
   505
  $ hg files -r . -X path:b/foo b
25299
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   506
  b/bar/fruits.txt (glob)
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   507
  b/bar/orange/fly/gnat.py (glob)
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   508
  b/bar/orange/fly/housefly.txt (glob)
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   509
  $ hg diff -r '.^' -r . --stat -X path:b/foo b
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   510
   b/bar/fruits.txt              |  1 +
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   511
   b/bar/orange/fly/gnat.py      |  1 +
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   512
   b/bar/orange/fly/housefly.txt |  1 +
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   513
   3 files changed, 3 insertions(+), 0 deletions(-)
30556
c059286a0f9c tests: replace "cp -r" with "cp -R"
Jun Wu <quark@fb.com>
parents: 29715
diff changeset
   514
  $ cp -R .hg/store-copy/. .hg/store
25231
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   515
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   516
Test files for a sub directory, including only a directory within it, and
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   517
including an unrelated directory.
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   518
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   519
  $ rm -r .hg/store/meta/~2e_a
28005
ed94b24a3bb2 tests: simplify treemanifest test by backing up entire .hg/store
Martin von Zweigbergk <martinvonz@google.com>
parents: 27953
diff changeset
   520
  $ rm -r .hg/store/meta/b/foo
25362
20ad936ac5d2 treemanifest: visit directory 'foo' when given e.g. '-X foo/ba?'
Martin von Zweigbergk <martinvonz@google.com>
parents: 25299
diff changeset
   521
  $ hg files -r . -I path:b/bar/orange -I path:a b
25299
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   522
  b/bar/orange/fly/gnat.py (glob)
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   523
  b/bar/orange/fly/housefly.txt (glob)
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   524
  $ hg diff -r '.^' -r . --stat -I path:b/bar/orange -I path:a b
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   525
   b/bar/orange/fly/gnat.py      |  1 +
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   526
   b/bar/orange/fly/housefly.txt |  1 +
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   527
   2 files changed, 2 insertions(+), 0 deletions(-)
30556
c059286a0f9c tests: replace "cp -r" with "cp -R"
Jun Wu <quark@fb.com>
parents: 29715
diff changeset
   528
  $ cp -R .hg/store-copy/. .hg/store
25231
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   529
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   530
Test files for a pattern, including a directory, and excluding a directory
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   531
within that.
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   532
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   533
  $ rm -r .hg/store/meta/~2e_a
28005
ed94b24a3bb2 tests: simplify treemanifest test by backing up entire .hg/store
Martin von Zweigbergk <martinvonz@google.com>
parents: 27953
diff changeset
   534
  $ rm -r .hg/store/meta/b/foo
ed94b24a3bb2 tests: simplify treemanifest test by backing up entire .hg/store
Martin von Zweigbergk <martinvonz@google.com>
parents: 27953
diff changeset
   535
  $ rm -r .hg/store/meta/b/bar/orange
25362
20ad936ac5d2 treemanifest: visit directory 'foo' when given e.g. '-X foo/ba?'
Martin von Zweigbergk <martinvonz@google.com>
parents: 25299
diff changeset
   536
  $ hg files -r . glob:**.txt -I path:b/bar -X path:b/bar/orange
25299
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   537
  b/bar/fruits.txt (glob)
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   538
  $ hg diff -r '.^' -r . --stat glob:**.txt -I path:b/bar -X path:b/bar/orange
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   539
   b/bar/fruits.txt |  1 +
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   540
   1 files changed, 1 insertions(+), 0 deletions(-)
30556
c059286a0f9c tests: replace "cp -r" with "cp -R"
Jun Wu <quark@fb.com>
parents: 29715
diff changeset
   541
  $ cp -R .hg/store-copy/. .hg/store
25231
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   542
27432
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   543
Add some more changes to the deep repo
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   544
  $ echo narf >> b/bar/fruits.txt
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   545
  $ hg ci -m narf
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   546
  $ echo troz >> b/bar/orange/fly/gnat.py
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   547
  $ hg ci -m troz
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   548
28031
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   549
Verify works
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   550
  $ hg verify
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   551
  checking changesets
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   552
  checking manifests
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   553
  checking directory manifests
28031
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   554
  crosschecking files in changesets and manifests
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   555
  checking files
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   556
  8 files, 4 changesets, 18 total revisions
28031
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   557
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   558
Dirlogs are included in fncache
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   559
  $ grep meta/.A/00manifest.i .hg/store/fncache
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   560
  meta/.A/00manifest.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   561
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   562
Rebuilt fncache includes dirlogs
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   563
  $ rm .hg/store/fncache
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   564
  $ hg debugrebuildfncache
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   565
  adding data/.A/one.txt.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   566
  adding data/.A/two.txt.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   567
  adding data/b/bar/fruits.txt.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   568
  adding data/b/bar/orange/fly/gnat.py.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   569
  adding data/b/bar/orange/fly/housefly.txt.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   570
  adding data/b/foo/apple/bees/flower.py.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   571
  adding data/c.txt.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   572
  adding data/d.py.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   573
  adding meta/.A/00manifest.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   574
  adding meta/b/00manifest.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   575
  adding meta/b/bar/00manifest.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   576
  adding meta/b/bar/orange/00manifest.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   577
  adding meta/b/bar/orange/fly/00manifest.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   578
  adding meta/b/foo/00manifest.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   579
  adding meta/b/foo/apple/00manifest.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   580
  adding meta/b/foo/apple/bees/00manifest.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   581
  16 items added, 0 removed from fncache
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   582
28168
1a943a3a78ea tests: put test-treemanifest.t on a port diet
timeless <timeless@mozdev.org>
parents: 28063
diff changeset
   583
Finish first server
1a943a3a78ea tests: put test-treemanifest.t on a port diet
timeless <timeless@mozdev.org>
parents: 28063
diff changeset
   584
  $ killdaemons.py
1a943a3a78ea tests: put test-treemanifest.t on a port diet
timeless <timeless@mozdev.org>
parents: 28063
diff changeset
   585
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   586
Back up the recently added revlogs
30556
c059286a0f9c tests: replace "cp -r" with "cp -R"
Jun Wu <quark@fb.com>
parents: 29715
diff changeset
   587
  $ cp -R .hg/store .hg/store-newcopy
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   588
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   589
Verify reports missing dirlog
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   590
  $ rm .hg/store/meta/b/00manifest.*
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   591
  $ hg verify
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   592
  checking changesets
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   593
  checking manifests
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   594
  checking directory manifests
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   595
   0: empty or missing b/
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   596
   b/@0: parent-directory manifest refers to unknown revision 67688a370455
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   597
   b/@1: parent-directory manifest refers to unknown revision f065da70369e
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   598
   b/@2: parent-directory manifest refers to unknown revision ac0d30948e0b
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   599
   b/@3: parent-directory manifest refers to unknown revision 367152e6af28
28204
962921c330b0 verify: check for orphaned dirlogs
Martin von Zweigbergk <martinvonz@google.com>
parents: 28203
diff changeset
   600
  warning: orphan revlog 'meta/b/bar/00manifest.i'
962921c330b0 verify: check for orphaned dirlogs
Martin von Zweigbergk <martinvonz@google.com>
parents: 28203
diff changeset
   601
  warning: orphan revlog 'meta/b/bar/orange/00manifest.i'
962921c330b0 verify: check for orphaned dirlogs
Martin von Zweigbergk <martinvonz@google.com>
parents: 28203
diff changeset
   602
  warning: orphan revlog 'meta/b/bar/orange/fly/00manifest.i'
962921c330b0 verify: check for orphaned dirlogs
Martin von Zweigbergk <martinvonz@google.com>
parents: 28203
diff changeset
   603
  warning: orphan revlog 'meta/b/foo/00manifest.i'
962921c330b0 verify: check for orphaned dirlogs
Martin von Zweigbergk <martinvonz@google.com>
parents: 28203
diff changeset
   604
  warning: orphan revlog 'meta/b/foo/apple/00manifest.i'
962921c330b0 verify: check for orphaned dirlogs
Martin von Zweigbergk <martinvonz@google.com>
parents: 28203
diff changeset
   605
  warning: orphan revlog 'meta/b/foo/apple/bees/00manifest.i'
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   606
  crosschecking files in changesets and manifests
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   607
   b/bar/fruits.txt@0: in changeset but not in manifest
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   608
   b/bar/orange/fly/gnat.py@0: in changeset but not in manifest
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   609
   b/bar/orange/fly/housefly.txt@0: in changeset but not in manifest
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   610
   b/foo/apple/bees/flower.py@0: in changeset but not in manifest
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   611
  checking files
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   612
  8 files, 4 changesets, 18 total revisions
28204
962921c330b0 verify: check for orphaned dirlogs
Martin von Zweigbergk <martinvonz@google.com>
parents: 28203
diff changeset
   613
  6 warnings encountered!
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   614
  9 integrity errors encountered!
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   615
  (first damaged changeset appears to be 0)
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   616
  [1]
30556
c059286a0f9c tests: replace "cp -r" with "cp -R"
Jun Wu <quark@fb.com>
parents: 29715
diff changeset
   617
  $ cp -R .hg/store-newcopy/. .hg/store
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   618
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   619
Verify reports missing dirlog entry
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   620
  $ mv -f .hg/store-copy/meta/b/00manifest.* .hg/store/meta/b/
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   621
  $ hg verify
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   622
  checking changesets
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   623
  checking manifests
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   624
  checking directory manifests
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   625
   b/@2: parent-directory manifest refers to unknown revision ac0d30948e0b
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   626
   b/@3: parent-directory manifest refers to unknown revision 367152e6af28
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   627
   b/bar/@?: rev 2 points to unexpected changeset 2
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   628
   b/bar/@?: 44d7e1146e0d not in parent-directory manifest
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   629
   b/bar/@?: rev 3 points to unexpected changeset 3
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   630
   b/bar/@?: 70b10c6b17b7 not in parent-directory manifest
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   631
   b/bar/orange/@?: rev 2 points to unexpected changeset 3
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   632
   (expected None)
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   633
   b/bar/orange/fly/@?: rev 2 points to unexpected changeset 3
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   634
   (expected None)
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   635
  crosschecking files in changesets and manifests
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   636
  checking files
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   637
  8 files, 4 changesets, 18 total revisions
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   638
  2 warnings encountered!
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   639
  8 integrity errors encountered!
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   640
  (first damaged changeset appears to be 2)
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   641
  [1]
30556
c059286a0f9c tests: replace "cp -r" with "cp -R"
Jun Wu <quark@fb.com>
parents: 29715
diff changeset
   642
  $ cp -R .hg/store-newcopy/. .hg/store
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   643
27432
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   644
Test cloning a treemanifest repo over http.
28168
1a943a3a78ea tests: put test-treemanifest.t on a port diet
timeless <timeless@mozdev.org>
parents: 28063
diff changeset
   645
  $ hg serve -p $HGPORT -d --pid-file=hg.pid --errorlog=errors.log
27432
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   646
  $ cat hg.pid >> $DAEMON_PIDS
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   647
  $ cd ..
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   648
We can clone even with the knob turned off and we'll get a treemanifest repo.
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   649
  $ hg clone --config experimental.treemanifest=False \
27752
29cfc474c5fd changegroup3: introduce experimental.changegroup3 boolean config
Martin von Zweigbergk <martinvonz@google.com>
parents: 27432
diff changeset
   650
  >   --config experimental.changegroup3=True \
28168
1a943a3a78ea tests: put test-treemanifest.t on a port diet
timeless <timeless@mozdev.org>
parents: 28063
diff changeset
   651
  >   http://localhost:$HGPORT deepclone
27432
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   652
  requesting all changes
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   653
  adding changesets
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   654
  adding manifests
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   655
  adding file changes
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   656
  added 4 changesets with 18 changes to 8 files
27432
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   657
  updating to branch default
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   658
  8 files updated, 0 files merged, 0 files removed, 0 files unresolved
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   659
No server errors.
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   660
  $ cat deeprepo/errors.log
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   661
requires got updated to include treemanifest
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   662
  $ cat deepclone/.hg/requires | grep treemanifest
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   663
  treemanifest
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   664
Tree manifest revlogs exist.
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   665
  $ find deepclone/.hg/store/meta | sort
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   666
  deepclone/.hg/store/meta
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   667
  deepclone/.hg/store/meta/b
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   668
  deepclone/.hg/store/meta/b/00manifest.i
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   669
  deepclone/.hg/store/meta/b/bar
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   670
  deepclone/.hg/store/meta/b/bar/00manifest.i
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   671
  deepclone/.hg/store/meta/b/bar/orange
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   672
  deepclone/.hg/store/meta/b/bar/orange/00manifest.i
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   673
  deepclone/.hg/store/meta/b/bar/orange/fly
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   674
  deepclone/.hg/store/meta/b/bar/orange/fly/00manifest.i
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   675
  deepclone/.hg/store/meta/b/foo
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   676
  deepclone/.hg/store/meta/b/foo/00manifest.i
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   677
  deepclone/.hg/store/meta/b/foo/apple
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   678
  deepclone/.hg/store/meta/b/foo/apple/00manifest.i
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   679
  deepclone/.hg/store/meta/b/foo/apple/bees
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   680
  deepclone/.hg/store/meta/b/foo/apple/bees/00manifest.i
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   681
  deepclone/.hg/store/meta/~2e_a
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   682
  deepclone/.hg/store/meta/~2e_a/00manifest.i
27432
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   683
Verify passes.
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   684
  $ cd deepclone
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   685
  $ hg verify
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   686
  checking changesets
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   687
  checking manifests
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   688
  checking directory manifests
27432
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   689
  crosschecking files in changesets and manifests
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   690
  checking files
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   691
  8 files, 4 changesets, 18 total revisions
27432
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   692
  $ cd ..
28006
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   693
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   694
Create clones using old repo formats to use in later tests
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   695
  $ hg clone --config format.usestore=False \
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   696
  >   --config experimental.changegroup3=True \
28168
1a943a3a78ea tests: put test-treemanifest.t on a port diet
timeless <timeless@mozdev.org>
parents: 28063
diff changeset
   697
  >   http://localhost:$HGPORT deeprepo-basicstore
28006
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   698
  requesting all changes
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   699
  adding changesets
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   700
  adding manifests
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   701
  adding file changes
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   702
  added 4 changesets with 18 changes to 8 files
28006
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   703
  updating to branch default
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   704
  8 files updated, 0 files merged, 0 files removed, 0 files unresolved
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   705
  $ cd deeprepo-basicstore
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   706
  $ grep store .hg/requires
28006
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   707
  [1]
28168
1a943a3a78ea tests: put test-treemanifest.t on a port diet
timeless <timeless@mozdev.org>
parents: 28063
diff changeset
   708
  $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --errorlog=errors.log
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   709
  $ cat hg.pid >> $DAEMON_PIDS
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   710
  $ cd ..
28006
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   711
  $ hg clone --config format.usefncache=False \
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   712
  >   --config experimental.changegroup3=True \
28168
1a943a3a78ea tests: put test-treemanifest.t on a port diet
timeless <timeless@mozdev.org>
parents: 28063
diff changeset
   713
  >   http://localhost:$HGPORT deeprepo-encodedstore
28006
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   714
  requesting all changes
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   715
  adding changesets
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   716
  adding manifests
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   717
  adding file changes
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   718
  added 4 changesets with 18 changes to 8 files
28006
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   719
  updating to branch default
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   720
  8 files updated, 0 files merged, 0 files removed, 0 files unresolved
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   721
  $ cd deeprepo-encodedstore
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   722
  $ grep fncache .hg/requires
28006
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   723
  [1]
28168
1a943a3a78ea tests: put test-treemanifest.t on a port diet
timeless <timeless@mozdev.org>
parents: 28063
diff changeset
   724
  $ hg serve -p $HGPORT2 -d --pid-file=hg.pid --errorlog=errors.log
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   725
  $ cat hg.pid >> $DAEMON_PIDS
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   726
  $ cd ..
28006
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   727
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   728
Local clone with basicstore
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   729
  $ hg clone -U deeprepo-basicstore local-clone-basicstore
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   730
  $ hg -R local-clone-basicstore verify
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   731
  checking changesets
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   732
  checking manifests
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   733
  checking directory manifests
28006
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   734
  crosschecking files in changesets and manifests
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   735
  checking files
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   736
  8 files, 4 changesets, 18 total revisions
28006
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   737
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   738
Local clone with encodedstore
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   739
  $ hg clone -U deeprepo-encodedstore local-clone-encodedstore
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   740
  $ hg -R local-clone-encodedstore verify
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   741
  checking changesets
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   742
  checking manifests
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   743
  checking directory manifests
28006
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   744
  crosschecking files in changesets and manifests
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   745
  checking files
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   746
  8 files, 4 changesets, 18 total revisions
28006
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   747
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   748
Local clone with fncachestore
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   749
  $ hg clone -U deeprepo local-clone-fncachestore
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   750
  $ hg -R local-clone-fncachestore verify
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   751
  checking changesets
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   752
  checking manifests
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   753
  checking directory manifests
28006
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   754
  crosschecking files in changesets and manifests
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   755
  checking files
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   756
  8 files, 4 changesets, 18 total revisions
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   757
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   758
Stream clone with basicstore
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   759
  $ hg clone --config experimental.changegroup3=True --uncompressed -U \
28168
1a943a3a78ea tests: put test-treemanifest.t on a port diet
timeless <timeless@mozdev.org>
parents: 28063
diff changeset
   760
  >   http://localhost:$HGPORT1 stream-clone-basicstore
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   761
  streaming all changes
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   762
  18 files to transfer, * of data (glob)
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   763
  transferred * in * seconds (*) (glob)
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   764
  searching for changes
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   765
  no changes found
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   766
  $ hg -R stream-clone-basicstore verify
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   767
  checking changesets
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   768
  checking manifests
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   769
  checking directory manifests
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   770
  crosschecking files in changesets and manifests
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   771
  checking files
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   772
  8 files, 4 changesets, 18 total revisions
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   773
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   774
Stream clone with encodedstore
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   775
  $ hg clone --config experimental.changegroup3=True --uncompressed -U \
28168
1a943a3a78ea tests: put test-treemanifest.t on a port diet
timeless <timeless@mozdev.org>
parents: 28063
diff changeset
   776
  >   http://localhost:$HGPORT2 stream-clone-encodedstore
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   777
  streaming all changes
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   778
  18 files to transfer, * of data (glob)
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   779
  transferred * in * seconds (*) (glob)
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   780
  searching for changes
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   781
  no changes found
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   782
  $ hg -R stream-clone-encodedstore verify
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   783
  checking changesets
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   784
  checking manifests
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   785
  checking directory manifests
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   786
  crosschecking files in changesets and manifests
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   787
  checking files
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   788
  8 files, 4 changesets, 18 total revisions
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   789
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   790
Stream clone with fncachestore
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   791
  $ hg clone --config experimental.changegroup3=True --uncompressed -U \
28168
1a943a3a78ea tests: put test-treemanifest.t on a port diet
timeless <timeless@mozdev.org>
parents: 28063
diff changeset
   792
  >   http://localhost:$HGPORT stream-clone-fncachestore
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   793
  streaming all changes
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   794
  18 files to transfer, * of data (glob)
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   795
  transferred * in * seconds (*) (glob)
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   796
  searching for changes
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   797
  no changes found
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   798
  $ hg -R stream-clone-fncachestore verify
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   799
  checking changesets
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   800
  checking manifests
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   801
  checking directory manifests
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   802
  crosschecking files in changesets and manifests
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   803
  checking files
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   804
  8 files, 4 changesets, 18 total revisions
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   805
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   806
Packed bundle
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   807
  $ hg -R deeprepo debugcreatestreamclonebundle repo-packed.hg
31262
1871a1ee64ed treemanifest: add tests covering hg diff of partial trees
Durham Goode <durham@fb.com>
parents: 30556
diff changeset
   808
  writing 5330 bytes for 18 files
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   809
  bundle requirements: generaldelta, revlogv1, treemanifest
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   810
  $ hg debugbundle --spec repo-packed.hg
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   811
  none-packed1;requirements%3Dgeneraldelta%2Crevlogv1%2Ctreemanifest
28669
c4b727795d6a bundle: avoid crash when no good changegroup version found
Martin von Zweigbergk <martinvonz@google.com>
parents: 28335
diff changeset
   812
c4b727795d6a bundle: avoid crash when no good changegroup version found
Martin von Zweigbergk <martinvonz@google.com>
parents: 28335
diff changeset
   813
Bundle with changegroup2 is not supported
c4b727795d6a bundle: avoid crash when no good changegroup version found
Martin von Zweigbergk <martinvonz@google.com>
parents: 28335
diff changeset
   814
c4b727795d6a bundle: avoid crash when no good changegroup version found
Martin von Zweigbergk <martinvonz@google.com>
parents: 28335
diff changeset
   815
  $ hg -R deeprepo bundle --all -t v2 deeprepo.bundle
c4b727795d6a bundle: avoid crash when no good changegroup version found
Martin von Zweigbergk <martinvonz@google.com>
parents: 28335
diff changeset
   816
  abort: repository does not support bundle version 02
c4b727795d6a bundle: avoid crash when no good changegroup version found
Martin von Zweigbergk <martinvonz@google.com>
parents: 28335
diff changeset
   817
  [255]
29371
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   818
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   819
Pull does not include changegroup for manifest the client already has from
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   820
other branch
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   821
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   822
  $ mkdir grafted-dir-repo
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   823
  $ cd grafted-dir-repo
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   824
  $ hg --config experimental.treemanifest=1 init
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   825
  $ mkdir dir
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   826
  $ echo a > dir/file
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   827
  $ echo a > file
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   828
  $ hg ci -Am initial
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   829
  adding dir/file
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   830
  adding file
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   831
  $ echo b > dir/file
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   832
  $ hg ci -m updated
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   833
  $ hg co '.^'
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   834
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   835
  $ hg revert -r tip dir/
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   836
  reverting dir/file (glob)
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   837
  $ echo b > file # to make sure root manifest is sent
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   838
  $ hg ci -m grafted
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   839
  created new head
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   840
  $ cd ..
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   841
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   842
  $ hg --config experimental.treemanifest=1 clone --pull -r 1 \
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   843
  >   grafted-dir-repo grafted-dir-repo-clone
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   844
  adding changesets
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   845
  adding manifests
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   846
  adding file changes
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   847
  added 2 changesets with 3 changes to 2 files
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   848
  updating to branch default
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   849
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   850
  $ cd grafted-dir-repo-clone
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   851
  $ hg pull -r 2
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   852
  pulling from $TESTTMP/grafted-dir-repo (glob)
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   853
  searching for changes
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   854
  adding changesets
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   855
  adding manifests
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   856
  adding file changes
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   857
  added 1 changesets with 1 changes to 1 files (+1 heads)
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   858
  (run 'hg heads' to see heads, 'hg merge' to merge)
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   859
31294
c134a33b1d73 treemanifest: make node reuse match flat manifest behavior
Durham Goode <durham@fb.com>
parents: 31262
diff changeset
   860
Committing a empty commit does not duplicate root treemanifest
c134a33b1d73 treemanifest: make node reuse match flat manifest behavior
Durham Goode <durham@fb.com>
parents: 31262
diff changeset
   861
  $ echo z >> z
c134a33b1d73 treemanifest: make node reuse match flat manifest behavior
Durham Goode <durham@fb.com>
parents: 31262
diff changeset
   862
  $ hg commit -Aqm 'pre-empty commit'
c134a33b1d73 treemanifest: make node reuse match flat manifest behavior
Durham Goode <durham@fb.com>
parents: 31262
diff changeset
   863
  $ hg rm z
c134a33b1d73 treemanifest: make node reuse match flat manifest behavior
Durham Goode <durham@fb.com>
parents: 31262
diff changeset
   864
  $ hg commit --amend -m 'empty commit'
c134a33b1d73 treemanifest: make node reuse match flat manifest behavior
Durham Goode <durham@fb.com>
parents: 31262
diff changeset
   865
  saved backup bundle to $TESTTMP/grafted-dir-repo-clone/.hg/strip-backup/cb99d5717cea-de37743b-amend-backup.hg (glob)
c134a33b1d73 treemanifest: make node reuse match flat manifest behavior
Durham Goode <durham@fb.com>
parents: 31262
diff changeset
   866
  $ hg log -r 'tip + tip^' -T '{manifest}\n'
c134a33b1d73 treemanifest: make node reuse match flat manifest behavior
Durham Goode <durham@fb.com>
parents: 31262
diff changeset
   867
  1:678d3574b88c
c134a33b1d73 treemanifest: make node reuse match flat manifest behavior
Durham Goode <durham@fb.com>
parents: 31262
diff changeset
   868
  1:678d3574b88c
c134a33b1d73 treemanifest: make node reuse match flat manifest behavior
Durham Goode <durham@fb.com>
parents: 31262
diff changeset
   869
  $ hg --config extensions.strip= strip -r . -q