1834 for key in ('namespace', 'key', 'new', 'old', 'ret'): |
1834 for key in ('namespace', 'key', 'new', 'old', 'ret'): |
1835 if key in inpart.params: |
1835 if key in inpart.params: |
1836 kwargs[key] = inpart.params[key] |
1836 kwargs[key] = inpart.params[key] |
1837 raise error.PushkeyFailed(partid=str(inpart.id), **kwargs) |
1837 raise error.PushkeyFailed(partid=str(inpart.id), **kwargs) |
1838 |
1838 |
1839 def _readphaseheads(inpart): |
|
1840 headsbyphase = [[] for i in phases.allphases] |
|
1841 entrysize = phases._fphasesentry.size |
|
1842 while True: |
|
1843 entry = inpart.read(entrysize) |
|
1844 if len(entry) < entrysize: |
|
1845 if entry: |
|
1846 raise error.Abort(_('bad phase-heads bundle part')) |
|
1847 break |
|
1848 phase, node = phases._fphasesentry.unpack(entry) |
|
1849 headsbyphase[phase].append(node) |
|
1850 return headsbyphase |
|
1851 |
|
1852 @parthandler('phase-heads') |
1839 @parthandler('phase-heads') |
1853 def handlephases(op, inpart): |
1840 def handlephases(op, inpart): |
1854 """apply phases from bundle part to repo""" |
1841 """apply phases from bundle part to repo""" |
1855 headsbyphase = _readphaseheads(inpart) |
1842 headsbyphase = phases.binarydecode(inpart) |
1856 phases.updatephases(op.repo.unfiltered(), op.gettransaction(), headsbyphase) |
1843 phases.updatephases(op.repo.unfiltered(), op.gettransaction(), headsbyphase) |
1857 op.records.add('phase-heads', {}) |
1844 op.records.add('phase-heads', {}) |
1858 |
1845 |
1859 @parthandler('reply:pushkey', ('return', 'in-reply-to')) |
1846 @parthandler('reply:pushkey', ('return', 'in-reply-to')) |
1860 def handlepushkeyreply(op, inpart): |
1847 def handlepushkeyreply(op, inpart): |