Rev 1611: Simplify branch path finding code. in http://people.samba.org/bzr/jelmer/bzr-svn/trunk
Jelmer Vernooij
jelmer at samba.org
Sat Aug 23 03:26:58 BST 2008
At http://people.samba.org/bzr/jelmer/bzr-svn/trunk
------------------------------------------------------------
revno: 1611
revision-id: jelmer at samba.org-20080823022655-0plqua58j6wrej5d
parent: jelmer at samba.org-20080823021854-pe8mra3o3uqqmyl8
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Sat 2008-08-23 04:26:55 +0200
message:
Simplify branch path finding code.
modified:
branch.py svnbranch.py-20051017135706-11c749eb0dab04a7
layout.py layout.py-20080323165407-y9qw8nx4oykvoe1k-1
repository.py repository.py-20060306123302-1f8c5069b3fe0265
=== modified file 'branch.py'
--- a/branch.py 2008-08-22 21:18:08 +0000
+++ b/branch.py 2008-08-23 02:26:55 +0000
@@ -361,10 +361,8 @@
source.lock_read()
try:
(result.old_revno, result.old_revid) = self.last_revision_info()
- old_revnum = self.get_revnum()
self.update_revisions(source, stop_revision, overwrite)
- result.tag_conflicts = source.tags.merge_to(self.tags, overwrite,
- _from_revnum=old_revnum)
+ result.tag_conflicts = source.tags.merge_to(self.tags, overwrite)
(result.new_revno, result.new_revid) = self.last_revision_info()
return result
finally:
=== modified file 'layout.py'
--- a/layout.py 2008-08-22 05:02:07 +0000
+++ b/layout.py 2008-08-23 02:26:55 +0000
@@ -74,6 +74,12 @@
return True
return False
+ def is_branch_or_tag(self, path, project=None):
+ return self.is_branch(path, project) or self.is_tag(path, project)
+
+ def is_branch_or_tag_parent(self, path, project=None):
+ return self.is_branch_parent(path, project) or self.is_tag_parent(path, project)
+
def get_branches(self, revnum, project="", pb=None):
"""Retrieve a list of paths that refer to branches in a specific revision.
=== modified file 'repository.py'
--- a/repository.py 2008-08-23 02:18:54 +0000
+++ b/repository.py 2008-08-23 02:26:55 +0000
@@ -836,7 +836,8 @@
pb.finished()
return tags
- def find_branchpaths(self, layout, from_revnum=0, to_revnum=None,
+ def find_branchpaths(self, check_path, check_parent_path,
+ from_revnum=0, to_revnum=None,
project=None):
"""Find all branch paths that were changed in the specified revision
range.
@@ -844,7 +845,6 @@
:param revnum: Revision to search for branches.
:return: iterator that returns tuples with (path, revision number, still exists). The revision number is the revision in which the branch last existed.
"""
- assert layout is not None
if to_revnum is None:
to_revnum = self.get_latest_revnum()
@@ -857,16 +857,14 @@
for (paths, i, revprops) in self._log.iter_changes([""], from_revnum, to_revnum):
pb.update("finding branches", i, to_revnum)
for p in sorted(paths.keys()):
- if (layout.is_branch(p, project) or
- layout.is_tag(p, project)):
+ if check_path(p, project):
if paths[p][0] in ('R', 'D') and p in created_branches:
ret.append((p, created_branches[p], False))
del created_branches[p]
if paths[p][0] in ('A', 'R', 'M'):
created_branches[p] = i
- elif (layout.is_branch_parent(p, project) or
- layout.is_tag_parent(p, project)):
+ elif check_parent_path(p, project):
if paths[p][0] in ('R', 'D'):
k = created_branches.keys()
for c in k:
@@ -880,10 +878,9 @@
try:
for c in self.transport.get_dir(p, i)[0].keys():
n = p+"/"+c
- if layout.is_branch(n, project) or layout.is_tag(n, project):
+ if check_path(n, project):
created_branches[n] = i
- elif (layout.is_branch_parent(n, project) or
- layout.is_tag_parent(n, project)):
+ elif check_parent_path(n, project):
parents.append(n)
except SubversionException, (_, errors.ERR_FS_NOT_DIRECTORY):
pass
@@ -915,7 +912,8 @@
for (project, branch, nick) in chain(layout.get_branches(to_revnum, project), layout.get_tags(to_revnum, project)):
yield (branch, to_revnum, True)
else:
- for (branch, revno, exists) in self.find_branchpaths(layout,
+ for (branch, revno, exists) in self.find_branchpaths(
+ layout.is_branch_or_tag, layout.is_branch_or_tag_parent,
from_revnum, to_revnum, project):
yield (branch, revno, exists)
More information about the bazaar-commits
mailing list