Rev 605: Deal with newer versions of get_commit_editor(). in file:///data/jelmer/bzr-svn/revprops/
Jelmer Vernooij
jelmer at samba.org
Fri Dec 14 23:43:14 GMT 2007
At file:///data/jelmer/bzr-svn/revprops/
------------------------------------------------------------
revno: 605
revision-id:jelmer at samba.org-20071214234314-3ldj3arfomn51xeu
parent: jelmer at samba.org-20071214232001-8tzylqgxqeg1xaw9
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: revprops
timestamp: Sat 2007-12-15 00:43:14 +0100
message:
Deal with newer versions of get_commit_editor().
modified:
BRANCH.TODO branch.todo-20070721175243-w23kkak0gm2jbr8b-1
commit.py commit.py-20060607190346-qvq128wgfubhhgm2-1
transport.py transport.py-20060406231150-b3472d06b3a0818d
=== modified file 'BRANCH.TODO'
--- a/BRANCH.TODO 2007-12-14 16:14:27 +0000
+++ b/BRANCH.TODO 2007-12-14 23:43:14 +0000
@@ -15,4 +15,8 @@
bzr-svn should not be looking at any file properties set on the branch root if any
of these revision properties is set.
-Needs more tests...
+Needs more tests...:
+
+ *
+
+Make sure that bzr revprops set as bzr:* in svn properties don't get converted to svn:bzr: in bzr revprops.
=== modified file 'commit.py'
--- a/commit.py 2007-12-10 01:18:44 +0000
+++ b/commit.py 2007-12-14 23:43:14 +0000
@@ -453,18 +453,18 @@
"""Finish the commit.
"""
- def done(revision, date, author):
+ def done(revision_data, pool):
"""Callback that is called by the Subversion commit editor
once the commit finishes.
- :param revision: Revision number
- :param date: Date recorded for this commit
+ :param revision_metadata: Revision metadata
"""
- assert revision > 0
- self.revnum = revision
- self.date = date
- self.author = author
+ self.revision_metadata = revision_data
+ # No point storing an empty revision property
+ if self._svn_revprops[SVN_REVPROP_BZR_FILEIDS] == "":
+ del self._svn_revprops[SVN_REVPROP_BZR_FILEIDS]
+
self._svn_revprops[SVN_REVPROP_BZR_ROOT] = self.branch.get_branch_path()
bp_parts = self.branch.get_branch_path().split("/")
repository_latest_revnum = self.repository.transport.get_latest_revnum()
@@ -475,7 +475,7 @@
try:
existing_bp_parts = _check_dirs_exist(self.repository.transport,
bp_parts, -1)
- self.revnum = None
+ self.revision_metadata = None
self._svn_revprops[svn.core.SVN_PROP_REVISION_LOG] = message.encode("utf-8")
try:
self.editor = self.repository.transport.get_commit_editor(self._svn_revprops,
@@ -529,27 +529,27 @@
finally:
lock.unlock()
- assert self.revnum is not None
+ assert self.revision_metadata is not None
# Make sure the logwalker doesn't try to use ra
# during checkouts...
- self.repository._log.fetch_revisions(self.revnum)
+ self.repository._log.fetch_revisions(self.revision_metadata.revision)
- revid = self.branch.generate_revision_id(self.revnum)
+ revid = self.branch.generate_revision_id(self.revision_metadata.revision)
assert self._new_revision_id is None or self._new_revision_id == revid
self.mutter('commit %d finished. author: %r, date: %r, revid: %r' %
- (self.revnum, self.author, self.date, revid))
+ (self.revision_metadata.revision, self.revision_metadata.author, self.revision_metadata.date, revid))
if self.repository.get_config().get_override_svn_revprops():
- set_svn_revprops(self.repository.transport, self.revnum, {
+ set_svn_revprops(self.repository.transport, self.revision_metadata.revision, {
svn.core.SVN_PROP_REVISION_AUTHOR: self._committer,
svn.core.SVN_PROP_REVISION_DATE: svn_time_to_cstring(1000000*self._timestamp)
})
try:
- set_svn_revprops(self.repository.transport, self.revnum,
+ set_svn_revprops(self.repository.transport, self.revision_metadata.revision,
self._svn_revprops)
except RevpropChangeFailed:
pass # Ignore for now
=== modified file 'transport.py'
--- a/transport.py 2007-12-14 16:04:31 +0000
+++ b/transport.py 2007-12-14 23:43:14 +0000
@@ -519,9 +519,15 @@
elif revprops.keys() != [svn.core.SVN_PROP_REVISION_LOG]:
raise NotImplementedError()
else:
+ def done_wrapper(new_rev, date, author):
+ commit_info = svn.core.svn_commit_info_t()
+ commit_info.revision = new_rev
+ commit_info.date = date
+ commit_info.author = author
+ done_cb(commit_info)
editor = svn.ra.get_commit_editor(self._ra,
revprops[svn.core.SVN_PROP_REVISION_LOG],
- done_cb, lock_token, keep_locks)
+ done_wrapper, lock_token, keep_locks)
return Editor(self, editor)
except:
More information about the bazaar-commits
mailing list