diff --git a/hgext/largefiles/overrides.py b/hgext/largefiles/overrides.py index b357a972d6cd4f1554566e2f3920ab6a2344c310_aGdleHQvbGFyZ2VmaWxlcy9vdmVycmlkZXMucHk=..b4ea79f8826811706476307ec9ab695241d150ff_aGdleHQvbGFyZ2VmaWxlcy9vdmVycmlkZXMucHk= 100644 --- a/hgext/largefiles/overrides.py +++ b/hgext/largefiles/overrides.py @@ -87,7 +87,7 @@ if exact or not exists: abovemin = (lfsize and - os.path.getsize(repo.wjoin(f)) >= lfsize * 1024 * 1024) + os.lstat(repo.wjoin(f)).st_size >= lfsize * 1024 * 1024) if large or abovemin or (lfmatcher and lfmatcher(f)): lfnames.append(f) if ui.verbose or not exact: diff --git a/tests/test-largefiles.t b/tests/test-largefiles.t index b357a972d6cd4f1554566e2f3920ab6a2344c310_dGVzdHMvdGVzdC1sYXJnZWZpbGVzLnQ=..b4ea79f8826811706476307ec9ab695241d150ff_dGVzdHMvdGVzdC1sYXJnZWZpbGVzLnQ= 100644 --- a/tests/test-largefiles.t +++ b/tests/test-largefiles.t @@ -852,3 +852,26 @@ 1 largefiles updated, 0 removed $ cd .. $ HOME="$ORIGHOME" + +Symlink to a large largefile should behave the same as a symlink to a normal file + $ hg init largesymlink + $ cd largesymlink + $ dd if=/dev/zero bs=1k count=10k of=largefile 2>/dev/null + $ hg add --large largefile + $ hg commit -m "commit a large file" + $ ln -s largefile largelink + $ hg add largelink + $ hg commit -m "commit a large symlink" + $ rm -f largelink + $ hg up >/dev/null + $ test -e largelink + [1] + $ test -L largelink + [1] + $ rm -f largelink # make next part of the test independent of the previous + $ hg up -C >/dev/null + $ test -e largelink + $ test -L largelink + $ cd .. + +