Edgewall Software

Opened 14 years ago

Last modified 11 years ago

#9622 closed defect

Subversion mergeinfo rendering - need to support asterix — at Initial Version

Reported by: osimons Owned by:
Priority: normal Milestone: 0.12.1
Component: version control Version: 0.12dev
Severity: normal Keywords: svn mergeinfo
Cc: Branch:
Release Notes:
API Changes:
Internal Changes:

Description

I see this in my logs sometimes:

changeset.py:826 WARNING: Diff rendering failed for property svn:mergeinfo with renderer SubversionMergePropertyDiffRenderer: 
Traceback (most recent call last):
  File "/..../Trac-0.12.1dev_r10090-py2.6.egg/trac/versioncontrol/web_ui/changeset.py", line 821, in render_property_diff
    options)
  File "/..../Trac-0.12.1dev_r10090-py2.6.egg/trac/versioncontrol/svn_prop.py", line 277, in render_property_diff
    old_sources = parse_sources(old_props)
  File "/..../Trac-0.12.1dev_r10090-py2.6.egg/trac/versioncontrol/svn_prop.py", line 275, in parse_sources
    sources[spath] = set(Ranges(revs.strip()))
  File "/..../Trac-0.12.1dev_r10090-py2.6.egg/trac/util/__init__.py", line 707, in __init__
    self.appendrange(r)
  File "/..../Trac-0.12.1dev_r10090-py2.6.egg/trac/util/__init__.py", line 718, in appendrange
    a, b = int(x), int(x)
ValueError: invalid literal for int() with base 10: '6164-6259*'

From what I see and read, I think we need to handle the fact that sometimes an asterix gets appended to mergeinfo. From background information: "This '*' is the marker for a non-inheritable mergeinfo range. The '*' means that only the path on which the mergeinfo is explicitly set has had this range merged into it"

What we need to do, I suppose, is to strip the '*' before we try to handle the range.

Change History (0)

Note: See TracTickets for help on using tickets.