tests/test-treemanifest.t
author Yuya Nishihara <yuya@tcha.org>
Sun, 22 May 2016 11:43:18 +0900
changeset 29544 024e8f82f3de
parent 29464 87c184c9bfef
child 29699 6943dacc3b4c
permissions -rw-r--r--
commandserver: add new forking server implemented without using SocketServer SocketServer.ForkingMixIn of Python 2.x has a couple of issues, such as: - race condition that leads to 100% CPU usage (Python 2.6) https://bugs.python.org/issue21491 - can't wait for children belonging to different process groups (Python 2.6) - leaves at least one zombie process (Python 2.6, 2.7) https://bugs.python.org/issue11109 The first two are critical because we do setpgid(0, 0) in child process to isolate terminal signals. The last one isn't, but ForkingMixIn seems to be doing silly. So there are two choices: a) backport and maintain SocketServer until we can drop support for Python 2.x b) replace SocketServer by simpler one and eliminate glue codes I chose (b) because it's great time for getting rid of utterly complicated SocketServer stuff, and preparing for future move towards prefork service. New unixforkingservice is implemented loosely based on chg 531f8ef64be6. It is monolithic but much simpler than SocketServer. unixservicehandler provides customizing points for chg, and it will be shared with future prefork service. Old unixservice class is still used by chgserver. It will be removed later. Thanks to Jun Wu for investigating these issues.
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
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    65
Revision is not created for unchanged directory
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    66
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    67
  $ mkdir dir2
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    68
  $ echo 3 > dir2/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    69
  $ hg add dir2
25153
1929d9c84028 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25119
diff changeset
    70
  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
    71
  $ hg debugindex --dir dir1 > before
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    72
  $ 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
    73
  $ hg debugindex --dir dir1 > after
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    74
  $ diff before after
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    75
  $ rm before after
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    76
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    77
Removing directory does not create an revlog entry
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    78
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    79
  $ hg rm dir1/dir1
25153
1929d9c84028 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25119
diff changeset
    80
  removing dir1/dir1/a (glob)
1929d9c84028 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25119
diff changeset
    81
  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
    82
  $ hg debugindex --dir dir1/dir1 > before
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    83
  $ 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
    84
  $ hg debugindex --dir dir1/dir1 > after
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    85
  $ diff before after
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    86
  $ rm before after
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    87
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    88
Check that hg files (calls treemanifest.walk()) works
25222
0de132d5328a treemanifest: lazily load manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 25153
diff changeset
    89
without loading all directory revlogs
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    90
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    91
  $ hg co 'desc("add dir2")'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    92
  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
    93
  $ 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
    94
  $ hg files -r . dir1
25153
1929d9c84028 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25119
diff changeset
    95
  dir1/a (glob)
1929d9c84028 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25119
diff changeset
    96
  dir1/b (glob)
1929d9c84028 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25119
diff changeset
    97
  dir1/dir1/a (glob)
1929d9c84028 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25119
diff changeset
    98
  dir1/dir1/b (glob)
1929d9c84028 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25119
diff changeset
    99
  dir1/dir2/a (glob)
1929d9c84028 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25119
diff changeset
   100
  dir1/dir2/b (glob)
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   101
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   102
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
   103
without loading all directory revlogs
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   104
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   105
  $ hg status --rev 'desc("add dir1")' --rev . dir1
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   106
  A dir1/dir1/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   107
  A dir1/dir1/b
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   108
  A dir1/dir2/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   109
  A dir1/dir2/b
25222
0de132d5328a treemanifest: lazily load manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 25153
diff changeset
   110
  $ 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
   111
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   112
Merge creates 2-parent revision of directory revlog
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   113
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   114
  $ echo 5 > dir1/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   115
  $ hg ci -Aqm 'modify dir1/a'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   116
  $ hg co '.^'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   117
  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
   118
  $ echo 6 > dir1/b
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   119
  $ hg ci -Aqm 'modify dir1/b'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   120
  $ hg merge 'desc("modify dir1/a")'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   121
  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
   122
  (branch merge, don't forget to commit)
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   123
  $ hg ci -m 'conflict-free merge involving dir1/'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   124
  $ cat dir1/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   125
  5
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   126
  $ cat dir1/b
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   127
  6
25119
49c583ca48c4 treemanifest: add --dir option to debug{revlog,data,index}
Martin von Zweigbergk <martinvonz@google.com>
parents: 25091
diff changeset
   128
  $ 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
   129
     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
   130
       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
   131
       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
   132
       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
   133
       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
   134
       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
   135
       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
   136
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   137
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
   138
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
   139
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   140
  $ hg co 'desc("add dir2")'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   141
  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
   142
  $ echo 8 > dir2/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   143
  $ hg ci -m 'modify dir2/a'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   144
  created new head
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   145
25119
49c583ca48c4 treemanifest: add --dir option to debug{revlog,data,index}
Martin von Zweigbergk <martinvonz@google.com>
parents: 25091
diff changeset
   146
  $ hg debugindex --dir dir2 > before
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   147
  $ hg merge 'desc("modify dir1/a")'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   148
  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
   149
  (branch merge, don't forget to commit)
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   150
  $ hg revert -r 'desc("modify dir2/a")' .
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   151
  reverting dir1/a (glob)
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   152
  $ 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
   153
  $ hg debugindex --dir dir2 > after
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   154
  $ diff before after
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   155
  $ rm before after
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   156
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   157
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
   158
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
   159
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   160
  $ hg co 'desc("modify dir2/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
25119
49c583ca48c4 treemanifest: add --dir option to debug{revlog,data,index}
Martin von Zweigbergk <martinvonz@google.com>
parents: 25091
diff changeset
   162
  $ hg debugindex --dir dir1 > before
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   163
  $ hg merge 'desc("modify dir1/a")'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   164
  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
   165
  (branch merge, don't forget to commit)
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   166
  $ hg revert -r 'desc("modify dir1/a")' .
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   167
  reverting dir2/a (glob)
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   168
  $ hg ci -m 'merge, keeping parent 2'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   169
  created new head
25119
49c583ca48c4 treemanifest: add --dir option to debug{revlog,data,index}
Martin von Zweigbergk <martinvonz@google.com>
parents: 25091
diff changeset
   170
  $ hg debugindex --dir dir1 > after
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   171
  $ diff before after
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   172
  $ rm before after
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   173
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   174
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
   175
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   176
  $ cd ..
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   177
  $ hg init repo-flat
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   178
  $ cd repo-flat
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   179
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   180
Create a few commits with flat manifest
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   181
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   182
  $ echo 0 > a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   183
  $ echo 0 > b
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   184
  $ echo 0 > e
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   185
  $ 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
   186
  > do
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   187
  >   mkdir $d
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   188
  >   echo 0 > $d/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   189
  >   echo 0 > $d/b
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   190
  > done
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   191
  $ hg ci -Aqm initial
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
  $ echo 1 > a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   194
  $ echo 1 > dir1/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   195
  $ echo 1 > dir1/dir1/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   196
  $ hg ci -Aqm 'modify on branch 1'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   197
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   198
  $ hg co 0
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   199
  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
   200
  $ echo 2 > b
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   201
  $ echo 2 > dir1/b
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   202
  $ echo 2 > dir1/dir1/b
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   203
  $ hg ci -Aqm 'modify on branch 2'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   204
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   205
  $ hg merge 1
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   206
  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
   207
  (branch merge, don't forget to commit)
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   208
  $ 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
   209
27953
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
   210
  $ 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
   211
  $ 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
   212
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   213
Create clone with tree manifests enabled
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   214
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   215
  $ cd ..
27953
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
   216
  $ 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
   217
  >   http://localhost:$HGPORT repo-mixed -r 1
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   218
  adding changesets
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   219
  adding manifests
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   220
  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
   221
  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
   222
  updating to branch default
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   223
  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
   224
  $ cd repo-mixed
27952
c5ffbd4c033b tests: minor cleanup to treemanifest test
Martin von Zweigbergk <martinvonz@google.com>
parents: 27946
diff changeset
   225
  $ test -d .hg/store/meta
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   226
  [1]
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   227
  $ grep treemanifest .hg/requires
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   228
  treemanifest
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   229
27953
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
   230
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
   231
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
   232
  $ 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
   233
  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
   234
  searching for changes
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
   235
  remote: adding changesets
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
   236
  remote: adding manifests
88609cfa3745 changegroup: fix pulling to treemanifest repo from flat repo (issue5066)
Martin von Zweigbergk <martinvonz@google.com>
parents: 27952
diff changeset
   237
  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
   238
  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
   239
25091
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   240
Commit should store revlog per directory
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   241
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   242
  $ 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
   243
  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
   244
  $ echo 3 > a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   245
  $ echo 3 > dir1/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   246
  $ echo 3 > dir1/dir1/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   247
  $ hg ci -m 'first tree'
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   248
  created new head
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   249
  $ find .hg/store/meta | sort
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   250
  .hg/store/meta
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   251
  .hg/store/meta/dir1
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   252
  .hg/store/meta/dir1/00manifest.i
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   253
  .hg/store/meta/dir1/dir1
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   254
  .hg/store/meta/dir1/dir1/00manifest.i
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   255
  .hg/store/meta/dir1/dir2
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   256
  .hg/store/meta/dir1/dir2/00manifest.i
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   257
  .hg/store/meta/dir2
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   258
  .hg/store/meta/dir2/00manifest.i
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   259
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   260
Merge of two trees
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   261
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   262
  $ hg co 2
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   263
  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
   264
  $ hg merge 1
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   265
  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
   266
  (branch merge, don't forget to commit)
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   267
  $ 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
   268
  created new head
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   269
  $ hg diff -r 3
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   270
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   271
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
   272
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   273
  $ 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
   274
     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
   275
       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
   276
       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
   277
       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
   278
       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
   279
       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
   280
       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
   281
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   282
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   283
Status across flat/tree boundary should work
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   284
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   285
  $ hg status --rev '.^' --rev .
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   286
  M a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   287
  M dir1/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   288
  M dir1/dir1/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   289
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   290
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   291
Turning off treemanifest config has no effect
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   292
27952
c5ffbd4c033b tests: minor cleanup to treemanifest test
Martin von Zweigbergk <martinvonz@google.com>
parents: 27946
diff changeset
   293
  $ 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
   294
     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
   295
       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
   296
       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
   297
  $ echo 2 > dir1/a
b5052fc73300 treemanifest: store submanifest revlog per directory
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
   298
  $ 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
   299
  $ 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
   300
     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
   301
       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
   302
       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
   303
       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
   304
27930
7cbb3a01fa38 repair: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27752
diff changeset
   305
Stripping and recovering changes should work
7cbb3a01fa38 repair: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27752
diff changeset
   306
7cbb3a01fa38 repair: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27752
diff changeset
   307
  $ hg st --change tip
7cbb3a01fa38 repair: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27752
diff changeset
   308
  M dir1/a
7cbb3a01fa38 repair: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27752
diff changeset
   309
  $ hg --config extensions.strip= strip tip
7cbb3a01fa38 repair: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27752
diff changeset
   310
  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
   311
  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
   312
  $ hg debugindex --dir dir1
87c184c9bfef treemanifests: actually strip directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 29371
diff changeset
   313
     rev    offset  length  delta linkrev nodeid       p1           p2
87c184c9bfef treemanifests: actually strip directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 29371
diff changeset
   314
       0         0     127     -1       4 064927a0648a 000000000000 000000000000
87c184c9bfef treemanifests: actually strip directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 29371
diff changeset
   315
       1       127     111      0       5 25ecb8cb8618 000000000000 000000000000
27930
7cbb3a01fa38 repair: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27752
diff changeset
   316
  $ hg unbundle -q .hg/strip-backup/*
29464
87c184c9bfef treemanifests: actually strip directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 29371
diff changeset
   317
  $ hg debugindex --dir dir1
87c184c9bfef treemanifests: actually strip directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 29371
diff changeset
   318
     rev    offset  length  delta linkrev nodeid       p1           p2
87c184c9bfef treemanifests: actually strip directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 29371
diff changeset
   319
       0         0     127     -1       4 064927a0648a 000000000000 000000000000
87c184c9bfef treemanifests: actually strip directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 29371
diff changeset
   320
       1       127     111      0       5 25ecb8cb8618 000000000000 000000000000
87c184c9bfef treemanifests: actually strip directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 29371
diff changeset
   321
       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
   322
  $ hg st --change tip
7cbb3a01fa38 repair: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27752
diff changeset
   323
  M dir1/a
7cbb3a01fa38 repair: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27752
diff changeset
   324
27931
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   325
Shelving and unshelving should work
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   326
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   327
  $ echo foo >> dir1/a
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   328
  $ hg --config extensions.shelve= shelve
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   329
  shelved as default
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   330
  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
   331
  $ hg --config extensions.shelve= unshelve
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   332
  unshelving change 'default'
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   333
  $ hg diff --nodates
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   334
  diff -r 708a273da119 dir1/a
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   335
  --- a/dir1/a
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   336
  +++ b/dir1/a
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   337
  @@ -1,1 +1,2 @@
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   338
   1
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   339
  +foo
1289a122cf3f shelve: use cg3 for treemanifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 27930
diff changeset
   340
27938
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   341
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
   342
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   343
  $ cd ..
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   344
  $ hg init empty-repo
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   345
  $ 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
   346
  > [experimental]
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   347
  > changegroup3=yes
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   348
  > EOF
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   349
  $ 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
   350
  [1]
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   351
  $ 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
   352
  pushing to empty-repo
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   353
  searching for changes
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   354
  adding changesets
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   355
  adding manifests
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   356
  adding file changes
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   357
  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
   358
  $ 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
   359
  treemanifest
cabac7dfc621 exchange: set 'treemanifest' param on pushed changegroups too
Martin von Zweigbergk <martinvonz@google.com>
parents: 27931
diff changeset
   360
27946
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   361
Pushing to an empty repo works
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   362
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   363
  $ hg --config experimental.treemanifest=1 init clone
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   364
  $ grep treemanifest clone/.hg/requires
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   365
  treemanifest
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   366
  $ hg push -R repo clone
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   367
  pushing to clone
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   368
  searching for changes
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   369
  adding changesets
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   370
  adding manifests
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   371
  adding file changes
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   372
  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
   373
  $ grep treemanifest clone/.hg/requires
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   374
  treemanifest
28240
1ac8ce137377 changegroup: fix treemanifests on merges
Martin von Zweigbergk <martinvonz@google.com>
parents: 28214
diff changeset
   375
  $ hg -R clone verify
1ac8ce137377 changegroup: fix treemanifests on merges
Martin von Zweigbergk <martinvonz@google.com>
parents: 28214
diff changeset
   376
  checking changesets
1ac8ce137377 changegroup: fix treemanifests on merges
Martin von Zweigbergk <martinvonz@google.com>
parents: 28214
diff changeset
   377
  checking manifests
1ac8ce137377 changegroup: fix treemanifests on merges
Martin von Zweigbergk <martinvonz@google.com>
parents: 28214
diff changeset
   378
  checking directory manifests
1ac8ce137377 changegroup: fix treemanifests on merges
Martin von Zweigbergk <martinvonz@google.com>
parents: 28214
diff changeset
   379
  crosschecking files in changesets and manifests
1ac8ce137377 changegroup: fix treemanifests on merges
Martin von Zweigbergk <martinvonz@google.com>
parents: 28214
diff changeset
   380
  checking files
1ac8ce137377 changegroup: fix treemanifests on merges
Martin von Zweigbergk <martinvonz@google.com>
parents: 28214
diff changeset
   381
  10 files, 11 changesets, 15 total revisions
27946
ca8d2b73155d changegroup: fix treemanifest exchange code (issue5061)
Augie Fackler <augie@google.com>
parents: 27938
diff changeset
   382
25231
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   383
Create deeper repo with tree manifests.
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   384
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   385
  $ hg --config experimental.treemanifest=True init deeprepo
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   386
  $ cd deeprepo
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   387
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   388
  $ mkdir .A
25231
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   389
  $ mkdir b
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   390
  $ mkdir b/bar
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   391
  $ mkdir b/bar/orange
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   392
  $ mkdir b/bar/orange/fly
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   393
  $ mkdir b/foo
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   394
  $ mkdir b/foo/apple
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   395
  $ mkdir b/foo/apple/bees
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   396
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   397
  $ touch .A/one.txt
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   398
  $ touch .A/two.txt
25231
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   399
  $ touch b/bar/fruits.txt
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   400
  $ touch b/bar/orange/fly/gnat.py
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   401
  $ touch b/bar/orange/fly/housefly.txt
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   402
  $ touch b/foo/apple/bees/flower.py
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   403
  $ touch c.txt
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   404
  $ touch d.py
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   405
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   406
  $ hg ci -Aqm 'initial'
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   407
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   408
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
   409
the files command with various parameters.
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   410
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   411
Test files from the root.
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   412
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   413
  $ hg files -r .
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   414
  .A/one.txt (glob)
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   415
  .A/two.txt (glob)
25299
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   416
  b/bar/fruits.txt (glob)
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   417
  b/bar/orange/fly/gnat.py (glob)
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   418
  b/bar/orange/fly/housefly.txt (glob)
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   419
  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
   420
  c.txt
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   421
  d.py
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   422
25362
20ad936ac5d2 treemanifest: visit directory 'foo' when given e.g. '-X foo/ba?'
Martin von Zweigbergk <martinvonz@google.com>
parents: 25299
diff changeset
   423
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
   424
20ad936ac5d2 treemanifest: visit directory 'foo' when given e.g. '-X foo/ba?'
Martin von Zweigbergk <martinvonz@google.com>
parents: 25299
diff changeset
   425
  $ 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
   426
  b/bar/fruits.txt (glob)
633d07045494 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25362
diff changeset
   427
  b/bar/orange/fly/gnat.py (glob)
633d07045494 test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25362
diff changeset
   428
  b/bar/orange/fly/housefly.txt (glob)
28005
ed94b24a3bb2 tests: simplify treemanifest test by backing up entire .hg/store
Martin von Zweigbergk <martinvonz@google.com>
parents: 27953
diff changeset
   429
  $ 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
   430
25231
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   431
Test files for a subdirectory.
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   432
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   433
  $ 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
   434
  $ hg files -r . b
25299
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   435
  b/bar/fruits.txt (glob)
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   436
  b/bar/orange/fly/gnat.py (glob)
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   437
  b/bar/orange/fly/housefly.txt (glob)
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   438
  b/foo/apple/bees/flower.py (glob)
28214
408446e4b10c treemanifest: use "cp xyz/." instead of "cp xyz/*"
Tony Tung <tonytung@merly.org>
parents: 28204
diff changeset
   439
  $ 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
   440
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   441
Test files with just includes and excludes.
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   442
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   443
  $ 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
   444
  $ 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
   445
  $ 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
   446
  $ 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
   447
  b/bar/fruits.txt (glob)
28214
408446e4b10c treemanifest: use "cp xyz/." instead of "cp xyz/*"
Tony Tung <tonytung@merly.org>
parents: 28204
diff changeset
   448
  $ 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
   449
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   450
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
   451
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   452
  $ 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
   453
  $ 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
   454
  $ 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
   455
  b/bar/fruits.txt (glob)
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   456
  b/bar/orange/fly/gnat.py (glob)
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   457
  b/bar/orange/fly/housefly.txt (glob)
28214
408446e4b10c treemanifest: use "cp xyz/." instead of "cp xyz/*"
Tony Tung <tonytung@merly.org>
parents: 28204
diff changeset
   458
  $ 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
   459
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   460
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
   461
including an unrelated directory.
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   462
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   463
  $ 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
   464
  $ 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
   465
  $ 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
   466
  b/bar/orange/fly/gnat.py (glob)
4f07fb1d7fbb test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 25231
diff changeset
   467
  b/bar/orange/fly/housefly.txt (glob)
28214
408446e4b10c treemanifest: use "cp xyz/." instead of "cp xyz/*"
Tony Tung <tonytung@merly.org>
parents: 28204
diff changeset
   468
  $ 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
   469
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   470
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
   471
within that.
8545bd381504 match: have visitdir() consider includes and excludes
Drew Gottlieb <drgott@google.com>
parents: 25222
diff changeset
   472
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   473
  $ 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
   474
  $ 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
   475
  $ 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
   476
  $ 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
   477
  b/bar/fruits.txt (glob)
28214
408446e4b10c treemanifest: use "cp xyz/." instead of "cp xyz/*"
Tony Tung <tonytung@merly.org>
parents: 28204
diff changeset
   478
  $ 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
   479
27432
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   480
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
   481
  $ 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
   482
  $ hg ci -m narf
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   483
  $ 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
   484
  $ hg ci -m troz
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   485
28031
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   486
Verify works
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   487
  $ hg verify
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   488
  checking changesets
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   489
  checking manifests
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   490
  checking directory manifests
28031
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   491
  crosschecking files in changesets and manifests
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   492
  checking files
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   493
  8 files, 3 changesets, 10 total revisions
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   494
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   495
Dirlogs are included in fncache
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   496
  $ grep meta/.A/00manifest.i .hg/store/fncache
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   497
  meta/.A/00manifest.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   498
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   499
Rebuilt fncache includes dirlogs
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   500
  $ rm .hg/store/fncache
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   501
  $ hg debugrebuildfncache
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   502
  adding data/.A/one.txt.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   503
  adding data/.A/two.txt.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   504
  adding data/b/bar/fruits.txt.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   505
  adding data/b/bar/orange/fly/gnat.py.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   506
  adding data/b/bar/orange/fly/housefly.txt.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   507
  adding data/b/foo/apple/bees/flower.py.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   508
  adding data/c.txt.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   509
  adding data/d.py.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   510
  adding meta/.A/00manifest.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   511
  adding meta/b/00manifest.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   512
  adding meta/b/bar/00manifest.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   513
  adding meta/b/bar/orange/00manifest.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   514
  adding meta/b/bar/orange/fly/00manifest.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   515
  adding meta/b/foo/00manifest.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   516
  adding meta/b/foo/apple/00manifest.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   517
  adding meta/b/foo/apple/bees/00manifest.i
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   518
  16 items added, 0 removed from fncache
6f248ba85309 treemanifest: fix debugrebuildfncache
Martin von Zweigbergk <martinvonz@google.com>
parents: 28007
diff changeset
   519
28168
1a943a3a78ea tests: put test-treemanifest.t on a port diet
timeless <timeless@mozdev.org>
parents: 28063
diff changeset
   520
Finish first server
1a943a3a78ea tests: put test-treemanifest.t on a port diet
timeless <timeless@mozdev.org>
parents: 28063
diff changeset
   521
  $ killdaemons.py
1a943a3a78ea tests: put test-treemanifest.t on a port diet
timeless <timeless@mozdev.org>
parents: 28063
diff changeset
   522
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   523
Back up the recently added revlogs
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   524
  $ cp -r .hg/store .hg/store-newcopy
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   525
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   526
Verify reports missing dirlog
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   527
  $ rm .hg/store/meta/b/00manifest.*
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   528
  $ hg verify
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   529
  checking changesets
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   530
  checking manifests
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   531
  checking directory manifests
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   532
   0: empty or missing b/
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   533
   b/@0: parent-directory manifest refers to unknown revision 67688a370455
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   534
   b/@1: parent-directory manifest refers to unknown revision f38e85d334c5
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   535
   b/@2: parent-directory manifest refers to unknown revision 99c9792fd4b0
28204
962921c330b0 verify: check for orphaned dirlogs
Martin von Zweigbergk <martinvonz@google.com>
parents: 28203
diff changeset
   536
  warning: orphan revlog 'meta/b/bar/00manifest.i'
962921c330b0 verify: check for orphaned dirlogs
Martin von Zweigbergk <martinvonz@google.com>
parents: 28203
diff changeset
   537
  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
   538
  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
   539
  warning: orphan revlog 'meta/b/foo/00manifest.i'
962921c330b0 verify: check for orphaned dirlogs
Martin von Zweigbergk <martinvonz@google.com>
parents: 28203
diff changeset
   540
  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
   541
  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
   542
  crosschecking files in changesets and manifests
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   543
   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
   544
   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
   545
   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
   546
   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
   547
  checking files
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   548
  8 files, 3 changesets, 10 total revisions
28204
962921c330b0 verify: check for orphaned dirlogs
Martin von Zweigbergk <martinvonz@google.com>
parents: 28203
diff changeset
   549
  6 warnings encountered!
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   550
  8 integrity errors encountered!
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   551
  (first damaged changeset appears to be 0)
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   552
  [1]
28335
515018f64c41 tests: Solaris cp doesn't support the -T option
Danek Duvall <danek.duvall@oracle.com>
parents: 28240
diff changeset
   553
  $ cp -r .hg/store-newcopy/. .hg/store
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   554
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   555
Verify reports missing dirlog entry
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   556
  $ 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
   557
  $ hg verify
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   558
  checking changesets
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   559
  checking manifests
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   560
  checking directory manifests
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   561
   b/@1: parent-directory manifest refers to unknown revision f38e85d334c5
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   562
   b/@2: parent-directory manifest refers to unknown revision 99c9792fd4b0
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   563
   b/bar/@?: rev 1 points to unexpected changeset 1
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   564
   b/bar/@?: 5e03c4ee5e4a not in parent-directory manifest
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   565
   b/bar/@?: rev 2 points to unexpected changeset 2
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   566
   b/bar/@?: 1b16940d66d6 not in parent-directory manifest
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   567
   b/bar/orange/@?: rev 1 points to unexpected changeset 2
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   568
   (expected None)
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   569
   b/bar/orange/fly/@?: rev 1 points to unexpected changeset 2
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   570
   (expected None)
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   571
  crosschecking files in changesets and manifests
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   572
  checking files
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   573
  8 files, 3 changesets, 10 total revisions
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   574
  2 warnings encountered!
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   575
  8 integrity errors encountered!
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   576
  (first damaged changeset appears to be 1)
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   577
  [1]
28335
515018f64c41 tests: Solaris cp doesn't support the -T option
Danek Duvall <danek.duvall@oracle.com>
parents: 28240
diff changeset
   578
  $ cp -r .hg/store-newcopy/. .hg/store
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   579
27432
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   580
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
   581
  $ 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
   582
  $ cat hg.pid >> $DAEMON_PIDS
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   583
  $ cd ..
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   584
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
   585
  $ hg clone --config experimental.treemanifest=False \
27752
29cfc474c5fd changegroup3: introduce experimental.changegroup3 boolean config
Martin von Zweigbergk <martinvonz@google.com>
parents: 27432
diff changeset
   586
  >   --config experimental.changegroup3=True \
28168
1a943a3a78ea tests: put test-treemanifest.t on a port diet
timeless <timeless@mozdev.org>
parents: 28063
diff changeset
   587
  >   http://localhost:$HGPORT deepclone
27432
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   588
  requesting all changes
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   589
  adding changesets
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   590
  adding manifests
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   591
  adding file changes
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   592
  added 3 changesets with 10 changes to 8 files
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   593
  updating to branch default
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   594
  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
   595
No server errors.
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   596
  $ cat deeprepo/errors.log
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   597
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
   598
  $ 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
   599
  treemanifest
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   600
Tree manifest revlogs exist.
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   601
  $ 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
   602
  deepclone/.hg/store/meta
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   603
  deepclone/.hg/store/meta/b
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   604
  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
   605
  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
   606
  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
   607
  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
   608
  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
   609
  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
   610
  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
   611
  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
   612
  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
   613
  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
   614
  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
   615
  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
   616
  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
   617
  deepclone/.hg/store/meta/~2e_a
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   618
  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
   619
Verify passes.
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   620
  $ cd deepclone
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   621
  $ hg verify
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   622
  checking changesets
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   623
  checking manifests
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   624
  checking directory manifests
27432
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   625
  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
   626
  checking files
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   627
  8 files, 3 changesets, 10 total revisions
77d25b913f80 changegroup: introduce cg3, which has support for exchanging treemanifests
Augie Fackler <augie@google.com>
parents: 27271
diff changeset
   628
  $ cd ..
28006
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   629
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   630
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
   631
  $ hg clone --config format.usestore=False \
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   632
  >   --config experimental.changegroup3=True \
28168
1a943a3a78ea tests: put test-treemanifest.t on a port diet
timeless <timeless@mozdev.org>
parents: 28063
diff changeset
   633
  >   http://localhost:$HGPORT deeprepo-basicstore
28006
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   634
  requesting all changes
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   635
  adding changesets
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   636
  adding manifests
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   637
  adding file changes
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   638
  added 3 changesets with 10 changes to 8 files
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   639
  updating to branch default
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   640
  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
   641
  $ cd deeprepo-basicstore
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   642
  $ grep store .hg/requires
28006
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   643
  [1]
28168
1a943a3a78ea tests: put test-treemanifest.t on a port diet
timeless <timeless@mozdev.org>
parents: 28063
diff changeset
   644
  $ 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
   645
  $ cat hg.pid >> $DAEMON_PIDS
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   646
  $ cd ..
28006
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   647
  $ hg clone --config format.usefncache=False \
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   648
  >   --config experimental.changegroup3=True \
28168
1a943a3a78ea tests: put test-treemanifest.t on a port diet
timeless <timeless@mozdev.org>
parents: 28063
diff changeset
   649
  >   http://localhost:$HGPORT deeprepo-encodedstore
28006
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   650
  requesting all changes
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   651
  adding changesets
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   652
  adding manifests
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   653
  adding file changes
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   654
  added 3 changesets with 10 changes to 8 files
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   655
  updating to branch default
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   656
  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
   657
  $ cd deeprepo-encodedstore
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   658
  $ grep fncache .hg/requires
28006
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   659
  [1]
28168
1a943a3a78ea tests: put test-treemanifest.t on a port diet
timeless <timeless@mozdev.org>
parents: 28063
diff changeset
   660
  $ 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
   661
  $ cat hg.pid >> $DAEMON_PIDS
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   662
  $ cd ..
28006
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   663
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   664
Local clone with basicstore
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   665
  $ hg clone -U deeprepo-basicstore local-clone-basicstore
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   666
  $ hg -R local-clone-basicstore verify
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   667
  checking changesets
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   668
  checking manifests
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   669
  checking directory manifests
28006
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   670
  crosschecking files in changesets and manifests
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   671
  checking files
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   672
  8 files, 3 changesets, 10 total revisions
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   673
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   674
Local clone with encodedstore
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   675
  $ hg clone -U deeprepo-encodedstore local-clone-encodedstore
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   676
  $ hg -R local-clone-encodedstore verify
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   677
  checking changesets
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   678
  checking manifests
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   679
  checking directory manifests
28006
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   680
  crosschecking files in changesets and manifests
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   681
  checking files
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   682
  8 files, 3 changesets, 10 total revisions
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   683
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   684
Local clone with fncachestore
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   685
  $ hg clone -U deeprepo local-clone-fncachestore
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   686
  $ hg -R local-clone-fncachestore verify
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   687
  checking changesets
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   688
  checking manifests
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   689
  checking directory manifests
28006
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   690
  crosschecking files in changesets and manifests
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   691
  checking files
bb45190a54b7 treemanifests: fix local clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28005
diff changeset
   692
  8 files, 3 changesets, 10 total revisions
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   693
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   694
Stream clone with basicstore
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   695
  $ 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
   696
  >   http://localhost:$HGPORT1 stream-clone-basicstore
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   697
  streaming all changes
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   698
  18 files to transfer, * of data (glob)
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   699
  transferred * in * seconds (*) (glob)
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   700
  searching for changes
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   701
  no changes found
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   702
  $ hg -R stream-clone-basicstore verify
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   703
  checking changesets
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   704
  checking manifests
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   705
  checking directory manifests
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   706
  crosschecking files in changesets and manifests
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   707
  checking files
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   708
  8 files, 3 changesets, 10 total revisions
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   709
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   710
Stream clone with encodedstore
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   711
  $ 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
   712
  >   http://localhost:$HGPORT2 stream-clone-encodedstore
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   713
  streaming all changes
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   714
  18 files to transfer, * of data (glob)
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   715
  transferred * in * seconds (*) (glob)
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   716
  searching for changes
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   717
  no changes found
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   718
  $ hg -R stream-clone-encodedstore verify
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   719
  checking changesets
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   720
  checking manifests
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   721
  checking directory manifests
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   722
  crosschecking files in changesets and manifests
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   723
  checking files
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   724
  8 files, 3 changesets, 10 total revisions
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   725
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   726
Stream clone with fncachestore
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   727
  $ 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
   728
  >   http://localhost:$HGPORT stream-clone-fncachestore
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   729
  streaming all changes
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   730
  18 files to transfer, * of data (glob)
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   731
  transferred * in * seconds (*) (glob)
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   732
  searching for changes
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   733
  no changes found
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   734
  $ hg -R stream-clone-fncachestore verify
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   735
  checking changesets
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   736
  checking manifests
28203
7297e9e13a8a verify: check directory manifests
Martin von Zweigbergk <martinvonz@google.com>
parents: 28168
diff changeset
   737
  checking directory manifests
28007
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   738
  crosschecking files in changesets and manifests
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   739
  checking files
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   740
  8 files, 3 changesets, 10 total revisions
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   741
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   742
Packed bundle
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   743
  $ hg -R deeprepo debugcreatestreamclonebundle repo-packed.hg
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   744
  writing 3349 bytes for 18 files
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   745
  bundle requirements: generaldelta, revlogv1, treemanifest
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   746
  $ hg debugbundle --spec repo-packed.hg
fb92927f9775 treemanifests: fix streaming clone
Martin von Zweigbergk <martinvonz@google.com>
parents: 28006
diff changeset
   747
  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
   748
c4b727795d6a bundle: avoid crash when no good changegroup version found
Martin von Zweigbergk <martinvonz@google.com>
parents: 28335
diff changeset
   749
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
   750
c4b727795d6a bundle: avoid crash when no good changegroup version found
Martin von Zweigbergk <martinvonz@google.com>
parents: 28335
diff changeset
   751
  $ 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
   752
  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
   753
  [255]
29371
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   754
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   755
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
   756
other branch
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   757
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   758
  $ mkdir grafted-dir-repo
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   759
  $ cd grafted-dir-repo
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   760
  $ 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
   761
  $ mkdir dir
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   762
  $ echo a > dir/file
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   763
  $ echo a > file
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   764
  $ hg ci -Am initial
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   765
  adding dir/file
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   766
  adding file
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   767
  $ echo b > dir/file
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   768
  $ hg ci -m updated
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   769
  $ hg co '.^'
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   770
  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
   771
  $ hg revert -r tip dir/
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   772
  reverting dir/file (glob)
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   773
  $ 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
   774
  $ hg ci -m grafted
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   775
  created new head
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   776
  $ cd ..
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   777
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   778
  $ 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
   779
  >   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
   780
  adding changesets
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   781
  adding manifests
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   782
  adding file changes
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   783
  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
   784
  updating to branch default
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   785
  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
   786
  $ cd grafted-dir-repo-clone
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   787
  $ hg pull -r 2
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   788
  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
   789
  searching for changes
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   790
  adding changesets
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   791
  adding manifests
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   792
  adding file changes
1b699c7eb2b7 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com>
parents: 28669
diff changeset
   793
  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
   794
  (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
   795