[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