Rev 421: Merge the latest history-db fixes. in http://bazaar.launchpad.net/~jameinel/loggerhead/integration
John Arbash Meinel
john at arbash-meinel.com
Tue May 4 22:55:14 BST 2010
At http://bazaar.launchpad.net/~jameinel/loggerhead/integration
------------------------------------------------------------
revno: 421 [merge]
revision-id: john at arbash-meinel.com-20100504215504-8s42wbxj7hvljkde
parent: john at arbash-meinel.com-20100504154136-9jvjmfstduhtg6ns
parent: john at arbash-meinel.com-20100504215224-k103otkyh9iwjikq
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: integration
timestamp: Tue 2010-05-04 16:55:04 -0500
message:
Merge the latest history-db fixes.
modified:
loggerhead/controllers/revision_ui.py revision_ui.py-20061211192234-f9wby6myjko7z7f0-1
loggerhead/history.py history.py-20061211064342-102iqirsciyvgtcf-5
-------------- next part --------------
=== modified file 'loggerhead/controllers/revision_ui.py'
--- a/loggerhead/controllers/revision_ui.py 2009-08-04 04:08:03 +0000
+++ b/loggerhead/controllers/revision_ui.py 2010-05-04 21:52:24 +0000
@@ -95,17 +95,7 @@
h.add_branch_nicks(change)
- if '.' in change.revno:
- # Walk "up" though the merge-sorted graph until we find a
- # revision with merge depth 0: this is the revision that merged
- # this one to mainline.
- ri = self._history._rev_info
- i = self._history._rev_indices[change.revid]
- while ri[i][0][2] > 0:
- i -= 1
- merged_in = ri[i][0][3]
- else:
- merged_in = None
+ merged_in = self._history.get_merged_in(change)
# Directory Breadcrumbs
directory_breadcrumbs = (
=== modified file 'loggerhead/history.py'
--- a/loggerhead/history.py 2010-05-04 15:41:36 +0000
+++ b/loggerhead/history.py 2010-05-04 21:55:04 +0000
@@ -353,7 +353,7 @@
# querier returns dotted revno tuples
query_revno_map = self._querier.get_dotted_revno_range_multi(
unknown)
- ghosts = set(revids)
+ ghosts = set(unknown)
for revid, dotted_revno in query_revno_map.iteritems():
revno_str = '.'.join(map(str, dotted_revno))
self._revno_revid_cache.set(revid, revno_str)
@@ -767,6 +767,21 @@
else:
return self._file_change_cache.get_file_changes(entry)
+ def get_merged_in(self, entry):
+ """Get the point where this entry was merged into the mainline.
+
+ :param entry: A Container having .revno and .revid.
+ :return: The revno string of the mainline revision.
+ """
+ if '.' not in entry.revno:
+ return None
+ rev_id_to_mainline = self._querier.get_mainline_where_merged(
+ [entry.revid])
+ revid = rev_id_to_mainline.get(entry.revid, None)
+ if revid is None:
+ return None
+ return self.get_revno(revid)
+
def add_changes(self, entry):
changes = self.get_file_changes(entry)
entry.changes = changes
More information about the bazaar-commits
mailing list