Show More
@@ -339,11 +339,10 b' def reposetup(ui, repo):' | |||||
339 |
|
339 | |||
340 | return result |
|
340 | return result | |
341 |
|
341 | |||
342 |
def addchangegroup(self, s |
|
342 | def addchangegroup(self, *args, **kwargs): | |
343 | parents = self.dirstate.parents() |
|
343 | parents = self.dirstate.parents() | |
344 |
|
344 | |||
345 | result = super(bookmark_repo, self).addchangegroup( |
|
345 | result = super(bookmark_repo, self).addchangegroup(*args, **kwargs) | |
346 | source, srctype, url, emptyok) |
|
|||
347 | if result > 1: |
|
346 | if result > 1: | |
348 | # We have more heads than before |
|
347 | # We have more heads than before | |
349 | return result |
|
348 | return result |
@@ -3745,7 +3745,8 b' def unbundle(ui, repo, fname1, *fnames, ' | |||||
3745 | for fname in fnames: |
|
3745 | for fname in fnames: | |
3746 | f = url.open(ui, fname) |
|
3746 | f = url.open(ui, fname) | |
3747 | gen = changegroup.readbundle(f, fname) |
|
3747 | gen = changegroup.readbundle(f, fname) | |
3748 |
modheads = repo.addchangegroup(gen, 'unbundle', 'bundle:' + fname |
|
3748 | modheads = repo.addchangegroup(gen, 'unbundle', 'bundle:' + fname, | |
|
3749 | lock=lock) | |||
3749 | finally: |
|
3750 | finally: | |
3750 | lock.release() |
|
3751 | lock.release() | |
3751 |
|
3752 |
@@ -164,7 +164,7 b' def unbundle(repo, req):' | |||||
164 | urllib.quote(req.env.get('REMOTE_HOST', '')), |
|
164 | urllib.quote(req.env.get('REMOTE_HOST', '')), | |
165 | urllib.quote(req.env.get('REMOTE_USER', ''))) |
|
165 | urllib.quote(req.env.get('REMOTE_USER', ''))) | |
166 | try: |
|
166 | try: | |
167 | ret = repo.addchangegroup(gen, 'serve', url) |
|
167 | ret = repo.addchangegroup(gen, 'serve', url, lock=lock) | |
168 | except util.Abort, inst: |
|
168 | except util.Abort, inst: | |
169 | sys.stdout.write("abort: %s\n" % inst) |
|
169 | sys.stdout.write("abort: %s\n" % inst) | |
170 | ret = 0 |
|
170 | ret = 0 |
@@ -1199,7 +1199,7 b' class localrepository(repo.repository):' | |||||
1199 | "other repository doesn't support " |
|
1199 | "other repository doesn't support " | |
1200 | "changegroupsubset.")) |
|
1200 | "changegroupsubset.")) | |
1201 | cg = remote.changegroupsubset(fetch, heads, 'pull') |
|
1201 | cg = remote.changegroupsubset(fetch, heads, 'pull') | |
1202 | return self.addchangegroup(cg, 'pull', remote.url()) |
|
1202 | return self.addchangegroup(cg, 'pull', remote.url(), lock=lock) | |
1203 | finally: |
|
1203 | finally: | |
1204 | lock.release() |
|
1204 | lock.release() | |
1205 |
|
1205 | |||
@@ -1233,8 +1233,8 b' class localrepository(repo.repository):' | |||||
1233 | ret = discovery.prepush(self, remote, force, revs, newbranch) |
|
1233 | ret = discovery.prepush(self, remote, force, revs, newbranch) | |
1234 | if ret[0] is not None: |
|
1234 | if ret[0] is not None: | |
1235 | cg, remote_heads = ret |
|
1235 | cg, remote_heads = ret | |
1236 |
# |
|
1236 | # we return an integer indicating remote head count change | |
1237 | return remote.addchangegroup(cg, 'push', self.url()) |
|
1237 | return remote.addchangegroup(cg, 'push', self.url(), lock=lock) | |
1238 | # and here we return 0 for "nothing to push" or 1 for |
|
1238 | # and here we return 0 for "nothing to push" or 1 for | |
1239 | # "something to push but I refuse" |
|
1239 | # "something to push but I refuse" | |
1240 | return ret[1] |
|
1240 | return ret[1] | |
@@ -1620,7 +1620,7 b' class localrepository(repo.repository):' | |||||
1620 |
|
1620 | |||
1621 | return util.chunkbuffer(gengroup()) |
|
1621 | return util.chunkbuffer(gengroup()) | |
1622 |
|
1622 | |||
1623 | def addchangegroup(self, source, srctype, url, emptyok=False): |
|
1623 | def addchangegroup(self, source, srctype, url, emptyok=False, lock=None): | |
1624 | """Add the changegroup returned by source.read() to this repo. |
|
1624 | """Add the changegroup returned by source.read() to this repo. | |
1625 | srctype is a string like 'push', 'pull', or 'unbundle'. url is |
|
1625 | srctype is a string like 'push', 'pull', or 'unbundle'. url is | |
1626 | the URL of the repo where this changegroup is coming from. |
|
1626 | the URL of the repo where this changegroup is coming from. | |
@@ -1760,6 +1760,8 b' class localrepository(repo.repository):' | |||||
1760 | tr.close() |
|
1760 | tr.close() | |
1761 | finally: |
|
1761 | finally: | |
1762 | tr.release() |
|
1762 | tr.release() | |
|
1763 | if lock: | |||
|
1764 | lock.release() | |||
1763 |
|
1765 | |||
1764 | if changesets > 0: |
|
1766 | if changesets > 0: | |
1765 | # forcefully update the on-disk branch cache |
|
1767 | # forcefully update the on-disk branch cache |
@@ -161,7 +161,8 b' class sshserver(object):' | |||||
161 | return |
|
161 | return | |
162 |
|
162 | |||
163 | self.respond("") |
|
163 | self.respond("") | |
164 |
r = self.repo.addchangegroup(self.fin, 'serve', self.client_url() |
|
164 | r = self.repo.addchangegroup(self.fin, 'serve', self.client_url(), | |
|
165 | lock=self.lock) | |||
165 | self.respond(str(r)) |
|
166 | self.respond(str(r)) | |
166 |
|
167 | |||
167 | def client_url(self): |
|
168 | def client_url(self): | |
@@ -205,7 +206,8 b' class sshserver(object):' | |||||
205 | # push can proceed |
|
206 | # push can proceed | |
206 |
|
207 | |||
207 | fp.seek(0) |
|
208 | fp.seek(0) | |
208 |
r = self.repo.addchangegroup(fp, 'serve', self.client_url() |
|
209 | r = self.repo.addchangegroup(fp, 'serve', self.client_url(), | |
|
210 | lock=self.lock) | |||
209 | self.respond(str(r)) |
|
211 | self.respond(str(r)) | |
210 | finally: |
|
212 | finally: | |
211 | if not was_locked: |
|
213 | if not was_locked: |
General Comments 0
You need to be logged in to leave comments.
Login now