##// END OF EJS Templates
localrepo: use context manager for lock and transaction in commitctx()...
localrepo: use context manager for lock and transaction in commitctx() Differential Revision: https://phab.mercurial-scm.org/D5624

File last commit:

r40955:a0886a4d default
r41400:0132221c default
Show More
test-treemanifest.t
900 lines | 26.7 KiB | text/troff | Tads3Lexer
/ tests / test-treemanifest.t
Pierre-Yves David
test: enable generaldelta early in 'test-treemanifest.t'...
r26920 $ cat << EOF >> $HGRCPATH
Martin von Zweigbergk
changegroup: fix pulling to treemanifest repo from flat repo (issue5066)...
r27953 > [ui]
Matt Harbison
tests: quote PYTHON usage...
r39743 > ssh="$PYTHON" "$TESTDIR/dummyssh"
Pierre-Yves David
test: enable generaldelta early in 'test-treemanifest.t'...
r26920 > EOF
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091
Set up repo
$ hg --config experimental.treemanifest=True init repo
$ cd repo
Requirements get set on init
$ grep treemanifest .hg/requires
treemanifest
Without directories, looks like any other repo
$ echo 0 > a
$ echo 0 > b
$ hg ci -Aqm initial
$ hg debugdata -m 0
a\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (esc)
b\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (esc)
Submanifest is stored in separate revlog
$ mkdir dir1
$ echo 1 > dir1/a
$ echo 1 > dir1/b
$ echo 1 > e
$ hg ci -Aqm 'add dir1'
$ hg debugdata -m 1
a\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (esc)
b\x00362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (esc)
Martin von Zweigbergk
manifest: use 't' for tree manifest flag...
r27271 dir1\x008b3ffd73f901e83304c83d33132c8e774ceac44et (esc)
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091 e\x00b8e02f6433738021a065f94175c7cd23db5f05be (esc)
Martin von Zweigbergk
treemanifest: add --dir option to debug{revlog,data,index}...
r25119 $ hg debugdata --dir dir1 0
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091 a\x00b8e02f6433738021a065f94175c7cd23db5f05be (esc)
b\x00b8e02f6433738021a065f94175c7cd23db5f05be (esc)
Can add nested directories
$ mkdir dir1/dir1
$ echo 2 > dir1/dir1/a
$ echo 2 > dir1/dir1/b
$ mkdir dir1/dir2
$ echo 2 > dir1/dir2/a
$ echo 2 > dir1/dir2/b
$ hg ci -Aqm 'add dir1/dir1'
$ hg files -r .
a
b
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 dir1/a
dir1/b
dir1/dir1/a
dir1/dir1/b
dir1/dir2/a
dir1/dir2/b
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091 e
Augie Fackler
test-treemanifest: ensure manifest command isn't broken...
r29699 The manifest command works
$ hg manifest
a
b
dir1/a
dir1/b
dir1/dir1/a
dir1/dir1/b
dir1/dir2/a
dir1/dir2/b
e
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091 Revision is not created for unchanged directory
$ mkdir dir2
$ echo 3 > dir2/a
$ hg add dir2
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 adding dir2/a
Martin von Zweigbergk
treemanifest: add --dir option to debug{revlog,data,index}...
r25119 $ hg debugindex --dir dir1 > before
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091 $ hg ci -qm 'add dir2'
Martin von Zweigbergk
treemanifest: add --dir option to debug{revlog,data,index}...
r25119 $ hg debugindex --dir dir1 > after
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091 $ diff before after
$ rm before after
Removing directory does not create an revlog entry
$ hg rm dir1/dir1
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 removing dir1/dir1/a
removing dir1/dir1/b
Martin von Zweigbergk
treemanifest: add --dir option to debug{revlog,data,index}...
r25119 $ hg debugindex --dir dir1/dir1 > before
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091 $ hg ci -qm 'remove dir1/dir1'
Martin von Zweigbergk
treemanifest: add --dir option to debug{revlog,data,index}...
r25119 $ hg debugindex --dir dir1/dir1 > after
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091 $ diff before after
$ rm before after
Check that hg files (calls treemanifest.walk()) works
Martin von Zweigbergk
treemanifest: lazily load manifests...
r25222 without loading all directory revlogs
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091
$ hg co 'desc("add dir2")'
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Martin von Zweigbergk
treemanifest: lazily load manifests...
r25222 $ mv .hg/store/meta/dir2 .hg/store/meta/dir2-backup
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091 $ hg files -r . dir1
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 dir1/a
dir1/b
dir1/dir1/a
dir1/dir1/b
dir1/dir2/a
dir1/dir2/b
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091
Check that status between revisions works (calls treemanifest.matches())
Martin von Zweigbergk
treemanifest: lazily load manifests...
r25222 without loading all directory revlogs
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091
$ hg status --rev 'desc("add dir1")' --rev . dir1
A dir1/dir1/a
A dir1/dir1/b
A dir1/dir2/a
A dir1/dir2/b
Martin von Zweigbergk
treemanifest: lazily load manifests...
r25222 $ mv .hg/store/meta/dir2-backup .hg/store/meta/dir2
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091
Merge creates 2-parent revision of directory revlog
$ echo 5 > dir1/a
$ hg ci -Aqm 'modify dir1/a'
$ hg co '.^'
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo 6 > dir1/b
$ hg ci -Aqm 'modify dir1/b'
$ hg merge 'desc("modify dir1/a")'
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg ci -m 'conflict-free merge involving dir1/'
$ cat dir1/a
5
$ cat dir1/b
6
Martin von Zweigbergk
treemanifest: add --dir option to debug{revlog,data,index}...
r25119 $ hg debugindex --dir dir1
Gregory Szorc
debugcommands: drop offset and length from debugindex by default...
r37301 rev linkrev nodeid p1 p2
0 1 8b3ffd73f901 000000000000 000000000000
1 2 68e9d057c5a8 8b3ffd73f901 000000000000
2 4 4698198d2624 68e9d057c5a8 000000000000
3 5 44844058ccce 68e9d057c5a8 000000000000
4 6 bf3d9b744927 68e9d057c5a8 000000000000
5 7 dde7c0af2a03 bf3d9b744927 44844058ccce
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091
Merge keeping directory from parent 1 does not create revlog entry. (Note that
dir1's manifest does change, but only because dir1/a's filelog changes.)
$ hg co 'desc("add dir2")'
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo 8 > dir2/a
$ hg ci -m 'modify dir2/a'
created new head
Martin von Zweigbergk
treemanifest: add --dir option to debug{revlog,data,index}...
r25119 $ hg debugindex --dir dir2 > before
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091 $ hg merge 'desc("modify dir1/a")'
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg revert -r 'desc("modify dir2/a")' .
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 reverting dir1/a
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091 $ hg ci -m 'merge, keeping parent 1'
Martin von Zweigbergk
treemanifest: add --dir option to debug{revlog,data,index}...
r25119 $ hg debugindex --dir dir2 > after
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091 $ diff before after
$ rm before after
Merge keeping directory from parent 2 does not create revlog entry. (Note that
dir2's manifest does change, but only because dir2/a's filelog changes.)
$ hg co 'desc("modify dir2/a")'
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Martin von Zweigbergk
treemanifest: add --dir option to debug{revlog,data,index}...
r25119 $ hg debugindex --dir dir1 > before
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091 $ hg merge 'desc("modify dir1/a")'
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg revert -r 'desc("modify dir1/a")' .
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 reverting dir2/a
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091 $ hg ci -m 'merge, keeping parent 2'
created new head
Martin von Zweigbergk
treemanifest: add --dir option to debug{revlog,data,index}...
r25119 $ hg debugindex --dir dir1 > after
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091 $ diff before after
$ rm before after
Create flat source repo for tests with mixed flat/tree manifests
$ cd ..
$ hg init repo-flat
$ cd repo-flat
Create a few commits with flat manifest
$ echo 0 > a
$ echo 0 > b
$ echo 0 > e
$ for d in dir1 dir1/dir1 dir1/dir2 dir2
> do
> mkdir $d
> echo 0 > $d/a
> echo 0 > $d/b
> done
$ hg ci -Aqm initial
$ echo 1 > a
$ echo 1 > dir1/a
$ echo 1 > dir1/dir1/a
$ hg ci -Aqm 'modify on branch 1'
$ hg co 0
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo 2 > b
$ echo 2 > dir1/b
$ echo 2 > dir1/dir1/b
$ hg ci -Aqm 'modify on branch 2'
$ hg merge 1
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg ci -m 'merge of flat manifests to new flat manifest'
Martin von Zweigbergk
changegroup: fix pulling to treemanifest repo from flat repo (issue5066)...
r27953 $ hg serve -p $HGPORT -d --pid-file=hg.pid --errorlog=errors.log
$ cat hg.pid >> $DAEMON_PIDS
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091 Create clone with tree manifests enabled
$ cd ..
Martin von Zweigbergk
changegroup: fix pulling to treemanifest repo from flat repo (issue5066)...
r27953 $ hg clone --config experimental.treemanifest=1 \
> http://localhost:$HGPORT repo-mixed -r 1
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091 adding changesets
adding manifests
adding file changes
Martin von Zweigbergk
changegroup: fix pulling to treemanifest repo from flat repo (issue5066)...
r27953 added 2 changesets with 14 changes to 11 files
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets 5b02a3e8db7e:581ef6037d8b
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091 updating to branch default
11 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd repo-mixed
Martin von Zweigbergk
tests: minor cleanup to treemanifest test
r27952 $ test -d .hg/store/meta
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091 [1]
$ grep treemanifest .hg/requires
treemanifest
Martin von Zweigbergk
changegroup: fix pulling to treemanifest repo from flat repo (issue5066)...
r27953 Should be possible to push updates from flat to tree manifest repo
$ hg -R ../repo-flat push ssh://user@dummy/repo-mixed
pushing to ssh://user@dummy/repo-mixed
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 2 changesets with 3 changes to 3 files
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091 Commit should store revlog per directory
$ hg co 1
Martin von Zweigbergk
changegroup: fix pulling to treemanifest repo from flat repo (issue5066)...
r27953 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091 $ echo 3 > a
$ echo 3 > dir1/a
$ echo 3 > dir1/dir1/a
$ hg ci -m 'first tree'
created new head
$ find .hg/store/meta | sort
.hg/store/meta
.hg/store/meta/dir1
.hg/store/meta/dir1/00manifest.i
.hg/store/meta/dir1/dir1
.hg/store/meta/dir1/dir1/00manifest.i
.hg/store/meta/dir1/dir2
.hg/store/meta/dir1/dir2/00manifest.i
.hg/store/meta/dir2
.hg/store/meta/dir2/00manifest.i
Merge of two trees
$ hg co 2
6 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg merge 1
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg ci -m 'merge of flat manifests to new tree manifest'
created new head
$ hg diff -r 3
Parent of tree root manifest should be flat manifest, and two for merge
$ hg debugindex -m
Gregory Szorc
debugcommands: drop offset and length from debugindex by default...
r37301 rev linkrev nodeid p1 p2
0 0 40536115ed9e 000000000000 000000000000
1 1 f3376063c255 40536115ed9e 000000000000
2 2 5d9b9da231a2 40536115ed9e 000000000000
3 3 d17d663cbd8a 5d9b9da231a2 f3376063c255
4 4 51e32a8c60ee f3376063c255 000000000000
5 5 cc5baa78b230 5d9b9da231a2 f3376063c255
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091
Status across flat/tree boundary should work
$ hg status --rev '.^' --rev .
M a
M dir1/a
M dir1/dir1/a
Turning off treemanifest config has no effect
Martin von Zweigbergk
tests: minor cleanup to treemanifest test
r27952 $ hg debugindex --dir dir1
Gregory Szorc
debugcommands: drop offset and length from debugindex by default...
r37301 rev linkrev nodeid p1 p2
0 4 064927a0648a 000000000000 000000000000
1 5 25ecb8cb8618 000000000000 000000000000
Martin von Zweigbergk
treemanifest: store submanifest revlog per directory...
r25091 $ echo 2 > dir1/a
$ hg --config experimental.treemanifest=False ci -qm 'modify dir1/a'
Martin von Zweigbergk
tests: minor cleanup to treemanifest test
r27952 $ hg debugindex --dir dir1
Gregory Szorc
debugcommands: drop offset and length from debugindex by default...
r37301 rev linkrev nodeid p1 p2
0 4 064927a0648a 000000000000 000000000000
1 5 25ecb8cb8618 000000000000 000000000000
2 6 5b16163a30c6 25ecb8cb8618 000000000000
Drew Gottlieb
match: have visitdir() consider includes and excludes...
r25231
Martin von Zweigbergk
repair: use cg3 for treemanifests...
r27930 Stripping and recovering changes should work
$ hg st --change tip
M dir1/a
$ hg --config extensions.strip= strip tip
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/repo-mixed/.hg/strip-backup/51cfd7b1e13b-78a2f3ed-backup.hg
Martin von Zweigbergk
treemanifests: actually strip directory manifests...
r29464 $ hg debugindex --dir dir1
Gregory Szorc
debugcommands: drop offset and length from debugindex by default...
r37301 rev linkrev nodeid p1 p2
0 4 064927a0648a 000000000000 000000000000
1 5 25ecb8cb8618 000000000000 000000000000
Gregory Szorc
tests: disallow using simple store repo with bundlerepo...
r37364
#if repobundlerepo
Augie Fackler
bundlerepo: add support for treemanifests in cg3 bundles...
r29715 $ hg incoming .hg/strip-backup/*
comparing with .hg/strip-backup/*-backup.hg (glob)
searching for changes
changeset: 6:51cfd7b1e13b
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: modify dir1/a
Gregory Szorc
tests: disallow using simple store repo with bundlerepo...
r37364 #endif
Gregory Szorc
tests: use `hg unbundle` instead of `hg pull` in some tests...
r37354 $ hg unbundle .hg/strip-backup/*
Augie Fackler
bundlerepo: add support for treemanifests in cg3 bundles...
r29715 adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
Boris Feld
phase: report number of non-public changeset alongside the new range...
r39516 new changesets 51cfd7b1e13b (1 drafts)
Augie Fackler
bundlerepo: add support for treemanifests in cg3 bundles...
r29715 (run 'hg update' to get a working copy)
$ hg --config extensions.strip= strip tip
saved backup bundle to $TESTTMP/repo-mixed/.hg/strip-backup/*-backup.hg (glob)
Martin von Zweigbergk
repair: use cg3 for treemanifests...
r27930 $ hg unbundle -q .hg/strip-backup/*
Martin von Zweigbergk
treemanifests: actually strip directory manifests...
r29464 $ hg debugindex --dir dir1
Gregory Szorc
debugcommands: drop offset and length from debugindex by default...
r37301 rev linkrev nodeid p1 p2
0 4 064927a0648a 000000000000 000000000000
1 5 25ecb8cb8618 000000000000 000000000000
2 6 5b16163a30c6 25ecb8cb8618 000000000000
Martin von Zweigbergk
repair: use cg3 for treemanifests...
r27930 $ hg st --change tip
M dir1/a
Martin von Zweigbergk
shelve: use cg3 for treemanifests...
r27931 Shelving and unshelving should work
$ echo foo >> dir1/a
$ hg --config extensions.shelve= shelve
shelved as default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg --config extensions.shelve= unshelve
unshelving change 'default'
$ hg diff --nodates
diff -r 708a273da119 dir1/a
--- a/dir1/a
+++ b/dir1/a
@@ -1,1 +1,2 @@
1
+foo
Martin von Zweigbergk
exchange: set 'treemanifest' param on pushed changegroups too...
r27938 Pushing from treemanifest repo to an empty repo makes that a treemanifest repo
$ cd ..
$ hg init empty-repo
$ cat << EOF >> empty-repo/.hg/hgrc
> [experimental]
> changegroup3=yes
> EOF
$ grep treemanifest empty-repo/.hg/requires
[1]
$ hg push -R repo -r 0 empty-repo
pushing to empty-repo
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 2 changes to 2 files
$ grep treemanifest empty-repo/.hg/requires
treemanifest
Augie Fackler
changegroup: fix treemanifest exchange code (issue5061)...
r27946 Pushing to an empty repo works
$ hg --config experimental.treemanifest=1 init clone
$ grep treemanifest clone/.hg/requires
treemanifest
$ hg push -R repo clone
pushing to clone
searching for changes
adding changesets
adding manifests
adding file changes
added 11 changesets with 15 changes to 10 files (+3 heads)
$ grep treemanifest clone/.hg/requires
treemanifest
Martin von Zweigbergk
changegroup: fix treemanifests on merges...
r28240 $ hg -R clone verify
checking changesets
checking manifests
checking directory manifests
crosschecking files in changesets and manifests
checking files
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 11 changesets with 15 changes to 10 files
Augie Fackler
changegroup: fix treemanifest exchange code (issue5061)...
r27946
Drew Gottlieb
match: have visitdir() consider includes and excludes...
r25231 Create deeper repo with tree manifests.
$ hg --config experimental.treemanifest=True init deeprepo
$ cd deeprepo
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007 $ mkdir .A
Drew Gottlieb
match: have visitdir() consider includes and excludes...
r25231 $ mkdir b
$ mkdir b/bar
$ mkdir b/bar/orange
$ mkdir b/bar/orange/fly
$ mkdir b/foo
$ mkdir b/foo/apple
$ mkdir b/foo/apple/bees
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007 $ touch .A/one.txt
$ touch .A/two.txt
Drew Gottlieb
match: have visitdir() consider includes and excludes...
r25231 $ touch b/bar/fruits.txt
$ touch b/bar/orange/fly/gnat.py
$ touch b/bar/orange/fly/housefly.txt
$ touch b/foo/apple/bees/flower.py
$ touch c.txt
$ touch d.py
$ hg ci -Aqm 'initial'
Durham Goode
treemanifest: add tests covering hg diff of partial trees...
r31262 $ echo >> .A/one.txt
$ echo >> .A/two.txt
$ echo >> b/bar/fruits.txt
$ echo >> b/bar/orange/fly/gnat.py
$ echo >> b/bar/orange/fly/housefly.txt
$ echo >> b/foo/apple/bees/flower.py
$ echo >> c.txt
$ echo >> d.py
$ hg ci -Aqm 'second'
Drew Gottlieb
match: have visitdir() consider includes and excludes...
r25231 We'll see that visitdir works by removing some treemanifest revlogs and running
the files command with various parameters.
Test files from the root.
$ hg files -r .
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 .A/one.txt
.A/two.txt
b/bar/fruits.txt
b/bar/orange/fly/gnat.py
b/bar/orange/fly/housefly.txt
b/foo/apple/bees/flower.py
Drew Gottlieb
match: have visitdir() consider includes and excludes...
r25231 c.txt
d.py
Martin von Zweigbergk
treemanifest: visit directory 'foo' when given e.g. '-X foo/ba?'...
r25362 Excludes with a glob should not exclude everything from the glob's root
$ hg files -r . -X 'b/fo?' b
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 b/bar/fruits.txt
b/bar/orange/fly/gnat.py
b/bar/orange/fly/housefly.txt
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store .hg/store-copy
Martin von Zweigbergk
treemanifest: visit directory 'foo' when given e.g. '-X foo/ba?'...
r25362
Drew Gottlieb
match: have visitdir() consider includes and excludes...
r25231 Test files for a subdirectory.
Gregory Szorc
tests: conditionalize test-treemanifest.t...
r37450 #if reporevlogstore
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007 $ rm -r .hg/store/meta/~2e_a
Gregory Szorc
tests: conditionalize test-treemanifest.t...
r37450 #endif
#if reposimplestore
$ rm -r .hg/store/meta/._a
#endif
Drew Gottlieb
match: have visitdir() consider includes and excludes...
r25231 $ hg files -r . b
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 b/bar/fruits.txt
b/bar/orange/fly/gnat.py
b/bar/orange/fly/housefly.txt
b/foo/apple/bees/flower.py
Durham Goode
treemanifest: add tests covering hg diff of partial trees...
r31262 $ hg diff -r '.^' -r . --stat b
b/bar/fruits.txt | 1 +
b/bar/orange/fly/gnat.py | 1 +
b/bar/orange/fly/housefly.txt | 1 +
b/foo/apple/bees/flower.py | 1 +
4 files changed, 4 insertions(+), 0 deletions(-)
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store-copy/. .hg/store
Drew Gottlieb
match: have visitdir() consider includes and excludes...
r25231
Test files with just includes and excludes.
Gregory Szorc
tests: conditionalize test-treemanifest.t...
r37450 #if reporevlogstore
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007 $ rm -r .hg/store/meta/~2e_a
Gregory Szorc
tests: conditionalize test-treemanifest.t...
r37450 #endif
#if reposimplestore
$ rm -r .hg/store/meta/._a
#endif
Martin von Zweigbergk
tests: simplify treemanifest test by backing up entire .hg/store
r28005 $ rm -r .hg/store/meta/b/bar/orange/fly
$ rm -r .hg/store/meta/b/foo/apple/bees
Martin von Zweigbergk
treemanifest: visit directory 'foo' when given e.g. '-X foo/ba?'...
r25362 $ hg files -r . -I path:b/bar -X path:b/bar/orange/fly -I path:b/foo -X path:b/foo/apple/bees
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 b/bar/fruits.txt
Durham Goode
treemanifest: add tests covering hg diff of partial trees...
r31262 $ hg diff -r '.^' -r . --stat -I path:b/bar -X path:b/bar/orange/fly -I path:b/foo -X path:b/foo/apple/bees
b/bar/fruits.txt | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store-copy/. .hg/store
Drew Gottlieb
match: have visitdir() consider includes and excludes...
r25231
Test files for a subdirectory, excluding a directory within it.
Gregory Szorc
tests: conditionalize test-treemanifest.t...
r37450 #if reporevlogstore
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007 $ rm -r .hg/store/meta/~2e_a
Gregory Szorc
tests: conditionalize test-treemanifest.t...
r37450 #endif
#if reposimplestore
$ rm -r .hg/store/meta/._a
#endif
Martin von Zweigbergk
tests: simplify treemanifest test by backing up entire .hg/store
r28005 $ rm -r .hg/store/meta/b/foo
Martin von Zweigbergk
treemanifest: visit directory 'foo' when given e.g. '-X foo/ba?'...
r25362 $ hg files -r . -X path:b/foo b
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 b/bar/fruits.txt
b/bar/orange/fly/gnat.py
b/bar/orange/fly/housefly.txt
Durham Goode
treemanifest: add tests covering hg diff of partial trees...
r31262 $ hg diff -r '.^' -r . --stat -X path:b/foo b
b/bar/fruits.txt | 1 +
b/bar/orange/fly/gnat.py | 1 +
b/bar/orange/fly/housefly.txt | 1 +
3 files changed, 3 insertions(+), 0 deletions(-)
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store-copy/. .hg/store
Drew Gottlieb
match: have visitdir() consider includes and excludes...
r25231
Test files for a sub directory, including only a directory within it, and
including an unrelated directory.
Gregory Szorc
tests: conditionalize test-treemanifest.t...
r37450 #if reporevlogstore
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007 $ rm -r .hg/store/meta/~2e_a
Gregory Szorc
tests: conditionalize test-treemanifest.t...
r37450 #endif
#if reposimplestore
$ rm -r .hg/store/meta/._a
#endif
Martin von Zweigbergk
tests: simplify treemanifest test by backing up entire .hg/store
r28005 $ rm -r .hg/store/meta/b/foo
Martin von Zweigbergk
treemanifest: visit directory 'foo' when given e.g. '-X foo/ba?'...
r25362 $ hg files -r . -I path:b/bar/orange -I path:a b
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 b/bar/orange/fly/gnat.py
b/bar/orange/fly/housefly.txt
Durham Goode
treemanifest: add tests covering hg diff of partial trees...
r31262 $ hg diff -r '.^' -r . --stat -I path:b/bar/orange -I path:a b
b/bar/orange/fly/gnat.py | 1 +
b/bar/orange/fly/housefly.txt | 1 +
2 files changed, 2 insertions(+), 0 deletions(-)
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store-copy/. .hg/store
Drew Gottlieb
match: have visitdir() consider includes and excludes...
r25231
Test files for a pattern, including a directory, and excluding a directory
within that.
Gregory Szorc
tests: conditionalize test-treemanifest.t...
r37450 #if reporevlogstore
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007 $ rm -r .hg/store/meta/~2e_a
Gregory Szorc
tests: conditionalize test-treemanifest.t...
r37450 #endif
#if reposimplestore
$ rm -r .hg/store/meta/._a
#endif
Martin von Zweigbergk
tests: simplify treemanifest test by backing up entire .hg/store
r28005 $ rm -r .hg/store/meta/b/foo
$ rm -r .hg/store/meta/b/bar/orange
Martin von Zweigbergk
treemanifest: visit directory 'foo' when given e.g. '-X foo/ba?'...
r25362 $ hg files -r . glob:**.txt -I path:b/bar -X path:b/bar/orange
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 b/bar/fruits.txt
Durham Goode
treemanifest: add tests covering hg diff of partial trees...
r31262 $ hg diff -r '.^' -r . --stat glob:**.txt -I path:b/bar -X path:b/bar/orange
b/bar/fruits.txt | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store-copy/. .hg/store
Drew Gottlieb
match: have visitdir() consider includes and excludes...
r25231
Augie Fackler
changegroup: introduce cg3, which has support for exchanging treemanifests...
r27432 Add some more changes to the deep repo
$ echo narf >> b/bar/fruits.txt
$ hg ci -m narf
$ echo troz >> b/bar/orange/fly/gnat.py
$ hg ci -m troz
Martin von Zweigbergk
treemanifest: fix debugrebuildfncache...
r28031 Verify works
$ hg verify
checking changesets
checking manifests
Martin von Zweigbergk
verify: check directory manifests...
r28203 checking directory manifests
Martin von Zweigbergk
treemanifest: fix debugrebuildfncache...
r28031 crosschecking files in changesets and manifests
checking files
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 4 changesets with 18 changes to 8 files
Martin von Zweigbergk
treemanifest: fix debugrebuildfncache...
r28031
Gregory Szorc
simplestore: use a custom store for the simple store repo...
r37433 #if repofncache
Martin von Zweigbergk
treemanifest: fix debugrebuildfncache...
r28031 Dirlogs are included in fncache
$ grep meta/.A/00manifest.i .hg/store/fncache
meta/.A/00manifest.i
Rebuilt fncache includes dirlogs
$ rm .hg/store/fncache
$ hg debugrebuildfncache
adding data/.A/one.txt.i
adding data/.A/two.txt.i
adding data/b/bar/fruits.txt.i
adding data/b/bar/orange/fly/gnat.py.i
adding data/b/bar/orange/fly/housefly.txt.i
adding data/b/foo/apple/bees/flower.py.i
adding data/c.txt.i
adding data/d.py.i
adding meta/.A/00manifest.i
adding meta/b/00manifest.i
adding meta/b/bar/00manifest.i
adding meta/b/bar/orange/00manifest.i
adding meta/b/bar/orange/fly/00manifest.i
adding meta/b/foo/00manifest.i
adding meta/b/foo/apple/00manifest.i
adding meta/b/foo/apple/bees/00manifest.i
16 items added, 0 removed from fncache
Gregory Szorc
simplestore: use a custom store for the simple store repo...
r37433 #endif
Martin von Zweigbergk
treemanifest: fix debugrebuildfncache...
r28031
timeless
tests: put test-treemanifest.t on a port diet...
r28168 Finish first server
$ killdaemons.py
Martin von Zweigbergk
verify: check directory manifests...
r28203 Back up the recently added revlogs
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store .hg/store-newcopy
Martin von Zweigbergk
verify: check directory manifests...
r28203
Verify reports missing dirlog
$ rm .hg/store/meta/b/00manifest.*
$ hg verify
checking changesets
checking manifests
checking directory manifests
0: empty or missing b/
b/@0: parent-directory manifest refers to unknown revision 67688a370455
Durham Goode
treemanifest: add tests covering hg diff of partial trees...
r31262 b/@1: parent-directory manifest refers to unknown revision f065da70369e
b/@2: parent-directory manifest refers to unknown revision ac0d30948e0b
b/@3: parent-directory manifest refers to unknown revision 367152e6af28
Gregory Szorc
tests: conditionalize test-treemanifest.t...
r37450 warning: orphan data file 'meta/b/bar/00manifest.i' (reporevlogstore !)
warning: orphan data file 'meta/b/bar/orange/00manifest.i' (reporevlogstore !)
warning: orphan data file 'meta/b/bar/orange/fly/00manifest.i' (reporevlogstore !)
warning: orphan data file 'meta/b/foo/00manifest.i' (reporevlogstore !)
warning: orphan data file 'meta/b/foo/apple/00manifest.i' (reporevlogstore !)
warning: orphan data file 'meta/b/foo/apple/bees/00manifest.i' (reporevlogstore !)
Martin von Zweigbergk
verify: check directory manifests...
r28203 crosschecking files in changesets and manifests
b/bar/fruits.txt@0: in changeset but not in manifest
b/bar/orange/fly/gnat.py@0: in changeset but not in manifest
b/bar/orange/fly/housefly.txt@0: in changeset but not in manifest
b/foo/apple/bees/flower.py@0: in changeset but not in manifest
checking files
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 4 changesets with 18 changes to 8 files
Gregory Szorc
tests: conditionalize test-treemanifest.t...
r37450 6 warnings encountered! (reporevlogstore !)
Durham Goode
treemanifest: add tests covering hg diff of partial trees...
r31262 9 integrity errors encountered!
Martin von Zweigbergk
verify: check directory manifests...
r28203 (first damaged changeset appears to be 0)
[1]
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store-newcopy/. .hg/store
Martin von Zweigbergk
verify: check directory manifests...
r28203
Verify reports missing dirlog entry
$ mv -f .hg/store-copy/meta/b/00manifest.* .hg/store/meta/b/
$ hg verify
checking changesets
checking manifests
checking directory manifests
Durham Goode
treemanifest: add tests covering hg diff of partial trees...
r31262 b/@2: parent-directory manifest refers to unknown revision ac0d30948e0b
b/@3: parent-directory manifest refers to unknown revision 367152e6af28
Martin von Zweigbergk
verify: check directory manifests...
r28203 b/bar/@?: rev 2 points to unexpected changeset 2
Durham Goode
treemanifest: add tests covering hg diff of partial trees...
r31262 b/bar/@?: 44d7e1146e0d not in parent-directory manifest
b/bar/@?: rev 3 points to unexpected changeset 3
b/bar/@?: 70b10c6b17b7 not in parent-directory manifest
b/bar/orange/@?: rev 2 points to unexpected changeset 3
Martin von Zweigbergk
verify: check directory manifests...
r28203 (expected None)
Durham Goode
treemanifest: add tests covering hg diff of partial trees...
r31262 b/bar/orange/fly/@?: rev 2 points to unexpected changeset 3
Martin von Zweigbergk
verify: check directory manifests...
r28203 (expected None)
crosschecking files in changesets and manifests
checking files
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 4 changesets with 18 changes to 8 files
Martin von Zweigbergk
verify: check directory manifests...
r28203 2 warnings encountered!
8 integrity errors encountered!
Durham Goode
treemanifest: add tests covering hg diff of partial trees...
r31262 (first damaged changeset appears to be 2)
Martin von Zweigbergk
verify: check directory manifests...
r28203 [1]
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store-newcopy/. .hg/store
Martin von Zweigbergk
verify: check directory manifests...
r28203
Augie Fackler
changegroup: introduce cg3, which has support for exchanging treemanifests...
r27432 Test cloning a treemanifest repo over http.
timeless
tests: put test-treemanifest.t on a port diet...
r28168 $ hg serve -p $HGPORT -d --pid-file=hg.pid --errorlog=errors.log
Augie Fackler
changegroup: introduce cg3, which has support for exchanging treemanifests...
r27432 $ cat hg.pid >> $DAEMON_PIDS
$ cd ..
We can clone even with the knob turned off and we'll get a treemanifest repo.
$ hg clone --config experimental.treemanifest=False \
Martin von Zweigbergk
changegroup3: introduce experimental.changegroup3 boolean config...
r27752 > --config experimental.changegroup3=True \
timeless
tests: put test-treemanifest.t on a port diet...
r28168 > http://localhost:$HGPORT deepclone
Augie Fackler
changegroup: introduce cg3, which has support for exchanging treemanifests...
r27432 requesting all changes
adding changesets
adding manifests
adding file changes
Durham Goode
treemanifest: add tests covering hg diff of partial trees...
r31262 added 4 changesets with 18 changes to 8 files
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets 775704be6f52:523e5c631710
Augie Fackler
changegroup: introduce cg3, which has support for exchanging treemanifests...
r27432 updating to branch default
8 files updated, 0 files merged, 0 files removed, 0 files unresolved
No server errors.
$ cat deeprepo/errors.log
requires got updated to include treemanifest
$ cat deepclone/.hg/requires | grep treemanifest
treemanifest
Tree manifest revlogs exist.
$ find deepclone/.hg/store/meta | sort
deepclone/.hg/store/meta
Gregory Szorc
tests: conditionalize test-treemanifest.t...
r37450 deepclone/.hg/store/meta/._a (reposimplestore !)
deepclone/.hg/store/meta/._a/00manifest.i (reposimplestore !)
Augie Fackler
changegroup: introduce cg3, which has support for exchanging treemanifests...
r27432 deepclone/.hg/store/meta/b
deepclone/.hg/store/meta/b/00manifest.i
deepclone/.hg/store/meta/b/bar
deepclone/.hg/store/meta/b/bar/00manifest.i
deepclone/.hg/store/meta/b/bar/orange
deepclone/.hg/store/meta/b/bar/orange/00manifest.i
deepclone/.hg/store/meta/b/bar/orange/fly
deepclone/.hg/store/meta/b/bar/orange/fly/00manifest.i
deepclone/.hg/store/meta/b/foo
deepclone/.hg/store/meta/b/foo/00manifest.i
deepclone/.hg/store/meta/b/foo/apple
deepclone/.hg/store/meta/b/foo/apple/00manifest.i
deepclone/.hg/store/meta/b/foo/apple/bees
deepclone/.hg/store/meta/b/foo/apple/bees/00manifest.i
Gregory Szorc
tests: conditionalize test-treemanifest.t...
r37450 deepclone/.hg/store/meta/~2e_a (reporevlogstore !)
deepclone/.hg/store/meta/~2e_a/00manifest.i (reporevlogstore !)
Augie Fackler
changegroup: introduce cg3, which has support for exchanging treemanifests...
r27432 Verify passes.
$ cd deepclone
$ hg verify
checking changesets
checking manifests
Martin von Zweigbergk
verify: check directory manifests...
r28203 checking directory manifests
Augie Fackler
changegroup: introduce cg3, which has support for exchanging treemanifests...
r27432 crosschecking files in changesets and manifests
checking files
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 4 changesets with 18 changes to 8 files
Augie Fackler
changegroup: introduce cg3, which has support for exchanging treemanifests...
r27432 $ cd ..
Martin von Zweigbergk
treemanifests: fix local clone...
r28006
Gregory Szorc
tests: conditionalize test-treemanifest.t...
r37450 #if reporevlogstore
Martin von Zweigbergk
treemanifests: fix local clone...
r28006 Create clones using old repo formats to use in later tests
$ hg clone --config format.usestore=False \
> --config experimental.changegroup3=True \
timeless
tests: put test-treemanifest.t on a port diet...
r28168 > http://localhost:$HGPORT deeprepo-basicstore
Martin von Zweigbergk
treemanifests: fix local clone...
r28006 requesting all changes
adding changesets
adding manifests
adding file changes
Durham Goode
treemanifest: add tests covering hg diff of partial trees...
r31262 added 4 changesets with 18 changes to 8 files
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets 775704be6f52:523e5c631710
Martin von Zweigbergk
treemanifests: fix local clone...
r28006 updating to branch default
8 files updated, 0 files merged, 0 files removed, 0 files unresolved
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007 $ cd deeprepo-basicstore
$ grep store .hg/requires
Martin von Zweigbergk
treemanifests: fix local clone...
r28006 [1]
timeless
tests: put test-treemanifest.t on a port diet...
r28168 $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --errorlog=errors.log
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007 $ cat hg.pid >> $DAEMON_PIDS
$ cd ..
Martin von Zweigbergk
treemanifests: fix local clone...
r28006 $ hg clone --config format.usefncache=False \
> --config experimental.changegroup3=True \
timeless
tests: put test-treemanifest.t on a port diet...
r28168 > http://localhost:$HGPORT deeprepo-encodedstore
Martin von Zweigbergk
treemanifests: fix local clone...
r28006 requesting all changes
adding changesets
adding manifests
adding file changes
Durham Goode
treemanifest: add tests covering hg diff of partial trees...
r31262 added 4 changesets with 18 changes to 8 files
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets 775704be6f52:523e5c631710
Martin von Zweigbergk
treemanifests: fix local clone...
r28006 updating to branch default
8 files updated, 0 files merged, 0 files removed, 0 files unresolved
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007 $ cd deeprepo-encodedstore
$ grep fncache .hg/requires
Martin von Zweigbergk
treemanifests: fix local clone...
r28006 [1]
timeless
tests: put test-treemanifest.t on a port diet...
r28168 $ hg serve -p $HGPORT2 -d --pid-file=hg.pid --errorlog=errors.log
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007 $ cat hg.pid >> $DAEMON_PIDS
$ cd ..
Martin von Zweigbergk
treemanifests: fix local clone...
r28006
Local clone with basicstore
$ hg clone -U deeprepo-basicstore local-clone-basicstore
$ hg -R local-clone-basicstore verify
checking changesets
checking manifests
Martin von Zweigbergk
verify: check directory manifests...
r28203 checking directory manifests
Martin von Zweigbergk
treemanifests: fix local clone...
r28006 crosschecking files in changesets and manifests
checking files
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 4 changesets with 18 changes to 8 files
Martin von Zweigbergk
treemanifests: fix local clone...
r28006
Local clone with encodedstore
$ hg clone -U deeprepo-encodedstore local-clone-encodedstore
$ hg -R local-clone-encodedstore verify
checking changesets
checking manifests
Martin von Zweigbergk
verify: check directory manifests...
r28203 checking directory manifests
Martin von Zweigbergk
treemanifests: fix local clone...
r28006 crosschecking files in changesets and manifests
checking files
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 4 changesets with 18 changes to 8 files
Martin von Zweigbergk
treemanifests: fix local clone...
r28006
Local clone with fncachestore
$ hg clone -U deeprepo local-clone-fncachestore
$ hg -R local-clone-fncachestore verify
checking changesets
checking manifests
Martin von Zweigbergk
verify: check directory manifests...
r28203 checking directory manifests
Martin von Zweigbergk
treemanifests: fix local clone...
r28006 crosschecking files in changesets and manifests
checking files
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 4 changesets with 18 changes to 8 files
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007
Stream clone with basicstore
Gregory Szorc
commands: rename clone --uncompressed to --stream and document...
r34394 $ hg clone --config experimental.changegroup3=True --stream -U \
timeless
tests: put test-treemanifest.t on a port diet...
r28168 > http://localhost:$HGPORT1 stream-clone-basicstore
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007 streaming all changes
av6
bundle2: make server.bundle2.stream default to True...
r39758 21 files to transfer, * of data (glob)
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007 transferred * in * seconds (*) (glob)
$ hg -R stream-clone-basicstore verify
checking changesets
checking manifests
Martin von Zweigbergk
verify: check directory manifests...
r28203 checking directory manifests
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007 crosschecking files in changesets and manifests
checking files
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 4 changesets with 18 changes to 8 files
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007
Stream clone with encodedstore
Gregory Szorc
commands: rename clone --uncompressed to --stream and document...
r34394 $ hg clone --config experimental.changegroup3=True --stream -U \
timeless
tests: put test-treemanifest.t on a port diet...
r28168 > http://localhost:$HGPORT2 stream-clone-encodedstore
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007 streaming all changes
av6
bundle2: make server.bundle2.stream default to True...
r39758 21 files to transfer, * of data (glob)
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007 transferred * in * seconds (*) (glob)
$ hg -R stream-clone-encodedstore verify
checking changesets
checking manifests
Martin von Zweigbergk
verify: check directory manifests...
r28203 checking directory manifests
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007 crosschecking files in changesets and manifests
checking files
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 4 changesets with 18 changes to 8 files
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007
Stream clone with fncachestore
Gregory Szorc
commands: rename clone --uncompressed to --stream and document...
r34394 $ hg clone --config experimental.changegroup3=True --stream -U \
timeless
tests: put test-treemanifest.t on a port diet...
r28168 > http://localhost:$HGPORT stream-clone-fncachestore
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007 streaming all changes
av6
bundle2: make server.bundle2.stream default to True...
r39758 22 files to transfer, * of data (glob)
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007 transferred * in * seconds (*) (glob)
$ hg -R stream-clone-fncachestore verify
checking changesets
checking manifests
Martin von Zweigbergk
verify: check directory manifests...
r28203 checking directory manifests
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007 crosschecking files in changesets and manifests
checking files
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 4 changesets with 18 changes to 8 files
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007
Packed bundle
$ hg -R deeprepo debugcreatestreamclonebundle repo-packed.hg
Durham Goode
treemanifest: add tests covering hg diff of partial trees...
r31262 writing 5330 bytes for 18 files
Boris Feld
test: enable sparse-revlog for test-treemanifest.t...
r40949 bundle requirements: generaldelta, revlogv1, sparserevlog, treemanifest
Martin von Zweigbergk
treemanifests: fix streaming clone...
r28007 $ hg debugbundle --spec repo-packed.hg
Boris Feld
test: enable sparse-revlog for test-treemanifest.t...
r40949 none-packed1;requirements%3Dgeneraldelta%2Crevlogv1%2Csparserevlog%2Ctreemanifest
Martin von Zweigbergk
bundle: avoid crash when no good changegroup version found...
r28669
Gregory Szorc
tests: conditionalize test-treemanifest.t...
r37450 #endif
Martin von Zweigbergk
bundle: avoid crash when no good changegroup version found...
r28669 Bundle with changegroup2 is not supported
$ hg -R deeprepo bundle --all -t v2 deeprepo.bundle
abort: repository does not support bundle version 02
[255]
Martin von Zweigbergk
changegroup: don't send empty subdirectory manifest groups...
r29371
Pull does not include changegroup for manifest the client already has from
other branch
$ mkdir grafted-dir-repo
$ cd grafted-dir-repo
$ hg --config experimental.treemanifest=1 init
$ mkdir dir
$ echo a > dir/file
$ echo a > file
$ hg ci -Am initial
adding dir/file
adding file
$ echo b > dir/file
$ hg ci -m updated
$ hg co '.^'
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg revert -r tip dir/
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 reverting dir/file
Martin von Zweigbergk
changegroup: don't send empty subdirectory manifest groups...
r29371 $ echo b > file # to make sure root manifest is sent
$ hg ci -m grafted
created new head
$ cd ..
$ hg --config experimental.treemanifest=1 clone --pull -r 1 \
> grafted-dir-repo grafted-dir-repo-clone
adding changesets
adding manifests
adding file changes
added 2 changesets with 3 changes to 2 files
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets d84f4c419457:09ab742f3b0f
Martin von Zweigbergk
changegroup: don't send empty subdirectory manifest groups...
r29371 updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd grafted-dir-repo-clone
$ hg pull -r 2
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 pulling from $TESTTMP/grafted-dir-repo
Martin von Zweigbergk
changegroup: don't send empty subdirectory manifest groups...
r29371 searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets 73699489fb7c
Martin von Zweigbergk
changegroup: don't send empty subdirectory manifest groups...
r29371 (run 'hg heads' to see heads, 'hg merge' to merge)
Durham Goode
treemanifest: make node reuse match flat manifest behavior...
r31294 Committing a empty commit does not duplicate root treemanifest
$ echo z >> z
$ hg commit -Aqm 'pre-empty commit'
$ hg rm z
$ hg commit --amend -m 'empty commit'
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/grafted-dir-repo-clone/.hg/strip-backup/cb99d5717cea-9e3b6b02-amend.hg
Durham Goode
treemanifest: make node reuse match flat manifest behavior...
r31294 $ hg log -r 'tip + tip^' -T '{manifest}\n'
1:678d3574b88c
1:678d3574b88c
$ hg --config extensions.strip= strip -r . -q