Rev 1428: Don't set tag if we can't lookup the revision id. in http://people.samba.org/bzr/jelmer/bzr-svn/trunk

Jelmer Vernooij jelmer at samba.org
Fri Jul 4 22:14:25 BST 2008


At http://people.samba.org/bzr/jelmer/bzr-svn/trunk

------------------------------------------------------------
revno: 1428
revision-id: jelmer at samba.org-20080704211424-rkawrjnz6cbjbmg7
parent: jelmer at samba.org-20080704205813-d2mfvuiipfcd27ql
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Fri 2008-07-04 23:14:24 +0200
message:
  Don't set tag if we can't lookup the revision id.
modified:
  branch.py                      svnbranch.py-20051017135706-11c749eb0dab04a7
=== modified file 'branch.py'
--- a/branch.py	2008-07-04 05:48:04 +0000
+++ b/branch.py	2008-07-04 21:14:24 +0000
@@ -24,6 +24,7 @@
 from bzrlib.inventory import (Inventory)
 from bzrlib.revision import is_null, ensure_null, NULL_REVISION
 from bzrlib.tag import BasicTags
+from bzrlib.trace import mutter
 from bzrlib.workingtree import WorkingTree
 
 from bzrlib.plugins.svn import core, wc
@@ -64,7 +65,13 @@
     def set_tag(self, tag_name, tag_target):
         path = self.layout.get_tag_path(tag_name, self.project)
         parent = urlutils.dirname(path)
-        (from_bp, from_revnum, mapping) = self.repository.lookup_revision_id(tag_target)
+        try:
+            (from_bp, from_revnum, mapping) = self.repository.lookup_revision_id(tag_target)
+        except NoSuchRevision:
+            mutter("not setting tag %s; unknown revision %s", tag_name, tag_target)
+            return
+        if from_bp == path:
+            return
         conn = self.repository.transport.connections.get(urlutils.join(self.repository.base, parent))
         deletefirst = (conn.check_path(urlutils.basename(path), self.repository.get_latest_revnum()) != core.NODE_NONE)
         try:
@@ -123,6 +130,15 @@
         finally:
             self.repository.transport.add_connection(conn)
 
+    def _set_tag_dict(self, dest_dict):
+        cur_dict = self.get_tag_dict()
+        for k,v in dest_dict.iteritems():
+            if cur_dict.get(k) != v:
+                self.set_tag(k, v)
+        for k in cur_dict:
+            if k not in dest_dict:
+                self.delete_tag(k)
+
 
 class SvnBranch(Branch):
     """Maps to a Branch in a Subversion repository """
@@ -407,6 +423,7 @@
                     raise NotImplementedError('overwrite not supported for '
                                               'Subversion branches')
                 raise
+            result.tag_conflicts = source.tags.merge_to(self.tags, overwrite)
             (result.new_revno, result.new_revid) = self.last_revision_info()
             return result
         finally:
@@ -537,6 +554,9 @@
     def __str__(self):
         return '%s(%r)' % (self.__class__.__name__, self.base)
 
+    def supports_tags(self):
+        return self._format.supports_tags()
+
     __repr__ = __str__
 
 
@@ -564,3 +584,5 @@
         """See BranchFormat.initialize()."""
         raise NotImplementedError(self.initialize)
 
+    def supports_tags(self):
+        return True




More information about the bazaar-commits mailing list