Rev 3025: Manage write groups in sign_my_commits, for efficiency. in http://people.ubuntu.com/~robertc/baz2.0/pack.read-locks
Robert Collins
robertc at robertcollins.net
Thu Nov 22 02:24:17 GMT 2007
At http://people.ubuntu.com/~robertc/baz2.0/pack.read-locks
------------------------------------------------------------
revno: 3025
revision-id:robertc at robertcollins.net-20071122022357-17rpgugyooepb30y
parent: robertc at robertcollins.net-20071122020949-kpvph7srqw3h60p1
committer: Robert Collins <robertc at robertcollins.net>
branch nick: pack.read-locks
timestamp: Thu 2007-11-22 13:23:57 +1100
message:
Manage write groups in sign_my_commits, for efficiency.
modified:
bzrlib/sign_my_commits.py sign_my_commits.py-20060215152201-5a6363365180e671
=== modified file 'bzrlib/sign_my_commits.py'
--- a/bzrlib/sign_my_commits.py 2007-07-10 10:33:45 +0000
+++ b/bzrlib/sign_my_commits.py 2007-11-22 02:23:57 +0000
@@ -65,18 +65,25 @@
count = 0
repo.lock_write()
try:
- for rev_id in repo.get_ancestry(branch.last_revision())[1:]:
- if repo.has_signature_for_revision_id(rev_id):
- continue
- rev = repo.get_revision(rev_id)
- if rev.committer != committer:
- continue
- # We have a revision without a signature who has a
- # matching committer, start signing
- print rev_id
- count += 1
- if not dry_run:
- repo.sign_revision(rev_id, gpg_strategy)
+ repo.start_write_group()
+ try:
+ for rev_id in repo.get_ancestry(branch.last_revision())[1:]:
+ if repo.has_signature_for_revision_id(rev_id):
+ continue
+ rev = repo.get_revision(rev_id)
+ if rev.committer != committer:
+ continue
+ # We have a revision without a signature who has a
+ # matching committer, start signing
+ print rev_id
+ count += 1
+ if not dry_run:
+ repo.sign_revision(rev_id, gpg_strategy)
+ except:
+ repo.abort_write_group()
+ raise
+ else:
+ repo.commit_write_group()
finally:
repo.unlock()
print 'Signed %d revisions' % (count,)
More information about the bazaar-commits
mailing list