Mercurial > public > mercurial-scm > hg
comparison mercurial/hgweb/hgweb_mod.py @ 22223:c39d404f0eb0
hgweb: refresh repository using URL not path (issue4323)
hgweb detects out-of-date repository instances (using a highly
suspect mechanism that should probably be fixed) and obtains a new
repository object if needed.
This patch changes the repository object copy to use the repo URL
(instead of path). This preserves more information about the source
repository and allows bundles to be served through hgweb.
A test verifying that bundles can now be served properly via
`hg serve` has been added.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Mon, 18 Aug 2014 12:12:57 -0700 |
parents | b27c3beaaf30 |
children | 4109cc16279e |
comparison
equal
deleted
inserted
replaced
22222:883e8b6bd461 | 22223:c39d404f0eb0 |
---|---|
108 def refresh(self, request=None): | 108 def refresh(self, request=None): |
109 st = get_stat(self.repo.spath) | 109 st = get_stat(self.repo.spath) |
110 # compare changelog size in addition to mtime to catch | 110 # compare changelog size in addition to mtime to catch |
111 # rollbacks made less than a second ago | 111 # rollbacks made less than a second ago |
112 if st.st_mtime != self.mtime or st.st_size != self.size: | 112 if st.st_mtime != self.mtime or st.st_size != self.size: |
113 r = hg.repository(self.repo.baseui, self.repo.root) | 113 r = hg.repository(self.repo.baseui, self.repo.url()) |
114 self.repo = self._getview(r) | 114 self.repo = self._getview(r) |
115 self.maxchanges = int(self.config("web", "maxchanges", 10)) | 115 self.maxchanges = int(self.config("web", "maxchanges", 10)) |
116 self.stripecount = int(self.config("web", "stripes", 1)) | 116 self.stripecount = int(self.config("web", "stripes", 1)) |
117 self.maxshortchanges = int(self.config("web", "maxshortchanges", | 117 self.maxshortchanges = int(self.config("web", "maxshortchanges", |
118 60)) | 118 60)) |