[Svnmerge] Changes to svnmerge-blocked property are still shown even when using svnmerge.py avail -b

Giovanni Bajo rasky at develer.com
Thu Oct 19 16:08:26 PDT 2006


Steven Shanks wrote:

> Sorry, let me make myself a bit clearer.  The commands I am using are:
>
> [release branch] svnmerge.py block -r 100
> (revision blocked)
> [release branch] svn commit
> (new revision 101 committed)
>
> [release branch] svnmerge.py avail -b
> (returns nothing as expected)
>
> [trunk] svnmerge.py avail -b
> 101
>
> This revision (101) only contains the change to the svnmerge-blocked
> property, and as far as I understand, this doesn't and shouldn't apply
> to the trunk?  So my natural reaction would be to try and block it,
> which would lead to revision 102 being a possible merge for the
> branch, and so on...

Yes, we do not consider changes to blocked-prop as reflected revisions. I
consider this a missing feature. Try this patch:


Index: svnmerge.py
===================================================================
--- svnmerge.py (revision 21495)
+++ svnmerge.py (working copy)
@@ -326,6 +350,7 @@     def __init__(self, url, begin, end,
             self.end = int(end)

         self._merges = None
+        self._blocks = None

     def merge_metadata(self):
         """
@@ -339,6 +364,14 @@     def merge_metadata(self):
             self._merges.load(self)

         return self._merges
+
+    def block_metadata(self):
+        if not self._blocks:
+            self._blocks = VersionedProperty(self.url, opts["block-prop"])
+            self._blocks.load(self)
+
+        return self._blocks
+


 class VersionedProperty:
@@ -924,6 +957,7 @@     defaults to 1-HEAD), to find out whi

     if find_reflected:
         reflected_revs = logs[url].merge_metadata().changed_revs(target_dir)
+        reflected_revs += logs[url].block_metadata().changed_revs(target_dir)
     else:
         reflected_revs = []


Giovanni Bajo




More information about the Svnmerge mailing list