Commit Graph

53 Commits

Author SHA1 Message Date
Levi Bard
5215c2a8d7 largefiles: add precommit hook to check for inappropriate locking
This tests for inappropriate locking (issue3182) by running hg status
as a precommit hook.
2012-01-07 19:11:31 +01:00
Na'Tosha Bard
05ebae9a13 largefiles: implement addremove (issue3064)
Implementing addremove correctly in largefiles is tricky, becuase the original
addremove function does not call into any of the add or remove function we've
already overridden in the extension.  So the trick is to implement addremove
without duplicating any code.

This patch implements addremove by pulling out the interesting parts of
override_add() and override_remove() into generic utility functions, and
using those to handle the largefiles in addremove.  Then a matcher is
installed that will ignore all largefiles, and the original addremove
function is called to take care of the regular files in addremove.

A small bit of monkey patching is used to make sure that remove_largefiles()
notifies the user when a file is removed by addremove and also makes sure
the removal of largefiles doesn't interfer with the original addremove's
operation of removing the standin.
2012-01-07 12:42:54 +01:00
Martin Geisler
a6341e1149 merge with stable 2012-01-08 14:50:20 +01:00
Na'Tosha Bard
d2bd6a2acb largefiles: fix output of hg summary (issue3060) 2012-01-08 12:35:47 +01:00
Na'Tosha Bard
0bd0abc6e9 largefiles: fix confusion upon removal of added largefile (issue3176)
This patch makes "hg remove" work the same way on largefiles as it does on
regular Mercurial files.  If you try to remove an added largefile, the removal
fails and you are instead prompted to use "hg forget" to undo the add.
2012-01-08 11:19:51 +01:00
Na'Tosha Bard
c850d0f432 largefiles: clean up and shorten test output by using the same log format everywhere 2012-01-07 15:35:15 +01:00
Kevin Gessner
c57b4c7195 largefiles: display remote errors from putlfile (issue3123) (issue3149) 2012-01-05 07:26:22 -08:00
Pierre-Yves David
7e4f710bf6 phases: prevent rebase to rebase immutable changeset. 2011-12-27 00:11:22 +01:00
Martin Geisler
3a9a310829 largefiles: fix 'hg status' abort after merge
If a largefile is introduced on the branch that is merged into the
working copy, then 'hg status' would abort with an error like:

   $ hg status
   abort: .hglf/foo@33fdd332ec: not found in manifest!

The problem was that the largefiles status code only looked in the
first parent for the largefile. Largefiles are now always reported as
modified if they don't exist in the first parent -- this matches the
behavior of localrepo.status for normal files.
2011-12-09 17:34:58 +01:00
Na'Tosha Bard
60040a8402 largefiles: fix rename (issue3093) 2011-11-30 15:11:00 +01:00
Mads Kiilerich
a9264240dc tests: remove unstable debugstate output in test-largefiles.t 2011-11-25 02:09:45 +01:00
Mads Kiilerich
629eb6e680 tests: test-largefiles.t should not try to escape from $TESTTMP 2011-11-22 19:56:26 +01:00
Mads Kiilerich
eb44c968ee largefiles: file storage should be relative to repo, not relative to cwd
Revealed by the test in 43cf449a75e4.
2011-11-22 19:52:23 +01:00
Martin Geisler
28455d6a6b largefiles: fix 'hg clone . ../foo' OSError abort
Operating on a non-existant file can cause both IOError and OSError,
depending on the function used: open raises IOError, os.lstat raises
OSError.

The largefiles code called dirstate.normal, which in turn calls
os.lstat, so OSError is the right exception to catch here.
2011-11-22 17:51:43 +01:00
Na'Tosha Bard
5e8efa0656 largefiles: shorten test suite by using log --template 2011-10-28 18:50:54 +02:00
Na'Tosha Bard
0e6729399b largefiles: fix bad bug where transplanting a changeset with a largefile will result in an old largefile being comitted later on 2011-10-28 18:48:24 +02:00
Na'Tosha Bard
f4916e10c1 largefiles: test that a largefile cannot accidentally be re-added as a regular file 2011-10-28 18:17:44 +02:00
Thomas Arendsen Hein
2e23955210 tests: use $DAEMON_PIDS and killdaemons in largefiles test
$DAEMON_PIDS is used by tests to make sure there will be no leftover
processes, the cycling through ports is needed because they are not
available for a new bind that quickly on some systems.

There are not enough $HGPORT variables available for each hg serve,
so use the killdaemons script before reusing ports.
2011-10-28 12:44:19 +02:00
Thomas Arendsen Hein
c566f581fc tests: make largefiles test use $HGPORT instead of 8001 2011-10-28 11:16:39 +02:00
Matt Mackall
f13ffccaf7 tests: fix spurious largefiles test failure on Cygwin 2011-10-27 18:15:34 -05:00
Matt Mackall
8971e5af3c check-code: fix issues with finding patterns in unified tests, fix tests
- old-style patterns without ^ were getting improperly anchored
- finditer was matching against beginning of line poorly
- \s was matching newlines
- [^x] was matching newlines

so we:

- remove earlier hacks for multiline matching
- fix unified test anchoring by adding .*
- replace \s with [ \t]
- replace [^x] with [^\nx]
- force all matches into multiline mode so ^ anchors work

This uncovers a number of test issues that are then repaired.
2011-10-27 17:22:04 -05:00
Eli Carter
3fff6692f7 largefiles: fix typo 2011-10-26 14:22:19 -05:00
Eli Carter
fbbaf602df largefiles: bugfix for symlink handling with testcase
The code was using the size of a symlink's target, thus wrongly making symlinks
to large files into largefiles themselves.  This can be demonstrated by
deleting the symlink and then doing an 'hg up' or 'hg up -C' to restore the
symlink.
2011-10-26 13:48:33 -05:00
Greg Ward
3a0493a649 largefiles: test reverting largefiles (coverage creeping ever upwards)
This reveals a small bug: revert reports "reverting .hglf/largefile"
when it really should report "reverting largefile". I don't see an
easy fix, though (short of using ui.pushbuffer() to interfere with
revert's output).
2011-10-25 08:56:59 -04:00
Greg Ward
e3e10df169 largefiles: test "update --check"
It works fine; I'm just getting the test coverage up.
2011-10-24 21:33:23 -04:00
Greg Ward
48b00ec7da largefiles: extract test-lfconvert.t from test-largefiles.t
test-largefiles.t is getting pretty big, and there's lots more to test
in lfconvert. And lfconvert is a fairly orthogonal feature to the
rest of largefiles.
2011-10-22 13:48:56 -04:00
Andrew Pritchard
f08a46d761 largefiles: test interaction between largefiles and vanilla clients and servers
This reintroduces tests for the case described by issue3066, among others:
- vanilla clients and servers should still be able to talk to largefiles
  clients and servers about vanilla repos
- vanilla clients should not attempt to clone largefiles repos over http and
  should report a useful error message (issue3066; this appears to work
  correctly)
- vanilla clients should not attempt to clone largefiles repos over ssh, again
  with a useful error message
- largefiles clients should not attempt to push largefile changes to vanilla
  servers
2011-10-21 15:09:33 -05:00
Greg Ward
a3607c833a largefiles: rename lfconvert --tonormal option to --to-normal 2011-10-20 21:56:30 -04:00
Greg Ward
f8ef8e5ee3 largefiles: test lfconvert --tonormal 2011-10-20 22:01:05 -04:00
Greg Ward
e5f3dc74a5 largefiles: use smaller files in test script 2011-10-20 22:24:24 -04:00
Greg Ward
0413d50966 largefiles: test that minimum size can be a float
This allows us to drop the existing test of --lfsize, since it's
redundant with the new test.
2011-10-20 22:22:24 -04:00
Greg Ward
b4d623e019 largefiles: polish comments in test script 2011-10-20 22:14:11 -04:00
Eli Carter
e9e5e67cfe largefiles: testcase to simulate inter-user clone on local machine 2011-10-20 09:35:37 -05:00
Eli Carter
5a07405554 largefiles: fix newline for lfconverted repos 2011-10-18 17:28:26 -05:00
Greg Ward
31a67df419 largefiles: rename config setting 'size' to 'minsize' 2011-10-18 20:06:23 -04:00
Eli Carter
2df068a441 largefiles: include 'largefiles' in converted repository requirements 2011-10-18 16:40:59 -05:00
Eli Carter
479903f19c largefiles: fix test typo 2011-10-18 11:09:11 -05:00
Na'Tosha Bard
9de02791d2 largefiles: test that merging does not result in wrong versions of largefiles 2011-10-19 17:40:27 +02:00
Na'Tosha Bard
96e8daf828 largefiles: expand test suite some more (test rebasing, rollback, update --clean, and verify --large) 2011-10-19 17:02:59 +02:00
Martin Geisler
f89c093d08 merge with stable 2011-12-09 17:58:12 +01:00
Matt Mackall
9e27ec8fc4 merge with stable 2011-12-01 15:57:10 -06:00
Mads Kiilerich
ae8c3f9869 merge with stable 2011-11-25 02:11:12 +01:00
Matt Mackall
5bbf1ec751 merge with stable 2011-11-22 17:34:22 -06:00
Martin Geisler
7ea03decd6 merge with stable 2011-11-22 18:16:59 +01:00
Mads Kiilerich
f695ee71c6 tests: don't leave temporary directories without write permission behind 2011-11-16 03:45:06 +01:00
Mads Kiilerich
8c22a0ec28 tests: make (glob) on windows accept \ instead of /
Globbing is usually used for filenames, so on windows it is reasonable and very
convenient that glob patterns accepts '\' or '/' when the pattern specifies
'/'.
2011-11-07 03:25:10 +01:00
Mads Kiilerich
8415df7277 tests: use 'hghave serve' to guard tests that requires serve daemon management 2011-11-07 03:24:53 +01:00
Mads Kiilerich
72ebeacea3 tests: use 'hghave unix-permissions' for tests that really use chmod
chmod of helper scripts is not included.

tests that exercise the x bit in the file system uses 'hghave execbit'.
2011-11-07 03:14:55 +01:00
Mads Kiilerich
4838bfb2c4 tests: use 'hghave symlink' for tests using symlinks 2011-11-07 03:14:54 +01:00
Greg Ward
8b7a685468 largefiles: improve error reporting
- tweak wording of some error messages
- use consistent capitalization
- always say 'largefile', not 'lfile'
- fix I18N problems
- only raise Abort for errors the user can do something about
2011-10-13 20:24:29 -04:00