# HG changeset patch # User Jordi GutiƩrrez Hermoso # Date 1351522426 14400 # Node ID 8243dd66e0e3b94ac2c65ee2f2a5b87349937c3a # Parent c8ffde272653ade9fce3bf24d6b403edc4dbd722 webcommands: allow hgweb's archive to recurse into subrepos Currently when obtaining an archive snapshot of a repository via the web interface, subrepositories are not taken in the snapshot. I introduce an option, archivesubrepos, which allows this. diff -r c8ffde272653 -r 8243dd66e0e3 mercurial/help/config.txt --- a/mercurial/help/config.txt Tue Nov 13 19:32:53 2012 -0600 +++ b/mercurial/help/config.txt Mon Oct 29 10:53:46 2012 -0400 @@ -1295,6 +1295,10 @@ (DEPRECATED) Whether to allow .zip downloading of repository revisions. Default is False. This feature creates temporary files. +``archivesubrepos`` + Whether to recurse into subrepositories when archiving. Default is + False. + ``baseurl`` Base URL to use when publishing URLs in other locations, so third-party tools like email notification hooks can construct diff -r c8ffde272653 -r 8243dd66e0e3 mercurial/hgweb/webcommands.py --- a/mercurial/hgweb/webcommands.py Tue Nov 13 19:32:53 2012 -0600 +++ b/mercurial/hgweb/webcommands.py Mon Oct 29 10:53:46 2012 -0400 @@ -14,6 +14,7 @@ from common import HTTP_OK, HTTP_FORBIDDEN, HTTP_NOT_FOUND from mercurial import graphmod, patch from mercurial import help as helpmod +from mercurial import scmutil from mercurial.i18n import _ # __all__ is populated with the allowed commands. Be sure to add to it if @@ -799,7 +800,11 @@ headers.append(('Content-Encoding', encoding)) req.header(headers) req.respond(HTTP_OK) - archival.archive(web.repo, req, cnode, artype, prefix=name) + + ctx = webutil.changectx(web.repo, req) + archival.archive(web.repo, req, cnode, artype, prefix=name, + matchfn=scmutil.match(ctx, []), + subrepos=web.configbool("web", "archivesubrepos")) return []