##// END OF EJS Templates
copies: add config option for writing copy metadata to file and/or changset...
copies: add config option for writing copy metadata to file and/or changset This introduces a config option that lets you choose to write copy metadata to the changeset extras instead of to filelog. There's also an option to write it to both places. I imagine that may possibly be useful when transitioning an existing repo. The copy metadata is stored as two fields in extras: one for copies since p1 and one for copies since p2. I may need to add more information later in order to make copy tracing faster. Specifically, I'm thinking out recording which files were added or removed so that copies._chaincopies() doesn't have to look at the manifest for that. But that would just be an optimization and that can be added once we know if it's necessary. I have also considered saving space by using replacing the destination file path by an index into the "files" list, but that can also be changed later (but before the feature is ready to release). Differential Revision: https://phab.mercurial-scm.org/D6183

File last commit:

r41465:b6673e9b default
r42317:0e41f40b default
Show More
test-repair-strip.t
141 lines | 4.1 KiB | text/troff | Tads3Lexer
/ tests / test-repair-strip.t
Gregory Szorc
tests: require revlog store with test-repair-strip.t...
r37443 #require unix-permissions no-root reporevlogstore
Patrick Mezard
test-repair-strip: turn into new style test
r14022
FUJIWARA Katsunori
tests: dump journal file by python script instead of sed for portability...
r27993 $ cat > $TESTTMP/dumpjournal.py <<EOF
> import sys
> for entry in sys.stdin.read().split('\n'):
> if entry:
Augie Fackler
tests: fix simple heredoc print statements to work on Py3...
r33686 > print(entry.split('\x00')[0])
FUJIWARA Katsunori
tests: dump journal file by python script instead of sed for portability...
r27993 > EOF
Patrick Mezard
test-repair-strip: turn into new style test
r14022 $ echo "[extensions]" >> $HGRCPATH
$ echo "mq=">> $HGRCPATH
$ teststrip() {
> hg -q up -C $1
> echo % before update $1, strip $2
> hg parents
> chmod -$3 $4
> hg strip $2 2>&1 | sed 's/\(bundle\).*/\1/' | sed 's/Permission denied.*\.hg\/store\/\(.*\)/Permission denied \.hg\/store\/\1/'
> echo % after update $1, strip $2
> chmod +$3 $4
> hg verify
> echo % journal contents
> if [ -f .hg/store/journal ]; then
Matt Harbison
tests: quote PYTHON usage...
r39743 > cat .hg/store/journal | "$PYTHON" $TESTTMP/dumpjournal.py
Patrick Mezard
test-repair-strip: turn into new style test
r14022 > else
> echo "(no journal)"
> fi
> ls .hg/store/journal >/dev/null 2>&1 && hg recover
> ls .hg/strip-backup/* >/dev/null 2>&1 && hg unbundle -q .hg/strip-backup/*
> rm -rf .hg/strip-backup
> }
$ hg init test
$ cd test
$ echo a > a
$ hg -q ci -m "a" -A
$ echo b > b
$ hg -q ci -m "b" -A
$ echo b2 >> b
$ hg -q ci -m "b2" -A
$ echo c > c
$ hg -q ci -m "c" -A
$ teststrip 0 2 w .hg/store/data/b.i
% before update 0, strip 2
changeset: 0:cb9a9f314b8b
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
saved backup bundle
transaction abort!
failed to truncate data/b.i
rollback failed - please run hg recover
Boris Feld
transaction: display data about why the transaction failed to rollback...
r40614 (failure reason: [Errno 13] Permission denied .hg/store/data/b.i')
Martin von Zweigbergk
strip: don't use "full" and "partial" to describe bundles...
r29954 strip failed, backup bundle
Yuya Nishihara
dispatch: quote filename in IOError as well...
r41465 abort: Permission denied .hg/store/data/b.i'
Patrick Mezard
test-repair-strip: turn into new style test
r14022 % after update 0, strip 2
abandoned transaction found - run hg recover
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
b@?: rev 1 points to nonexistent changeset 2
(expected 1)
b@?: 736c29771fba not in manifests
Gregory Szorc
verify: drop "revlog" from warning message...
r37428 warning: orphan data file 'data/c.i'
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 2 changesets with 3 changes to 2 files
Patrick Mezard
test-repair-strip: turn into new style test
r14022 2 warnings encountered!
2 integrity errors encountered!
% journal contents
00changelog.i
00manifest.i
data/b.i
data/c.i
rolling back interrupted transaction
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 2 changesets with 2 changes to 2 files
Patrick Mezard
test-repair-strip: turn into new style test
r14022 $ teststrip 0 2 r .hg/store/data/b.i
% before update 0, strip 2
changeset: 0:cb9a9f314b8b
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
Yuya Nishihara
dispatch: quote filename in IOError as well...
r41465 abort: Permission denied .hg/store/data/b.i'
Patrick Mezard
test-repair-strip: turn into new style test
r14022 % after update 0, strip 2
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 4 changesets with 4 changes to 3 files
Patrick Mezard
test-repair-strip: turn into new style test
r14022 % journal contents
(no journal)
$ teststrip 0 2 w .hg/store/00manifest.i
% before update 0, strip 2
changeset: 0:cb9a9f314b8b
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
saved backup bundle
transaction abort!
failed to truncate 00manifest.i
rollback failed - please run hg recover
Boris Feld
transaction: display data about why the transaction failed to rollback...
r40614 (failure reason: [Errno 13] Permission denied .hg/store/00manifest.i')
Martin von Zweigbergk
strip: don't use "full" and "partial" to describe bundles...
r29954 strip failed, backup bundle
Yuya Nishihara
dispatch: quote filename in IOError as well...
r41465 abort: Permission denied .hg/store/00manifest.i'
Patrick Mezard
test-repair-strip: turn into new style test
r14022 % after update 0, strip 2
abandoned transaction found - run hg recover
checking changesets
checking manifests
manifest@?: rev 2 points to nonexistent changeset 2
manifest@?: 3362547cdf64 not in changesets
manifest@?: rev 3 points to nonexistent changeset 3
manifest@?: 265a85892ecb not in changesets
crosschecking files in changesets and manifests
c@3: in manifest but not in changeset
checking files
b@?: rev 1 points to nonexistent changeset 2
(expected 1)
c@?: rev 0 points to nonexistent changeset 3
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 2 changesets with 4 changes to 3 files
Patrick Mezard
test-repair-strip: turn into new style test
r14022 1 warnings encountered!
7 integrity errors encountered!
(first damaged changeset appears to be 3)
% journal contents
00changelog.i
00manifest.i
data/b.i
data/c.i
rolling back interrupted transaction
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 2 changesets with 2 changes to 2 files
Patrick Mezard
test-repair-strip: turn into new style test
r14022
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913 $ cd ..