comparison mercurial/localrepo.py @ 1730:0f1d2c75db5e

add prechangegroup and pretxnchangegroup hooks. prechangegroup lets you stop push, pull or unbundle before it begins. pretxnchangegroup lets you inspect changegroup before transaction is committed, and roll back if you not like it.
author Vadim Gelfer <vadim.gelfer@gmail.com>
date Wed, 15 Feb 2006 10:49:30 -0800
parents 801756d0ca84
children d3e6da334b85
comparison
equal deleted inserted replaced
1729:ace6d26f78f1 1730:0f1d2c75db5e
1340 def revmap(x): 1340 def revmap(x):
1341 return self.changelog.rev(x) 1341 return self.changelog.rev(x)
1342 1342
1343 if not source: 1343 if not source:
1344 return 1344 return
1345
1346 self.hook('prechangegroup', throw=True)
1347
1345 changesets = files = revisions = 0 1348 changesets = files = revisions = 0
1346 1349
1347 tr = self.transaction() 1350 tr = self.transaction()
1348 1351
1349 oldheads = len(self.changelog.heads()) 1352 oldheads = len(self.changelog.heads())
1381 heads = _(" (+%d heads)") % (newheads - oldheads) 1384 heads = _(" (+%d heads)") % (newheads - oldheads)
1382 1385
1383 self.ui.status(_("added %d changesets" 1386 self.ui.status(_("added %d changesets"
1384 " with %d changes to %d files%s\n") 1387 " with %d changes to %d files%s\n")
1385 % (changesets, revisions, files, heads)) 1388 % (changesets, revisions, files, heads))
1389
1390 self.hook('pretxnchangegroup', throw=True,
1391 node=hex(self.changelog.node(cor+1)))
1386 1392
1387 tr.close() 1393 tr.close()
1388 1394
1389 if changesets > 0: 1395 if changesets > 0:
1390 self.hook("changegroup", node=hex(self.changelog.node(cor+1))) 1396 self.hook("changegroup", node=hex(self.changelog.node(cor+1)))