Cope with svn+ prefix when setting tags.
authorJelmer Vernooij <jelmer@samba.org>
Wed, 27 Aug 2008 17:39:12 +0000 (19:39 +0200)
committerJelmer Vernooij <jelmer@samba.org>
Wed, 27 Aug 2008 17:39:12 +0000 (19:39 +0200)
NEWS
fetch.py
repository.py
tags.py
transport.py
workingtree.py

diff --git a/NEWS b/NEWS
index c7d33d5780e11d61b712b0158cdc0e47bcee7250..31497818f298a02be41aa49bc7b037e6619262b8 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,9 @@
 bzr-svn 0.4.12 UNRELEASED
 
+  BUG FIXES
+
+   * Cope with svn+ prefix when setting tags. (#261748)
+
 bzr-svn 0.4.11 2008-08-26
 
 bzr-svn 0.4.11~rc2     2008-08-26
index 4fca801b77cd942a31fcf7806e9c6fec26e22240..5f065f7d366acd67338c5dd68a0926c810b35d2e 100644 (file)
--- a/fetch.py
+++ b/fetch.py
@@ -755,7 +755,7 @@ class InterFromSvnRepository(InterRepository):
                     try:
                         conn = None
                         try:
-                            conn = self.source.transport.connections.get(urlutils.join(repos_root, parent_branch))
+                            conn = self.source.transport.get_connection(parent_branch)
 
                             assert revmeta.revnum > parent_revnum or start_empty
 
index 3a917b6bf7e1a308a89bf768bcd322b50016cb2b..cf2dfa3714b4ea57d8d0d328de2e703d80316c4e 100644 (file)
@@ -353,7 +353,7 @@ class SvnRepository(Repository):
                                       self.get_fileid_map(revision.svn_meta.revnum, 
                                                           revision.svn_meta.branch_path,
                                                           revision.svn_mapping), parentfileidmap)
-        conn = self.transport.connections.get(urlutils.join(self.transport.get_svn_repos_root(), parent_branch_path))
+        conn = self.transport.get_connection(parent_branch_path)
         try:
             reporter = conn.do_diff(revision.svn_meta.revnum, "", urlutils.join(self.transport.get_svn_repos_root(), revision.svn_meta.branch_path), editor, True, True, False)
             reporter.set_path("", parentrevnum, start_empty)
diff --git a/tags.py b/tags.py
index f1b0b789646d4bb789dff91f699b431ce21b0dc8..d93aa2f17af346e64e4b88323f5e36c5b35e0648 100644 (file)
--- a/tags.py
+++ b/tags.py
@@ -73,7 +73,7 @@ class SubversionTags(BasicTags):
         if from_bp == path:
             return
         self._ensure_tag_parent_exists(parent)
-        conn = self.repository.transport.connections.get(urlutils.join(self.repository.base, parent))
+        conn = self.repository.transport.get_connection(parent)
         deletefirst = (conn.check_path(urlutils.basename(path), self.repository.get_latest_revnum()) != core.NODE_NONE)
         try:
             ci = conn.get_commit_editor({properties.PROP_REVISION_LOG: "Add tag %s" % tag_name.encode("utf-8")})
@@ -116,7 +116,7 @@ class SubversionTags(BasicTags):
     def delete_tag(self, tag_name):
         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))
+        conn = self.repository.transport.get_connection(parent)
         try:
             if conn.check_path(urlutils.basename(path), self.repository.get_latest_revnum()) != core.NODE_DIR:
                 raise NoSuchTag(tag_name)
index 559d833e99da9650ee23dd8c3a1f5796e84dbddf..7843970ea03897602e52013b710137c730d97250 100644 (file)
@@ -193,8 +193,12 @@ class SvnRaTransport(Transport):
         from bzrlib.plugins.svn import lazy_check_versions
         lazy_check_versions()
 
-    def get_connection(self):
-        return self.connections.get(self.svn_url)
+    def get_connection(self, repos_path=None):
+        if repos_path is not None:
+            return self.connections.get(urlutils.join(self.get_svn_repos_root(), 
+                                        repos_path))
+        else:
+            return self.connections.get(self.svn_url)
 
     def add_connection(self, conn):
         self.connections.add(conn)
index 656640c4a504ad1f41100d8ed1e98bef0eaba49f..27c4db54552d123c5a55ca65bbb9b25785f4b4ec 100644 (file)
@@ -159,7 +159,7 @@ class SvnWorkingTree(WorkingTree):
             revnum = self.branch.get_revnum()
         adm = self._get_wc(write_lock=True)
         try:
-            conn = self.branch.repository.transport.connections.get(bzr_to_svn_url(self.branch.base))
+            conn = self.branch.repository.transport.get_connection(self.branch.get_branch_path())
             try:
                 update_wc(adm, self.basedir, conn, revnum)
             finally: