Rev 1264: Merge 0.4. in http://people.samba.org/bzr/jelmer/bzr-svn/svn-1.5
Jelmer Vernooij
jelmer at samba.org
Tue Jul 22 21:55:22 BST 2008
At http://people.samba.org/bzr/jelmer/bzr-svn/svn-1.5
------------------------------------------------------------
revno: 1264
revision-id: jelmer at samba.org-20080722205519-icl84xe4w566b9pw
parent: jelmer at samba.org-20080721200913-081k6lixwxtt8g2t
parent: jelmer at samba.org-20080721210745-28ed2bjxu6bp9361
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: svn-1.5
timestamp: Tue 2008-07-22 22:55:19 +0200
message:
Merge 0.4.
modified:
branch.py svnbranch.py-20051017135706-11c749eb0dab04a7
fetch.py fetch.py-20060625004942-x2lfaib8ra707a8p-1
fileids.py fileids.py-20060714013623-u5iiyqqnko11grcf-1
repository.py repository.py-20060306123302-1f8c5069b3fe0265
tests/test_commit.py test_commit.py-20060624213521-l5kcufywkh9mnilk-1
tests/test_repository.py test_repos.py-20060508151940-ddc49a59257ca712
------------------------------------------------------------
revno: 1196.1.292
revision-id: jelmer at samba.org-20080721210745-28ed2bjxu6bp9361
parent: jelmer at samba.org-20080721210418-i4t2wsxno5lqflig
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Mon 2008-07-21 23:07:45 +0200
message:
Use project name when finding tags.
modified:
branch.py svnbranch.py-20051017135706-11c749eb0dab04a7
------------------------------------------------------------
revno: 1196.1.291
revision-id: jelmer at samba.org-20080721210418-i4t2wsxno5lqflig
parent: jelmer at samba.org-20080721205407-sryed0a0thp1o01m
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Mon 2008-07-21 23:04:18 +0200
message:
Fix some tests.
modified:
tests/test_repository.py test_repos.py-20060508151940-ddc49a59257ca712
------------------------------------------------------------
revno: 1196.1.290
revision-id: jelmer at samba.org-20080721205407-sryed0a0thp1o01m
parent: jelmer at samba.org-20080721204623-0q57gn7cyjr3nqzm
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Mon 2008-07-21 22:54:07 +0200
message:
Make project argument mandatory.
modified:
repository.py repository.py-20060306123302-1f8c5069b3fe0265
------------------------------------------------------------
revno: 1196.1.289
revision-id: jelmer at samba.org-20080721204623-0q57gn7cyjr3nqzm
parent: jelmer at samba.org-20080721202804-9619h2v4r9q6pynq
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Mon 2008-07-21 22:46:23 +0200
message:
Make get_revision_paths private.
modified:
branchprops.py branchprops.py-20061223204623-80lvm7pjrpsgk0dd-1
logwalker.py logwalker.py-20060621215743-c13fhfnyzh1xzwh2-1
tests/test_logwalker.py test_logwalker.py-20060622141944-pkocc3rj8g62ukbi-1
------------------------------------------------------------
revno: 1196.1.288
revision-id: jelmer at samba.org-20080721202804-9619h2v4r9q6pynq
parent: jelmer at samba.org-20080721201738-2fsmn0hvs83vylik
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Mon 2008-07-21 22:28:04 +0200
message:
Fix test.
modified:
tests/test_commit.py test_commit.py-20060624213521-l5kcufywkh9mnilk-1
------------------------------------------------------------
revno: 1196.1.287
revision-id: jelmer at samba.org-20080721201738-2fsmn0hvs83vylik
parent: jelmer at samba.org-20080721194233-3mq364sd27qvy3cu
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Mon 2008-07-21 22:17:38 +0200
message:
Pass to_revnum to history iterating functions.
modified:
branch.py svnbranch.py-20051017135706-11c749eb0dab04a7
fetch.py fetch.py-20060625004942-x2lfaib8ra707a8p-1
fileids.py fileids.py-20060714013623-u5iiyqqnko11grcf-1
repository.py repository.py-20060306123302-1f8c5069b3fe0265
=== modified file 'branch.py'
--- a/branch.py 2008-07-19 13:17:41 +0000
+++ b/branch.py 2008-07-21 21:07:45 +0000
@@ -56,14 +56,12 @@
class SubversionTags(BasicTags):
- def __init__(self, branch, layout=None, project=""):
+ def __init__(self, branch):
self.branch = branch
self.repository = branch.repository
- self.layout = layout or self.repository.get_layout()
- self.project = project
def set_tag(self, tag_name, tag_target):
- path = self.layout.get_tag_path(tag_name, self.project)
+ path = self.branch.layout.get_tag_path(tag_name, self.branch.project)
parent = urlutils.dirname(path)
try:
(from_bp, from_revnum, mapping) = self.repository.lookup_revision_id(tag_target)
@@ -96,8 +94,8 @@
raise NoSuchTag(tag_name)
def get_tag_dict(self):
- return self.repository.find_tags(project=self.project,
- layout=self.layout)
+ return self.repository.find_tags(project=self.branch.project,
+ layout=self.branch.layout)
def get_reverse_tag_dict(self):
"""Returns a dict with revisions as keys
@@ -112,7 +110,7 @@
return rev
def delete_tag(self, tag_name):
- path = self.layout.get_tag_path(tag_name, self.project)
+ path = self.branch.layout.get_tag_path(tag_name, self.branch.project)
parent = urlutils.dirname(path)
conn = self.repository.transport.connections.get(urlutils.join(self.repository.base, parent))
if conn.check_path(urlutils.basename(path), self.repository.get_latest_revnum()) != core.NODE_DIR:
@@ -159,6 +157,7 @@
self._lock_mode = None
self._lock_count = 0
self.mapping = self.repository.get_mapping()
+ self.layout = self.repository.get_layout()
self._branch_path = branch_path.strip("/")
self.base = urlutils.join(self.repository.base, self._branch_path).rstrip("/")
self._revmeta_cache = None
@@ -172,7 +171,8 @@
if num == ERR_FS_NO_SUCH_REVISION:
raise NotBranchError(self.base)
raise
- if not self.mapping.is_branch(branch_path):
+ (type, self.project, _, ip) = self.layout.parse(branch_path)
+ if type != 'branch' or ip != '':
raise NotSvnBranchPath(branch_path, mapping=self.mapping)
def _make_tags(self):
@@ -401,7 +401,7 @@
if self._revmeta_cache is None:
pb = ui.ui_factory.nested_progress_bar()
try:
- self._revmeta_cache = list(self.repository.iter_reverse_branch_changes(self.get_branch_path(), self.get_revnum(), self.mapping, pb=pb))
+ self._revmeta_cache = list(self.repository.iter_reverse_branch_changes(self.get_branch_path(), self.get_revnum(), to_revnum=0, mapping=self.mapping, pb=pb))
finally:
pb.finished()
return self._revmeta_cache
=== modified file 'fetch.py'
--- a/fetch.py 2008-07-21 19:56:11 +0000
+++ b/fetch.py 2008-07-22 20:55:19 +0000
@@ -547,7 +547,8 @@
(branch_path, revnum, mapping) = self.source.lookup_revision_id(revision_id)
except NoSuchRevision:
return # Ghost
- for revmeta in self.source.iter_reverse_branch_changes(branch_path, revnum, mapping):
+ for revmeta in self.source.iter_reverse_branch_changes(branch_path, revnum,
+ to_revnum=0, mapping=mapping):
if pb:
pb.update("determining revisions to fetch", revnum-revmeta.revnum, revnum)
revid = revmeta.get_revision_id(mapping)
=== modified file 'fileids.py'
--- a/fileids.py 2008-07-07 10:25:14 +0000
+++ b/fileids.py 2008-07-22 20:55:19 +0000
@@ -152,7 +152,7 @@
map = {}
# No history -> empty map
- for revmeta in self.repos.iter_reverse_branch_changes(branch, revnum, mapping):
+ for revmeta in self.repos.iter_reverse_branch_changes(branch, revnum, to_revnum=0, mapping=mapping):
revid = revmeta.get_revision_id(mapping)
todo.append(revmeta)
@@ -252,7 +252,7 @@
# No history -> empty map
try:
pb = ui.ui_factory.nested_progress_bar()
- for revmeta in self.repos.iter_reverse_branch_changes(branch, revnum, mapping):
+ for revmeta in self.repos.iter_reverse_branch_changes(branch, revnum, to_revnum=0, mapping=mapping):
pb.update("fetching changes for file ids", revnum-revmeta.revnum, revnum)
revid = revmeta.get_revision_id(mapping)
try:
=== modified file 'repository.py'
--- a/repository.py 2008-07-21 19:56:11 +0000
+++ b/repository.py 2008-07-22 20:55:19 +0000
@@ -411,7 +411,8 @@
if revision_id in (None, NULL_REVISION):
return
(branch_path, revnum, mapping) = self.lookup_revision_id(revision_id)
- for revmeta in self.iter_reverse_branch_changes(branch_path, revnum, mapping, pb=pb,
+ for revmeta in self.iter_reverse_branch_changes(branch_path, revnum, to_revnum=0,
+ mapping=mapping, pb=pb,
limit=limit):
yield revmeta.get_revision_id(mapping)
@@ -472,8 +473,8 @@
assert isinstance(path, str)
assert isinstance(revnum, int)
- iterator = self.iter_reverse_branch_changes(path, revnum,
- mapping=mapping, limit=2)
+ iterator = self.iter_reverse_branch_changes(path, revnum, to_revnum=0,
+ mapping=mapping, limit=2)
revmeta = iterator.next()
assert revmeta.branch_path == path
assert revmeta.revnum == revnum
@@ -615,7 +616,7 @@
return self._serializer.write_revision_to_string(
self.get_revision(revision_id))
- def iter_changes(self, branch_path, revnum, mapping=None, pb=None, limit=0):
+ def iter_changes(self, branch_path, from_revnum, to_revnum, mapping=None, pb=None, limit=0):
"""Iterate over all revisions backwards.
:return: iterator that returns tuples with branch path,
@@ -624,6 +625,7 @@
assert isinstance(branch_path, str)
assert mapping is None or mapping.is_branch(branch_path) or mapping.is_tag(branch_path), \
"Mapping %r doesn't accept %s as branch or tag" % (mapping, branch_path)
+ assert from_revnum >= to_revnum
bp = branch_path
i = 0
@@ -632,7 +634,8 @@
# because we're skipping some revs
# TODO: Rather than fetching everything if limit == 2, maybe just
# set specify an extra X revs just to be sure?
- for (paths, revnum, revprops) in self._log.iter_changes([branch_path], revnum, pb=pb):
+ for (paths, revnum, revprops) in self._log.iter_changes([branch_path], from_revnum, to_revnum,
+ pb=pb):
assert bp is not None
next = find_prev_location(paths, bp, revnum)
assert revnum > 0 or bp == ""
@@ -659,14 +662,15 @@
else:
bp = next[0]
- def iter_reverse_branch_changes(self, branch_path, revnum, mapping=None, pb=None, limit=0):
+ def iter_reverse_branch_changes(self, branch_path, from_revnum, to_revnum,
+ mapping=None, pb=None, limit=0):
"""Return all the changes that happened in a branch
until branch_path,revnum.
:return: iterator that returns RevisionMetadata objects.
"""
- history_iter = self.iter_changes(branch_path, revnum, mapping, pb=pb,
- limit=limit)
+ history_iter = self.iter_changes(branch_path, from_revnum, to_revnum,
+ mapping, pb=pb, limit=limit)
for (bp, paths, revnum, revprops) in history_iter:
if not bp in paths:
svn_fileprops = {}
@@ -737,7 +741,7 @@
return branches
@needs_read_lock
- def find_tags(self, layout=None, revnum=None, project=None):
+ def find_tags(self, project, layout=None, revnum=None):
"""Find tags underneath this repository for the specified project.
:param layout: Repository layout to use
@@ -761,7 +765,7 @@
pb.tick()
npb = ui.ui_factory.nested_progress_bar()
try:
- it = self.iter_changes(bp, revnum, mapping, pb=npb, limit=2)
+ it = self.iter_changes(bp, revnum, to_revnum=0, mapping=mapping, pb=npb, limit=2)
(bp, paths, rev, _) = it.next()
if paths.has_key(bp):
del paths[bp]
=== modified file 'tests/test_commit.py'
--- a/tests/test_commit.py 2008-07-04 02:19:08 +0000
+++ b/tests/test_commit.py 2008-07-21 20:28:04 +0000
@@ -597,7 +597,7 @@
tree1 = master_branch.repository.revision_tree(revid1)
tree2 = master_branch.repository.revision_tree(revid2)
delta = tree2.changes_from(tree1)
- mutter("changes %r" % list(master_branch.repository.iter_reverse_branch_changes("", 2, master_branch.repository.get_mapping())))
+ mutter("changes %r" % list(master_branch.repository.iter_reverse_branch_changes("", 2, 0, master_branch.repository.get_mapping())))
self.assertEquals(0, len(delta.added))
self.assertEquals(0, len(delta.removed))
self.assertEquals(1, len(delta.renamed))
=== modified file 'tests/test_repository.py'
--- a/tests/test_repository.py 2008-07-15 14:06:23 +0000
+++ b/tests/test_repository.py 2008-07-21 21:04:18 +0000
@@ -64,7 +64,7 @@
self.assertEqual([
('', {'foo': ('A', None, -1)}, 1),
('', {'': ('A', None, -1)}, 0)],
- [(l.branch_path, l.paths, l.revnum) for l in repos.iter_reverse_branch_changes("", 1, NoBranchingScheme())])
+ [(l.branch_path, l.paths, l.revnum) for l in repos.iter_reverse_branch_changes("", 1, 0, NoBranchingScheme())])
def test_make_working_trees(self):
repos_url = self.make_repository("a")
@@ -108,7 +108,7 @@
dc.close()
repos = Repository.open(repos_url)
- ret = list(repos.iter_changes('bla/bar', 2, BzrSvnMappingv3(SingleBranchingScheme('bla/bar'))))
+ ret = list(repos.iter_changes('bla/bar', 2, 0, BzrSvnMappingv3(SingleBranchingScheme('bla/bar'))))
self.assertEquals(1, len(ret))
self.assertEquals("bla/bar", ret[0][0])
@@ -186,7 +186,7 @@
repos_url = self.make_repository("a")
repos = Repository.open(repos_url)
self.assertRaises(NoSuchRevision, list,
- repos.iter_reverse_branch_changes("/", 20, NoBranchingScheme()))
+ repos.iter_reverse_branch_changes("/", 20, 0, NoBranchingScheme()))
def test_follow_branch_switched_parents(self):
repos_url = self.make_client('a', 'dc')
@@ -201,7 +201,7 @@
self.client_update("dc")
self.client_commit("dc", "commit")
repos = Repository.open(repos_url)
- results = [(l.branch_path, l.paths, l.revnum) for l in repos.iter_reverse_branch_changes("pygments/trunk", 3, TrunkBranchingScheme(1))]
+ results = [(l.branch_path, l.paths, l.revnum) for l in repos.iter_reverse_branch_changes("pygments/trunk", 3, 0, TrunkBranchingScheme(1))]
# Results differ per Subversion version
# For <= 1.4:
@@ -238,7 +238,7 @@
dc.close()
repos = Repository.open(repos_url)
- changes = repos.iter_reverse_branch_changes("pygments", 2, SingleBranchingScheme("pygments"))
+ changes = repos.iter_reverse_branch_changes("pygments", 2, 0, SingleBranchingScheme("pygments"))
self.assertEquals([('pygments',
{'pygments/bla': ('A', None, -1), 'pygments': ('A', None, -1)},
2)],
@@ -360,7 +360,7 @@
set_branching_scheme(repos, TrunkBranchingScheme())
self.assertEqual(1, len(list(repos.iter_reverse_branch_changes("branches/brancha",
- 1, TrunkBranchingScheme()))))
+ 1, 0, TrunkBranchingScheme()))))
def test_branch_log_specific_ignore(self):
repos_url = self.make_client("a", "dc")
@@ -381,7 +381,7 @@
set_branching_scheme(repos, TrunkBranchingScheme())
self.assertEqual(1, len(list(repos.iter_reverse_branch_changes("branches/brancha",
- 2, TrunkBranchingScheme()))))
+ 2, 0, TrunkBranchingScheme()))))
def test_find_branches(self):
repos_url = self.make_client("a", "dc")
@@ -412,7 +412,7 @@
repos = Repository.open(repos_url)
set_branching_scheme(repos, TrunkBranchingScheme())
- tags = repos.find_tags()
+ tags = repos.find_tags("")
self.assertEquals({"brancha": repos.generate_revision_id(1, "tags/brancha", repos.get_mapping()),
"branchab": repos.generate_revision_id(1, "tags/branchab", repos.get_mapping())}, tags)
@@ -430,7 +430,7 @@
repos = Repository.open(repos_url)
set_branching_scheme(repos, TrunkBranchingScheme())
- tags = repos.find_tags()
+ tags = repos.find_tags("")
self.assertEquals({"brancha": repos.generate_revision_id(1, "trunk", repos.get_mapping())}, tags)
def test_find_tags_modified(self):
@@ -453,7 +453,7 @@
repos = Repository.open(repos_url)
set_branching_scheme(repos, TrunkBranchingScheme())
- tags = repos.find_tags()
+ tags = repos.find_tags("")
self.assertEquals({"brancha": repos.generate_revision_id(3, "tags/brancha", repos.get_mapping())}, tags)
def test_find_branchpaths_moved(self):
@@ -1076,7 +1076,7 @@
self.assertEquals([('trunk', {'trunk': (u'M', None, -1)}, 3),
('trunk', {'trunk': (u'M', None, -1)}, 2),
('trunk', {'trunk/bla': (u'A', None, -1), 'trunk': (u'A', None, -1)}, 1)],
- [(l.branch_path, l.paths, l.revnum) for l in oldrepos.iter_reverse_branch_changes("trunk", 3, TrunkBranchingScheme())])
+ [(l.branch_path, l.paths, l.revnum) for l in oldrepos.iter_reverse_branch_changes("trunk", 3, 0, TrunkBranchingScheme())])
def test_control_code_msg(self):
if ra.version()[1] >= 5:
More information about the bazaar-commits
mailing list