Rev 1821: Fix tests. in file:///data/jelmer/bzr-svn/trunk/

Jelmer Vernooij jelmer at samba.org
Sat Sep 6 01:03:19 BST 2008


At file:///data/jelmer/bzr-svn/trunk/

------------------------------------------------------------
revno: 1821
revision-id: jelmer at samba.org-20080906000317-99obddr17i83lhlv
parent: jelmer at samba.org-20080905230153-ef7cjzqvrra0b1dd
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: trunk
timestamp: Sat 2008-09-06 02:03:17 +0200
message:
  Fix tests.
modified:
  commit.py                      commit.py-20060607190346-qvq128wgfubhhgm2-1
  repository.py                  repository.py-20060306123302-1f8c5069b3fe0265
  transport.py                   transport.py-20060406231150-b3472d06b3a0818d
=== modified file 'commit.py'
--- a/commit.py	2008-09-05 23:01:53 +0000
+++ b/commit.py	2008-09-06 00:03:17 +0000
@@ -127,13 +127,14 @@
 class SvnCommitBuilder(RootCommitBuilder):
     """Commit Builder implementation wrapped around svn_delta_editor. """
 
-    def __init__(self, repository, branch, parents, config, timestamp, 
+    def __init__(self, repository, branch_path, parents, config, timestamp, 
                  timezone, committer, revprops, revision_id, old_inv=None,
-                 push_metadata=True, graph=None, opt_signature=None):
+                 push_metadata=True, graph=None, opt_signature=None,
+                 append_revisions_only=True):
         """Instantiate a new SvnCommitBuilder.
 
         :param repository: SvnRepository to commit to.
-        :param branch: SvnBranch to commit to.
+        :param branch: branch path to commit to.
         :param parents: List of parent revision ids.
         :param config: Branch configuration to use.
         :param timestamp: Optional timestamp recorded for commit.
@@ -150,8 +151,9 @@
         """
         super(SvnCommitBuilder, self).__init__(repository, parents, 
             config, timestamp, timezone, committer, revprops, revision_id)
-        self.branch = branch
+        self.branch_path = branch_path
         self.push_metadata = push_metadata
+        self._append_revisions_only = append_revisions_only
 
         # Gather information about revision on top of which the commit is 
         # happening
@@ -206,7 +208,7 @@
             self._svn_revprops = None
         self._svnprops = lazy_dict({}, lambda: dict(self._base_branch_props.items()))
         self.base_mapping.export_revision(
-            self.branch.get_branch_path(), timestamp, timezone, committer, revprops, 
+            self.branch_path, timestamp, timezone, committer, revprops, 
             revision_id, self.base_revno+1, parents, self._svn_revprops, self._svnprops)
 
         if len(merges) > 0:
@@ -267,7 +269,7 @@
                     self.new_inventory[child_ie.file_id].name != child_name):
                     self.mutter('removing %r(%r)', (child_name, child_ie.file_id))
                     dir_editor.delete_entry(
-                        urlutils.join(self.branch.get_branch_path(), path, child_name), 
+                        urlutils.join(self.branch_path, path, child_name), 
                         self.base_revnum)
 
         # Loop over file children of file_id in self.new_inventory
@@ -279,7 +281,7 @@
                 continue
 
             new_child_path = self.new_inventory.id2path(child_ie.file_id).encode("utf-8")
-            full_new_child_path = urlutils.join(self.branch.get_branch_path(), 
+            full_new_child_path = urlutils.join(self.branch_path, 
                                   new_child_path)
             # add them if they didn't exist in old_inv 
             if not child_ie.file_id in self.old_inv:
@@ -352,7 +354,7 @@
             if not child_ie.file_id in self.old_inv:
                 self.mutter('adding dir %r', child_ie.name)
                 child_editor = dir_editor.add_directory(
-                    urlutils.join(self.branch.get_branch_path(), 
+                    urlutils.join(self.branch_path, 
                                   new_child_path))
 
             # copy if they existed at different location
@@ -360,7 +362,7 @@
                 old_child_path = self.old_inv.id2path(child_ie.file_id)
                 self.mutter('copy dir %r -> %r', old_child_path, new_child_path)
                 child_editor = dir_editor.add_directory(
-                    urlutils.join(self.branch.get_branch_path(), new_child_path),
+                    urlutils.join(self.branch_path, new_child_path),
                     urlutils.join(self.repository.transport.svn_url, self.base_path, old_child_path), self.base_revnum)
 
             # open if they existed at the same location and 
@@ -369,7 +371,7 @@
                 self.mutter('open dir %r', new_child_path)
 
                 child_editor = dir_editor.open_directory(
-                        urlutils.join(self.branch.get_branch_path(), new_child_path), 
+                        urlutils.join(self.branch_path, new_child_path), 
                         self.base_revnum)
             else:
                 continue
@@ -480,9 +482,7 @@
             """
             self.revision_metadata = args
         
-        bp = self.branch.get_branch_path()
-        assert isinstance(bp, str), "%r" % bp
-        bp_parts = bp.split("/")
+        bp_parts = self.branch_path.split("/")
         repository_latest_revnum = self.repository.get_latest_revnum()
         lock = self.repository.transport.lock_write(".")
 
@@ -505,7 +505,7 @@
             # was the last revision in the repo. This situation 
             # happens a lot when pushing multiple subsequent revisions.
             if (self.base_revnum == self.repository.get_latest_revnum() and 
-                self.base_path == self.branch.get_branch_path()):
+                self.base_path == self.branch_path):
                 existing_bp_parts = bp_parts
             else:
                 existing_bp_parts = _check_dirs_exist(self.repository.transport, 
@@ -529,11 +529,11 @@
                 if len(bp_parts) == len(existing_bp_parts):
                     if self.base_path is None or self.base_path.strip("/") != "/".join(bp_parts).strip("/"):
                         replace_existing = True
-                    elif self.base_revnum < self.repository._log.find_latest_change(self.branch.get_branch_path(), repository_latest_revnum):
+                    elif self.base_revnum < self.repository._log.find_latest_change(self.branch_path, repository_latest_revnum):
                         replace_existing = True
 
-                if replace_existing and self.branch._get_append_revisions_only():
-                    raise AppendRevisionsOnlyViolation(self.branch.base)
+                if replace_existing and self._append_revisions_only:
+                    raise AppendRevisionsOnlyViolation(urlutils.join(self.repository.base, self.branch_path))
 
                 # TODO: Accept create_prefix argument
                 branch_editors = self.open_branch_editors(root, bp_parts,
@@ -588,7 +588,7 @@
             set_svn_revprops(self.repository.transport, result_revision, new_revprops)
             self._svn_revprops.update(new_revprops)
 
-        self.revmeta = self.repository._revmeta_provider.get_revision(self.branch.get_branch_path(), result_revision, 
+        self.revmeta = self.repository._revmeta_provider.get_revision(self.branch_path, result_revision, 
                 None, # FIXME: Generate changes dictionary
                 revprops=self._svn_revprops,
                 changed_fileprops=self._changed_fileprops,
@@ -759,7 +759,8 @@
 
 
 def push_revision_tree(graph, target, config, source_repo, base_revid, 
-                       revision_id, rev, push_metadata=True):
+                       revision_id, rev, push_metadata=True,
+                       append_revisions_only=True):
     old_tree = source_repo.revision_tree(revision_id)
     base_tree = source_repo.revision_tree(base_revid)
 
@@ -772,14 +773,15 @@
         opt_signature = source_repo.get_signature_text(rev.revision_id)
     except NoSuchRevision:
         opt_signature = None
-    builder = SvnCommitBuilder(target.repository, target, 
+    builder = SvnCommitBuilder(target.repository, target.get_branch_path(), 
                                base_revids,
                                config, rev.timestamp,
                                rev.timezone, rev.committer, rev.properties, 
                                revision_id, base_tree.inventory, 
                                push_metadata=push_metadata,
                                graph=graph,
-                               opt_signature=opt_signature)
+                               opt_signature=opt_signature,
+                               append_revisions_only=append_revisions_only)
                          
     replay_delta(builder, base_tree, old_tree)
     try:
@@ -821,7 +823,8 @@
     try:
         revid = push_revision_tree(graph, target, target.get_config(), 
                                    source_repo, base_revid, revision_id, 
-                                   rev, push_metadata=push_metadata)
+                                   rev, push_metadata=push_metadata,
+                                   append_revisions_only=target._get_append_revisions_only())
     finally:
         source_repo.unlock()
 
@@ -895,7 +898,8 @@
                                    create_prefix=True)
 
                 push_revision_tree(graph, target_branch, target_config, 
-                                   self.source, parent_revid, revision_id, rev)
+                                   self.source, parent_revid, revision_id, rev,
+                                   append_revisions_only=target_branch._get_append_revisions_only())
         finally:
             self.source.unlock()
  

=== modified file 'repository.py'
--- a/repository.py	2008-09-05 20:24:24 +0000
+++ b/repository.py	2008-09-06 00:03:17 +0000
@@ -767,8 +767,9 @@
                            timezone=None, committer=None, revprops=None, 
                            revision_id=None):
         from bzrlib.plugins.svn.commit import SvnCommitBuilder
-        return SvnCommitBuilder(self, branch, parents, config, timestamp, 
-                timezone, committer, revprops, revision_id)
+        return SvnCommitBuilder(self, branch.get_branch_path(), parents, config, timestamp, 
+                timezone, committer, revprops, revision_id, 
+                append_revisions_only=True)
 
     def find_fileprop_paths(self, layout, from_revnum, to_revnum, 
                                project=None, check_removed=False, 

=== modified file 'transport.py'
--- a/transport.py	2008-09-05 22:31:29 +0000
+++ b/transport.py	2008-09-06 00:03:17 +0000
@@ -290,7 +290,7 @@
                     self.semaphore.release()
                 try:
                     try:
-                        self.conn.get_log(callback=rcvr, *self.args, **self.kwargs)
+                        self.conn.get_log(rcvr, *self.args, **self.kwargs)
                         self.pending.append(None)
                     except Exception, e:
                         self.pending.append(e)
@@ -304,7 +304,7 @@
         else:
             newpaths = [p.rstrip("/") for p in paths]
 
-        fetcher = logfetcher(self, paths=newpaths, start=from_revnum, end=to_revnum, limit=limit, discover_changed_paths=discover_changed_paths, strict_node_history=strict_node_history, include_merged_revisions=include_merged_revisions, revprops=revprops)
+        fetcher = logfetcher(self, newpaths, from_revnum, to_revnum, limit, discover_changed_paths=discover_changed_paths, strict_node_history=strict_node_history, include_merged_revisions=include_merged_revisions, revprops=revprops)
         fetcher.start()
         return iter(fetcher.next, None)
 
@@ -549,3 +549,7 @@
     def get_commit_editor(self, *args, **kwargs):
         mutter("svn commit")
         return self.actual.get_commit_editor(*args, **kwargs)
+
+    def rev_proplist(self, revnum):
+        mutter("svn rev-proplist -r%d" % revnum)
+        return self.actual.rev_proplist(revnum)




More information about the bazaar-commits mailing list