annotate tests/test-lfconvert.t @ 20742:3681de20b0a7

parsers: fail fast if Python has wrong minor version (issue4110) This change causes an informative ImportError to be raised when importing the parsers extension module if the minor version of the currently-running Python interpreter doesn't match that of the Python used when compiling the extension module. This change also exposes a parsers.versionerrortext constant in the C implementation of the module. Its presence can be used to determine whether this behavior is present in a version of the module. The value of the constant is the leading text of the ImportError raised and is set to "Python minor version mismatch". Here is an example of what the new error looks like: Traceback (most recent call last): File "test.py", line 1, in <module> import mercurial.parsers ImportError: Python minor version mismatch: The Mercurial extension modules were compiled with Python 2.7.6, but Mercurial is currently using Python with sys.hexversion=33883888: Python 2.5.6 (r256:88840, Nov 18 2012, 05:37:10) [GCC 4.2.1 Compatible Apple Clang 4.1 ((tags/Apple/clang-421.11.66))] at: /opt/local/Library/Frameworks/Python.framework/Versions/2.5/Resources/ Python.app/Contents/MacOS/Python The reason for raising an error in this scenario is that Python's C API is known not to be compatible from minor version to minor version, even if sys.api_version is the same. See for example this Python bug report about incompatibilities between 2.5 and 2.6+: http://bugs.python.org/issue8118 These incompatibilities can cause Mercurial to break in mysterious, unforeseen ways. For example, when Mercurial compiled with Python 2.7 was run with 2.5, the following crash occurred when running "hg status": http://bz.selenic.com/show_bug.cgi?id=4110 After this crash was fixed, running with Python 2.5 no longer crashes, but the following puzzling behavior still occurs: $ hg status ... File ".../mercurial/changelog.py", line 123, in __init__ revlog.revlog.__init__(self, opener, "00changelog.i") File ".../mercurial/revlog.py", line 251, in __init__ d = self._io.parseindex(i, self._inline) File ".../mercurial/revlog.py", line 158, in parseindex index, cache = parsers.parse_index2(data, inline) TypeError: data is not a string which can be reproduced more simply with: import mercurial.parsers as parsers parsers.parse_index2("", True) Both the crash and the TypeError occurred because the Python C API's PyString_Check() returns the wrong value when the C header files from Python 2.7 are run with Python 2.5. This is an example of an incompatibility of the sort mentioned in the Python bug report above. Failing fast with an informative error message results in a better user experience in cases like the above. The information in the ImportError also simplifies troubleshooting for those on Mercurial mailing lists, the bug tracker, etc. This patch only adds the version check to parsers.c, which is sufficient to affect command-line commands like "hg status" and "hg summary". An idea for a future improvement is to move the version-checking C code to a more central location, and have it run when importing all Mercurial extension modules and not just parsers.c.
author Chris Jerdonek <chris.jerdonek@gmail.com>
date Wed, 04 Dec 2013 20:38:27 -0800
parents ea005e754c9c
children 19d6fec60b81
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
17823
0fc1ce271ee6 largefiles: fix a traceback in lfconvert if a largefile is missing (issue3519)
Matt Harbison <matt_harbison@yahoo.com>
parents: 16913
diff changeset
1 $ USERCACHE="$TESTTMP/cache"; export USERCACHE
0fc1ce271ee6 largefiles: fix a traceback in lfconvert if a largefile is missing (issue3519)
Matt Harbison <matt_harbison@yahoo.com>
parents: 16913
diff changeset
2 $ mkdir "${USERCACHE}"
15338
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
3 $ cat >> $HGRCPATH <<EOF
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
4 > [extensions]
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
5 > largefiles =
15339
be1377d19018 largefiles: test lfconvert error handling; remove redundant code
Greg Ward <greg@gerg.ca>
parents: 15338
diff changeset
6 > share =
20115
db6b958c4f35 tests: use strip extension instead of mq where it makes sense
Martin Geisler <martin@geisler.net>
parents: 19950
diff changeset
7 > strip =
17877
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
8 > convert =
15338
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
9 > [largefiles]
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
10 > minsize = 0.5
15579
6c5e6ebe0812 largefiles: use "ui.configlist()" to get largefiles.patterns configuration
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 15389
diff changeset
11 > patterns = **.other
6c5e6ebe0812 largefiles: use "ui.configlist()" to get largefiles.patterns configuration
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 15389
diff changeset
12 > **.dat
17823
0fc1ce271ee6 largefiles: fix a traceback in lfconvert if a largefile is missing (issue3519)
Matt Harbison <matt_harbison@yahoo.com>
parents: 16913
diff changeset
13 > usercache=${USERCACHE}
15338
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
14 > EOF
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
15
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
16 "lfconvert" works
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
17 $ hg init bigfile-repo
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
18 $ cd bigfile-repo
15341
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
19 $ cat >> .hg/hgrc <<EOF
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
20 > [extensions]
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
21 > largefiles = !
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
22 > EOF
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
23 $ mkdir sub
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
24 $ dd if=/dev/zero bs=1k count=256 > large 2> /dev/null
15810
3d11da212e30 largefiles: add tests for uncovered codepaths (issue3092)
Levi Bard <levi@unity3d.com>
parents: 15591
diff changeset
25 $ dd if=/dev/zero bs=1k count=256 > large2 2> /dev/null
15341
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
26 $ echo normal > normal1
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
27 $ echo alsonormal > sub/normal2
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
28 $ dd if=/dev/zero bs=1k count=10 > sub/maybelarge.dat 2> /dev/null
15338
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
29 $ hg addremove
15341
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
30 adding large
15810
3d11da212e30 largefiles: add tests for uncovered codepaths (issue3092)
Levi Bard <levi@unity3d.com>
parents: 15591
diff changeset
31 adding large2
15341
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
32 adding normal1
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
33 adding sub/maybelarge.dat
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
34 adding sub/normal2
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
35 $ hg commit -m"add large, normal1" large normal1
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
36 $ hg commit -m"add sub/*" sub
16908
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16310
diff changeset
37
15810
3d11da212e30 largefiles: add tests for uncovered codepaths (issue3092)
Levi Bard <levi@unity3d.com>
parents: 15591
diff changeset
38 Test tag parsing
3d11da212e30 largefiles: add tests for uncovered codepaths (issue3092)
Levi Bard <levi@unity3d.com>
parents: 15591
diff changeset
39 $ cat >> .hgtags <<EOF
3d11da212e30 largefiles: add tests for uncovered codepaths (issue3092)
Levi Bard <levi@unity3d.com>
parents: 15591
diff changeset
40 > IncorrectlyFormattedTag!
3d11da212e30 largefiles: add tests for uncovered codepaths (issue3092)
Levi Bard <levi@unity3d.com>
parents: 15591
diff changeset
41 > invalidhash sometag
3d11da212e30 largefiles: add tests for uncovered codepaths (issue3092)
Levi Bard <levi@unity3d.com>
parents: 15591
diff changeset
42 > 0123456789abcdef anothertag
3d11da212e30 largefiles: add tests for uncovered codepaths (issue3092)
Levi Bard <levi@unity3d.com>
parents: 15591
diff changeset
43 > EOF
3d11da212e30 largefiles: add tests for uncovered codepaths (issue3092)
Levi Bard <levi@unity3d.com>
parents: 15591
diff changeset
44 $ hg add .hgtags
3d11da212e30 largefiles: add tests for uncovered codepaths (issue3092)
Levi Bard <levi@unity3d.com>
parents: 15591
diff changeset
45 $ hg commit -m"add large2" large2 .hgtags
16908
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16310
diff changeset
46
15810
3d11da212e30 largefiles: add tests for uncovered codepaths (issue3092)
Levi Bard <levi@unity3d.com>
parents: 15591
diff changeset
47 Test link+rename largefile codepath
15341
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
48 $ [ -d .hg/largefiles ] && echo fail || echo pass
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
49 pass
15338
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
50 $ cd ..
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
51 $ hg lfconvert --size 0.2 bigfile-repo largefiles-repo
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
52 initializing destination largefiles-repo
15810
3d11da212e30 largefiles: add tests for uncovered codepaths (issue3092)
Levi Bard <levi@unity3d.com>
parents: 15591
diff changeset
53 skipping incorrectly formatted tag IncorrectlyFormattedTag!
3d11da212e30 largefiles: add tests for uncovered codepaths (issue3092)
Levi Bard <levi@unity3d.com>
parents: 15591
diff changeset
54 skipping incorrectly formatted id invalidhash
3d11da212e30 largefiles: add tests for uncovered codepaths (issue3092)
Levi Bard <levi@unity3d.com>
parents: 15591
diff changeset
55 no mapping for id 0123456789abcdef
16908
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16310
diff changeset
56 #if symlink
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16310
diff changeset
57 $ hg --cwd bigfile-repo rename large2 large3
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16310
diff changeset
58 $ ln -sf large bigfile-repo/large3
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16310
diff changeset
59 $ hg --cwd bigfile-repo commit -m"make large2 a symlink" large2 large3
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16310
diff changeset
60 $ hg lfconvert --size 0.2 bigfile-repo largefiles-repo-symlink
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16310
diff changeset
61 initializing destination largefiles-repo-symlink
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16310
diff changeset
62 skipping incorrectly formatted tag IncorrectlyFormattedTag!
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16310
diff changeset
63 skipping incorrectly formatted id invalidhash
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16310
diff changeset
64 no mapping for id 0123456789abcdef
15810
3d11da212e30 largefiles: add tests for uncovered codepaths (issue3092)
Levi Bard <levi@unity3d.com>
parents: 15591
diff changeset
65 abort: renamed/copied largefile large3 becomes symlink
3d11da212e30 largefiles: add tests for uncovered codepaths (issue3092)
Levi Bard <levi@unity3d.com>
parents: 15591
diff changeset
66 [255]
16908
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16310
diff changeset
67 #endif
15810
3d11da212e30 largefiles: add tests for uncovered codepaths (issue3092)
Levi Bard <levi@unity3d.com>
parents: 15591
diff changeset
68 $ cd bigfile-repo
3d11da212e30 largefiles: add tests for uncovered codepaths (issue3092)
Levi Bard <levi@unity3d.com>
parents: 15591
diff changeset
69 $ hg strip --no-backup 2
3d11da212e30 largefiles: add tests for uncovered codepaths (issue3092)
Levi Bard <levi@unity3d.com>
parents: 15591
diff changeset
70 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
3d11da212e30 largefiles: add tests for uncovered codepaths (issue3092)
Levi Bard <levi@unity3d.com>
parents: 15591
diff changeset
71 $ cd ..
16908
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16310
diff changeset
72 $ rm -rf largefiles-repo largefiles-repo-symlink
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16310
diff changeset
73
15810
3d11da212e30 largefiles: add tests for uncovered codepaths (issue3092)
Levi Bard <levi@unity3d.com>
parents: 15591
diff changeset
74 $ hg lfconvert --size 0.2 bigfile-repo largefiles-repo
3d11da212e30 largefiles: add tests for uncovered codepaths (issue3092)
Levi Bard <levi@unity3d.com>
parents: 15591
diff changeset
75 initializing destination largefiles-repo
15338
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
76
15341
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
77 "lfconvert" converts content correctly
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
78 $ cd largefiles-repo
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
79 $ hg up
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
80 getting changed largefiles
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
81 2 largefiles updated, 0 removed
18459
c9db897d5a43 largefiles: fix largefiles+subrepo update (issue3752)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 18356
diff changeset
82 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
15341
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
83 $ hg locate
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
84 .hglf/large
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
85 .hglf/sub/maybelarge.dat
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
86 normal1
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
87 sub/normal2
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
88 $ cat normal1
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
89 normal
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
90 $ cat sub/normal2
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
91 alsonormal
15389
3bece03bf3c6 tests: use md5sum.py instead of sha1sum, add check
Matt Mackall <mpm@selenic.com>
parents: 15364
diff changeset
92 $ "$TESTDIR/md5sum.py" large sub/maybelarge.dat
3bece03bf3c6 tests: use md5sum.py instead of sha1sum, add check
Matt Mackall <mpm@selenic.com>
parents: 15364
diff changeset
93 ec87a838931d4d5d2e94a04644788a55 large
3bece03bf3c6 tests: use md5sum.py instead of sha1sum, add check
Matt Mackall <mpm@selenic.com>
parents: 15364
diff changeset
94 1276481102f218c981e0324180bafd9f sub/maybelarge.dat
15341
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
95
15338
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
96 "lfconvert" adds 'largefiles' to .hg/requires.
15341
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
97 $ cat .hg/requires
18356
752f77ef7202 localrepo: store requirements sorted
Mads Kiilerich <mads@kiilerich.com>
parents: 18159
diff changeset
98 dotencode
752f77ef7202 localrepo: store requirements sorted
Mads Kiilerich <mads@kiilerich.com>
parents: 18159
diff changeset
99 fncache
15338
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
100 largefiles
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
101 revlogv1
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
102 store
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
103
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
104 "lfconvert" includes a newline at the end of the standin files.
15341
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
105 $ cat .hglf/large .hglf/sub/maybelarge.dat
15338
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
106 2e000fa7e85759c7f4c254d4d9c33ef481e459a7
15341
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
107 34e163be8e43c5631d8b92e9c43ab0bf0fa62b9c
15339
be1377d19018 largefiles: test lfconvert error handling; remove redundant code
Greg Ward <greg@gerg.ca>
parents: 15338
diff changeset
108 $ cd ..
be1377d19018 largefiles: test lfconvert error handling; remove redundant code
Greg Ward <greg@gerg.ca>
parents: 15338
diff changeset
109
15342
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
110 add some changesets to rename/remove/merge
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
111 $ cd bigfile-repo
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
112 $ hg mv -q sub stuff
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
113 $ hg commit -m"rename sub/ to stuff/"
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
114 $ hg update -q 1
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
115 $ echo blah >> normal3
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
116 $ echo blah >> sub/normal2
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
117 $ echo blah >> sub/maybelarge.dat
15389
3bece03bf3c6 tests: use md5sum.py instead of sha1sum, add check
Matt Mackall <mpm@selenic.com>
parents: 15364
diff changeset
118 $ "$TESTDIR/md5sum.py" sub/maybelarge.dat
3bece03bf3c6 tests: use md5sum.py instead of sha1sum, add check
Matt Mackall <mpm@selenic.com>
parents: 15364
diff changeset
119 1dd0b99ff80e19cff409702a1d3f5e15 sub/maybelarge.dat
15342
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
120 $ hg commit -A -m"add normal3, modify sub/*"
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
121 adding normal3
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
122 created new head
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
123 $ hg rm large normal3
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
124 $ hg commit -q -m"remove large, normal3"
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
125 $ hg merge
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
126 merging sub/maybelarge.dat and stuff/maybelarge.dat to stuff/maybelarge.dat
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 15389
diff changeset
127 warning: $TESTTMP/bigfile-repo/stuff/maybelarge.dat looks like a binary file. (glob)
15501
2371f4aea665 merge: give a special message for internal:merge failure (issue3105)
Matt Mackall <mpm@selenic.com>
parents: 15447
diff changeset
128 merging stuff/maybelarge.dat incomplete! (edit conflicts, then use 'hg resolve --mark')
15342
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
129 merging sub/normal2 and stuff/normal2 to stuff/normal2
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
130 0 files updated, 1 files merged, 0 files removed, 1 files unresolved
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
131 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
132 [1]
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
133 $ hg cat -r . sub/maybelarge.dat > stuff/maybelarge.dat
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
134 $ hg resolve -m stuff/maybelarge.dat
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
135 $ hg commit -m"merge"
20117
aa9385f983fa tests: don't load unnecessary graphlog extension
Martin Geisler <martin@geisler.net>
parents: 20115
diff changeset
136 $ hg log -G --template "{rev}:{node|short} {desc|firstline}\n"
15342
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
137 @ 5:4884f215abda merge
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
138 |\
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
139 | o 4:7285f817b77e remove large, normal3
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
140 | |
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
141 | o 3:67e3892e3534 add normal3, modify sub/*
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
142 | |
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
143 o | 2:c96c8beb5d56 rename sub/ to stuff/
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
144 |/
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
145 o 1:020c65d24e11 add sub/*
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
146 |
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
147 o 0:117b8328f97a add large, normal1
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
148
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
149 $ cd ..
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
150
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
151 lfconvert with rename, merge, and remove
15343
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
152 $ rm -rf largefiles-repo
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
153 $ hg lfconvert --size 0.2 bigfile-repo largefiles-repo
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
154 initializing destination largefiles-repo
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
155 $ cd largefiles-repo
20117
aa9385f983fa tests: don't load unnecessary graphlog extension
Martin Geisler <martin@geisler.net>
parents: 20115
diff changeset
156 $ hg log -G --template "{rev}:{node|short} {desc|firstline}\n"
15342
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
157 o 5:8e05f5f2b77e merge
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
158 |\
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
159 | o 4:a5a02de7a8e4 remove large, normal3
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
160 | |
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
161 | o 3:55759520c76f add normal3, modify sub/*
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
162 | |
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
163 o | 2:261ad3f3f037 rename sub/ to stuff/
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
164 |/
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
165 o 1:334e5237836d add sub/*
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
166 |
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
167 o 0:d4892ec57ce2 add large, normal1
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
168
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
169 $ hg locate -r 2
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
170 .hglf/large
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
171 .hglf/stuff/maybelarge.dat
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
172 normal1
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
173 stuff/normal2
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
174 $ hg locate -r 3
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
175 .hglf/large
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
176 .hglf/sub/maybelarge.dat
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
177 normal1
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
178 normal3
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
179 sub/normal2
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
180 $ hg locate -r 4
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
181 .hglf/sub/maybelarge.dat
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
182 normal1
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
183 sub/normal2
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
184 $ hg locate -r 5
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
185 .hglf/stuff/maybelarge.dat
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
186 normal1
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
187 stuff/normal2
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
188 $ hg update
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
189 getting changed largefiles
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
190 1 largefiles updated, 0 removed
18459
c9db897d5a43 largefiles: fix largefiles+subrepo update (issue3752)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 18356
diff changeset
191 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
15342
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
192 $ cat stuff/normal2
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
193 alsonormal
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
194 blah
15389
3bece03bf3c6 tests: use md5sum.py instead of sha1sum, add check
Matt Mackall <mpm@selenic.com>
parents: 15364
diff changeset
195 $ "$TESTDIR/md5sum.py" stuff/maybelarge.dat
3bece03bf3c6 tests: use md5sum.py instead of sha1sum, add check
Matt Mackall <mpm@selenic.com>
parents: 15364
diff changeset
196 1dd0b99ff80e19cff409702a1d3f5e15 stuff/maybelarge.dat
15342
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
197 $ cat .hglf/stuff/maybelarge.dat
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
198 76236b6a2c6102826c61af4297dd738fb3b1de38
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
199 $ cd ..
b2e00d67f590 largefiles: test lfconvert with rename, remove, and merge
Greg Ward <greg@gerg.ca>
parents: 15341
diff changeset
200
15339
be1377d19018 largefiles: test lfconvert error handling; remove redundant code
Greg Ward <greg@gerg.ca>
parents: 15338
diff changeset
201 "lfconvert" error cases
15340
0e58513cc59a largefiles: rearrange how lfconvert detects non-local repos
Greg Ward <greg@gerg.ca>
parents: 15339
diff changeset
202 $ hg lfconvert http://localhost/foo foo
0e58513cc59a largefiles: rearrange how lfconvert detects non-local repos
Greg Ward <greg@gerg.ca>
parents: 15339
diff changeset
203 abort: http://localhost/foo is not a local Mercurial repo
0e58513cc59a largefiles: rearrange how lfconvert detects non-local repos
Greg Ward <greg@gerg.ca>
parents: 15339
diff changeset
204 [255]
0e58513cc59a largefiles: rearrange how lfconvert detects non-local repos
Greg Ward <greg@gerg.ca>
parents: 15339
diff changeset
205 $ hg lfconvert foo ssh://localhost/foo
0e58513cc59a largefiles: rearrange how lfconvert detects non-local repos
Greg Ward <greg@gerg.ca>
parents: 15339
diff changeset
206 abort: ssh://localhost/foo is not a local Mercurial repo
0e58513cc59a largefiles: rearrange how lfconvert detects non-local repos
Greg Ward <greg@gerg.ca>
parents: 15339
diff changeset
207 [255]
15339
be1377d19018 largefiles: test lfconvert error handling; remove redundant code
Greg Ward <greg@gerg.ca>
parents: 15338
diff changeset
208 $ hg lfconvert nosuchrepo foo
be1377d19018 largefiles: test lfconvert error handling; remove redundant code
Greg Ward <greg@gerg.ca>
parents: 15338
diff changeset
209 abort: repository nosuchrepo not found!
be1377d19018 largefiles: test lfconvert error handling; remove redundant code
Greg Ward <greg@gerg.ca>
parents: 15338
diff changeset
210 [255]
be1377d19018 largefiles: test lfconvert error handling; remove redundant code
Greg Ward <greg@gerg.ca>
parents: 15338
diff changeset
211 $ hg share -q -U bigfile-repo shared
15364
572c22c88be6 tests: fix check-code detection of anchored expressions, fix echo -n usage
Matt Mackall <mpm@selenic.com>
parents: 15343
diff changeset
212 $ printf 'bogus' > shared/.hg/sharedpath
15339
be1377d19018 largefiles: test lfconvert error handling; remove redundant code
Greg Ward <greg@gerg.ca>
parents: 15338
diff changeset
213 $ hg lfconvert shared foo
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 15389
diff changeset
214 abort: .hg/sharedpath points to nonexistent directory $TESTTMP/bogus! (glob)
15339
be1377d19018 largefiles: test lfconvert error handling; remove redundant code
Greg Ward <greg@gerg.ca>
parents: 15338
diff changeset
215 [255]
be1377d19018 largefiles: test lfconvert error handling; remove redundant code
Greg Ward <greg@gerg.ca>
parents: 15338
diff changeset
216 $ hg lfconvert bigfile-repo largefiles-repo
be1377d19018 largefiles: test lfconvert error handling; remove redundant code
Greg Ward <greg@gerg.ca>
parents: 15338
diff changeset
217 initializing destination largefiles-repo
be1377d19018 largefiles: test lfconvert error handling; remove redundant code
Greg Ward <greg@gerg.ca>
parents: 15338
diff changeset
218 abort: repository largefiles-repo already exists!
be1377d19018 largefiles: test lfconvert error handling; remove redundant code
Greg Ward <greg@gerg.ca>
parents: 15338
diff changeset
219 [255]
15338
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
220
15343
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
221 add another largefile to the new largefiles repo
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
222 $ cd largefiles-repo
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
223 $ dd if=/dev/zero bs=1k count=1k > anotherlarge 2> /dev/null
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
224 $ hg add --lfsize=1 anotherlarge
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
225 $ hg commit -m "add anotherlarge (should be a largefile)"
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
226 $ cat .hglf/anotherlarge
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
227 3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
228 $ cd ..
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
229
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
230 round-trip: converting back to a normal (non-largefiles) repo with
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
231 "lfconvert --to-normal" should give the same as ../bigfile-repo
15339
be1377d19018 largefiles: test lfconvert error handling; remove redundant code
Greg Ward <greg@gerg.ca>
parents: 15338
diff changeset
232 $ cd largefiles-repo
15338
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
233 $ hg lfconvert --to-normal . ../normal-repo
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
234 initializing destination ../normal-repo
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
235 $ cd ../normal-repo
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
236 $ cat >> .hg/hgrc <<EOF
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
237 > [extensions]
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
238 > largefiles = !
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
239 > EOF
15343
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
240
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
241 # Hmmm: the changeset ID for rev 5 is different from the original
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
242 # normal repo (../bigfile-repo), because the changelog filelist
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
243 # differs between the two incarnations of rev 5: this repo includes
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
244 # 'large' in the list, but ../bigfile-repo does not. Since rev 5
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
245 # removes 'large' relative to the first parent in both repos, it seems
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
246 # to me that lfconvert is doing a *better* job than
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
247 # "hg remove" + "hg merge" + "hg commit".
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
248 # $ hg -R ../bigfile-repo debugdata -c 5
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
249 # $ hg debugdata -c 5
20117
aa9385f983fa tests: don't load unnecessary graphlog extension
Martin Geisler <martin@geisler.net>
parents: 20115
diff changeset
250 $ hg log -G --template "{rev}:{node|short} {desc|firstline}\n"
15343
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
251 o 6:1635824e6f59 add anotherlarge (should be a largefile)
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
252 |
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
253 o 5:7215f8deeaaf merge
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
254 |\
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
255 | o 4:7285f817b77e remove large, normal3
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
256 | |
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
257 | o 3:67e3892e3534 add normal3, modify sub/*
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
258 | |
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
259 o | 2:c96c8beb5d56 rename sub/ to stuff/
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
260 |/
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
261 o 1:020c65d24e11 add sub/*
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
262 |
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
263 o 0:117b8328f97a add large, normal1
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
264
15338
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
265 $ hg update
15343
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
266 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
15338
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
267 $ hg locate
15341
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
268 anotherlarge
7ef13e53434e largefiles: beef up test-lfconvert.t so it's more thorough
Greg Ward <greg@gerg.ca>
parents: 15340
diff changeset
269 normal1
15343
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
270 stuff/maybelarge.dat
7fe8b7e097a4 largefiles: test "lfconvert --to-normal" with rename/remove/merge
Greg Ward <greg@gerg.ca>
parents: 15342
diff changeset
271 stuff/normal2
15338
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
272 $ [ -d .hg/largefiles ] && echo fail || echo pass
f4b29792fcda largefiles: extract test-lfconvert.t from test-largefiles.t
Greg Ward <greg@gerg.ca>
parents:
diff changeset
273 pass
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16908
diff changeset
274
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16908
diff changeset
275 $ cd ..
17823
0fc1ce271ee6 largefiles: fix a traceback in lfconvert if a largefile is missing (issue3519)
Matt Harbison <matt_harbison@yahoo.com>
parents: 16913
diff changeset
276
17878
d1d0140287b8 largefiles: don't copy largefiles from working dir to the store while converting
Matt Harbison <matt_harbison@yahoo.com>
parents: 17877
diff changeset
277 Clearing the usercache ensures that commitctx doesn't try to cache largefiles
d1d0140287b8 largefiles: don't copy largefiles from working dir to the store while converting
Matt Harbison <matt_harbison@yahoo.com>
parents: 17877
diff changeset
278 from the working dir on a convert.
d1d0140287b8 largefiles: don't copy largefiles from working dir to the store while converting
Matt Harbison <matt_harbison@yahoo.com>
parents: 17877
diff changeset
279 $ rm "${USERCACHE}"/*
17877
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
280 $ hg convert largefiles-repo
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
281 assuming destination largefiles-repo-hg
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
282 initializing destination largefiles-repo-hg repository
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
283 scanning source...
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
284 sorting...
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
285 converting...
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
286 6 add large, normal1
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
287 5 add sub/*
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
288 4 rename sub/ to stuff/
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
289 3 add normal3, modify sub/*
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
290 2 remove large, normal3
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
291 1 merge
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
292 0 add anotherlarge (should be a largefile)
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
293
20117
aa9385f983fa tests: don't load unnecessary graphlog extension
Martin Geisler <martin@geisler.net>
parents: 20115
diff changeset
294 $ hg -R largefiles-repo-hg log -G --template "{rev}:{node|short} {desc|firstline}\n"
17877
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
295 o 6:17126745edfd add anotherlarge (should be a largefile)
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
296 |
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
297 o 5:9cc5aa7204f0 merge
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
298 |\
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
299 | o 4:a5a02de7a8e4 remove large, normal3
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
300 | |
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
301 | o 3:55759520c76f add normal3, modify sub/*
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
302 | |
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
303 o | 2:261ad3f3f037 rename sub/ to stuff/
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
304 |/
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
305 o 1:334e5237836d add sub/*
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
306 |
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
307 o 0:d4892ec57ce2 add large, normal1
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
308
17878
d1d0140287b8 largefiles: don't copy largefiles from working dir to the store while converting
Matt Harbison <matt_harbison@yahoo.com>
parents: 17877
diff changeset
309 Verify will fail (for now) if the usercache is purged before converting, since
d1d0140287b8 largefiles: don't copy largefiles from working dir to the store while converting
Matt Harbison <matt_harbison@yahoo.com>
parents: 17877
diff changeset
310 largefiles are not cached in the converted repo's local store by the conversion
d1d0140287b8 largefiles: don't copy largefiles from working dir to the store while converting
Matt Harbison <matt_harbison@yahoo.com>
parents: 17877
diff changeset
311 process.
17877
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
312 $ hg -R largefiles-repo-hg verify --large --lfa
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
313 checking changesets
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
314 checking manifests
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
315 crosschecking files in changesets and manifests
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
316 checking files
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
317 8 files, 7 changesets, 12 total revisions
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
318 searching 7 changesets for largefiles
18557
945ba91c5e16 tests: fix windows test failure with largefiles
Mads Kiilerich <madski@unity3d.com>
parents: 18545
diff changeset
319 changeset 0:d4892ec57ce2: large references missing $TESTTMP/largefiles-repo-hg/.hg/largefiles/2e000fa7e85759c7f4c254d4d9c33ef481e459a7 (glob)
945ba91c5e16 tests: fix windows test failure with largefiles
Mads Kiilerich <madski@unity3d.com>
parents: 18545
diff changeset
320 changeset 1:334e5237836d: sub/maybelarge.dat references missing $TESTTMP/largefiles-repo-hg/.hg/largefiles/34e163be8e43c5631d8b92e9c43ab0bf0fa62b9c (glob)
945ba91c5e16 tests: fix windows test failure with largefiles
Mads Kiilerich <madski@unity3d.com>
parents: 18545
diff changeset
321 changeset 2:261ad3f3f037: stuff/maybelarge.dat references missing $TESTTMP/largefiles-repo-hg/.hg/largefiles/34e163be8e43c5631d8b92e9c43ab0bf0fa62b9c (glob)
945ba91c5e16 tests: fix windows test failure with largefiles
Mads Kiilerich <madski@unity3d.com>
parents: 18545
diff changeset
322 changeset 3:55759520c76f: sub/maybelarge.dat references missing $TESTTMP/largefiles-repo-hg/.hg/largefiles/76236b6a2c6102826c61af4297dd738fb3b1de38 (glob)
945ba91c5e16 tests: fix windows test failure with largefiles
Mads Kiilerich <madski@unity3d.com>
parents: 18545
diff changeset
323 changeset 5:9cc5aa7204f0: stuff/maybelarge.dat references missing $TESTTMP/largefiles-repo-hg/.hg/largefiles/76236b6a2c6102826c61af4297dd738fb3b1de38 (glob)
945ba91c5e16 tests: fix windows test failure with largefiles
Mads Kiilerich <madski@unity3d.com>
parents: 18545
diff changeset
324 changeset 6:17126745edfd: anotherlarge references missing $TESTTMP/largefiles-repo-hg/.hg/largefiles/3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3 (glob)
17877
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
325 verified existence of 6 revisions of 4 largefiles
17878
d1d0140287b8 largefiles: don't copy largefiles from working dir to the store while converting
Matt Harbison <matt_harbison@yahoo.com>
parents: 17877
diff changeset
326 [1]
17877
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
327 $ hg -R largefiles-repo-hg showconfig paths
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
328
92bbb21d4b13 largefiles: respect the rev when reading standins in copytostore() (issue3630)
Matt Harbison <matt_harbison@yahoo.com>
parents: 17824
diff changeset
329
17823
0fc1ce271ee6 largefiles: fix a traceback in lfconvert if a largefile is missing (issue3519)
Matt Harbison <matt_harbison@yahoo.com>
parents: 16913
diff changeset
330 Avoid a traceback if a largefile isn't available (issue3519)
0fc1ce271ee6 largefiles: fix a traceback in lfconvert if a largefile is missing (issue3519)
Matt Harbison <matt_harbison@yahoo.com>
parents: 16913
diff changeset
331
17824
221c9c3146eb largefiles: always create the cache and standin directories when cloning
Matt Harbison <matt_harbison@yahoo.com>
parents: 17823
diff changeset
332 Ensure the largefile can be cached in the source if necessary
17823
0fc1ce271ee6 largefiles: fix a traceback in lfconvert if a largefile is missing (issue3519)
Matt Harbison <matt_harbison@yahoo.com>
parents: 16913
diff changeset
333 $ hg clone -U largefiles-repo issue3519
17878
d1d0140287b8 largefiles: don't copy largefiles from working dir to the store while converting
Matt Harbison <matt_harbison@yahoo.com>
parents: 17877
diff changeset
334 $ rm -f "${USERCACHE}"/*
17823
0fc1ce271ee6 largefiles: fix a traceback in lfconvert if a largefile is missing (issue3519)
Matt Harbison <matt_harbison@yahoo.com>
parents: 16913
diff changeset
335 $ hg lfconvert --to-normal issue3519 normalized3519
0fc1ce271ee6 largefiles: fix a traceback in lfconvert if a largefile is missing (issue3519)
Matt Harbison <matt_harbison@yahoo.com>
parents: 16913
diff changeset
336 initializing destination normalized3519
17824
221c9c3146eb largefiles: always create the cache and standin directories when cloning
Matt Harbison <matt_harbison@yahoo.com>
parents: 17823
diff changeset
337
221c9c3146eb largefiles: always create the cache and standin directories when cloning
Matt Harbison <matt_harbison@yahoo.com>
parents: 17823
diff changeset
338 Ensure the abort message is useful if a largefile is entirely unavailable
221c9c3146eb largefiles: always create the cache and standin directories when cloning
Matt Harbison <matt_harbison@yahoo.com>
parents: 17823
diff changeset
339 $ rm -rf normalized3519
221c9c3146eb largefiles: always create the cache and standin directories when cloning
Matt Harbison <matt_harbison@yahoo.com>
parents: 17823
diff changeset
340 $ rm "${USERCACHE}"/*
221c9c3146eb largefiles: always create the cache and standin directories when cloning
Matt Harbison <matt_harbison@yahoo.com>
parents: 17823
diff changeset
341 $ rm issue3519/.hg/largefiles/*
221c9c3146eb largefiles: always create the cache and standin directories when cloning
Matt Harbison <matt_harbison@yahoo.com>
parents: 17823
diff changeset
342 $ rm largefiles-repo/.hg/largefiles/*
221c9c3146eb largefiles: always create the cache and standin directories when cloning
Matt Harbison <matt_harbison@yahoo.com>
parents: 17823
diff changeset
343 $ hg lfconvert --to-normal issue3519 normalized3519
221c9c3146eb largefiles: always create the cache and standin directories when cloning
Matt Harbison <matt_harbison@yahoo.com>
parents: 17823
diff changeset
344 initializing destination normalized3519
20471
ea005e754c9c tests: lines with largefile .* file://$TESTTMP also match on windows
Simon Heimberg <simohe@besonet.ch>
parents: 20117
diff changeset
345 large: largefile 2e000fa7e85759c7f4c254d4d9c33ef481e459a7 not available from file:/*/$TESTTMP/largefiles-repo (glob)
17823
0fc1ce271ee6 largefiles: fix a traceback in lfconvert if a largefile is missing (issue3519)
Matt Harbison <matt_harbison@yahoo.com>
parents: 16913
diff changeset
346 abort: missing largefile 'large' from revision d4892ec57ce212905215fad1d9018f56b99202ad
0fc1ce271ee6 largefiles: fix a traceback in lfconvert if a largefile is missing (issue3519)
Matt Harbison <matt_harbison@yahoo.com>
parents: 16913
diff changeset
347 [255]
0fc1ce271ee6 largefiles: fix a traceback in lfconvert if a largefile is missing (issue3519)
Matt Harbison <matt_harbison@yahoo.com>
parents: 16913
diff changeset
348
0fc1ce271ee6 largefiles: fix a traceback in lfconvert if a largefile is missing (issue3519)
Matt Harbison <matt_harbison@yahoo.com>
parents: 16913
diff changeset
349