Ticket #7715: 7715-mergeinfo-display-r8263.patch
| File 7715-mergeinfo-display-r8263.patch, 2.8 KB (added by rblank, 3 years ago) |
|---|
-
trac/htdocs/css/browser.css
diff --git a/trac/htdocs/css/browser.css b/trac/htdocs/css/browser.css
a b 174 174 margin: 0 0 .4em 1.6em; 175 175 padding: 0; 176 176 } 177 #info .props li { padding:0; overflow: auto; }177 #info .props > li { padding: 2px 0; overflow: auto; } 178 178 179 179 /* Styles for the HTML preview */ 180 180 #preview { background: #fff; clear: both; margin: 0 } -
trac/versioncontrol/svn_fs.py
diff --git a/trac/versioncontrol/svn_fs.py b/trac/versioncontrol/svn_fs.py
a b 323 323 if name == 'svn:externals': 324 324 return self._render_externals(props[name]) 325 325 elif name == 'svn:mergeinfo' or name.startswith('svnmerge-'): 326 return self._render_mergeinfo( props[name])326 return self._render_mergeinfo(name, mode, context, props) 327 327 elif name == 'svn:needs-lock': 328 328 return self._render_needslock(context) 329 329 … … 389 389 return tag.ul([tag.li(tag.a(label, href=href, title=title)) 390 390 for label, href, title in externals_data]) 391 391 392 def _render_mergeinfo(self, prop): 393 prop = prop.rsplit(':', 1) 394 if len(prop) == 2: 395 prop[1] = prop[1].replace(',', u',\u200b') 396 return ':'.join(prop) 397 392 def _render_mergeinfo(self, name, mode, context, props): 393 """Parse svn:mergeinfo and svnmerge-* properties converting branch 394 names and revisions to links.""" 395 ul = [] 396 for line in props[name].splitlines(): 397 try: 398 path, revs = line.split(':', 1) 399 if 'LOG_VIEW' in context.perm('source', path): 400 li = [tag.a(path, href=context.href.browser(path)), ':'] 401 for rev in revs.split(','): 402 if len(li) > 2: 403 li.append(u',\u200b') 404 range = rev.split('-', 1) 405 if len(range) > 1: 406 href=context.href.log(path, rev=range[1], 407 stop_rev=range[0]) 408 else: 409 href=context.href.changeset(rev, path) 410 li.append(tag.a(rev, href=href)) 411 ul.append(tag.li(li)) 412 else: 413 revs = revs.replace(',', u',\u200b') 414 ul.append(tag.li(':'.join([path, revs]))) 415 except Exception, e: 416 self.log.warning('Rendering of property %s failed: %s', name, 417 exception_to_unicode(e)) 418 ul.append(tag.li(line)) 419 return tag.ul(ul) 420 398 421 def _render_needslock(self, context): 399 422 return tag.img(src=context.href.chrome('common/lock-locked.png'), 400 423 alt="needs lock", title="needs lock")
