comparison mercurial/localrepo.py @ 15485:fa47291b3f1f

phases: mark content pushed as public in local repo on push
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
date Fri, 11 Nov 2011 00:21:17 +0100
parents a44446ff9ad8
children 1eefa4451c56
comparison
equal deleted inserted replaced
15484:a44446ff9ad8 15485:fa47291b3f1f
1552 lock = None 1552 lock = None
1553 unbundle = remote.capable('unbundle') 1553 unbundle = remote.capable('unbundle')
1554 if not unbundle: 1554 if not unbundle:
1555 lock = remote.lock() 1555 lock = remote.lock()
1556 try: 1556 try:
1557 cg, remote_heads = discovery.prepush(self, remote, force, revs, 1557 # get local lock as we might write phase data
1558 newbranch) 1558 locallock = self.lock()
1559 ret = remote_heads 1559 try:
1560 if cg is not None: 1560 cg, remote_heads, fut = discovery.prepush(self, remote, force,
1561 if unbundle: 1561 revs, newbranch)
1562 # local repo finds heads on server, finds out what 1562 ret = remote_heads
1563 # revs it must push. once revs transferred, if server 1563 if cg is not None:
1564 # finds it has different heads (someone else won 1564 if unbundle:
1565 # commit/push race), server aborts. 1565 # local repo finds heads on server, finds out what
1566 if force: 1566 # revs it must push. once revs transferred, if server
1567 remote_heads = ['force'] 1567 # finds it has different heads (someone else won
1568 # ssh: return remote's addchangegroup() 1568 # commit/push race), server aborts.
1569 # http: return remote's addchangegroup() or 0 for error 1569 if force:
1570 ret = remote.unbundle(cg, remote_heads, 'push') 1570 remote_heads = ['force']
1571 else: 1571 # ssh: return remote's addchangegroup()
1572 # we return an integer indicating remote head count change 1572 # http: return remote's addchangegroup() or 0 for error
1573 ret = remote.addchangegroup(cg, 'push', self.url(), 1573 ret = remote.unbundle(cg, remote_heads, 'push')
1574 lock=lock) 1574 else:
1575 # we return an integer indicating remote head count change
1576 ret = remote.addchangegroup(cg, 'push', self.url(),
1577 lock=lock)
1578 # if we don't push, the common data is already useful
1579 # everything exchange is public for now
1580 phases.advanceboundary(self, 0, fut)
1581 finally:
1582 locallock.release()
1575 finally: 1583 finally:
1576 if lock is not None: 1584 if lock is not None:
1577 lock.release() 1585 lock.release()
1578 1586
1579 self.ui.debug("checking for updated bookmarks\n") 1587 self.ui.debug("checking for updated bookmarks\n")