--- a/hgext/largefiles/overrides.py Mon Jun 18 22:45:21 2012 -0400
+++ b/hgext/largefiles/overrides.py Sat Jun 16 22:34:06 2012 -0400
@@ -807,17 +807,22 @@
if subrepos:
for subpath in ctx.substate:
sub = ctx.sub(subpath)
- sub.archive(repo.ui, archiver, prefix)
+ submatch = match_.narrowmatcher(subpath, matchfn)
+ sub.archive(repo.ui, archiver, prefix, submatch)
archiver.done()
-def hgsubrepoarchive(orig, repo, ui, archiver, prefix):
+def hgsubrepoarchive(orig, repo, ui, archiver, prefix, match=None):
rev = repo._state[1]
ctx = repo._repo[rev]
lfcommands.cachelfiles(ui, repo._repo, ctx.node())
def write(name, mode, islink, getdata):
+ # At this point, the standin has been replaced with the largefile name,
+ # so the normal matcher works here without the lfutil variants.
+ if match and not match(f):
+ return
data = getdata()
archiver.addfile(prefix + repo._path + '/' + name, mode, islink, data)
@@ -848,7 +853,9 @@
for subpath in ctx.substate:
sub = ctx.sub(subpath)
- sub.archive(ui, archiver, os.path.join(prefix, repo._path) + '/')
+ submatch = match_.narrowmatcher(subpath, match)
+ sub.archive(ui, archiver, os.path.join(prefix, repo._path) + '/',
+ submatch)
# If a largefile is modified, the change is not reflected in its
# standin until a commit. cmdutil.bailifchanged() raises an exception