Ticket #7715: 7715-mergeinfo-clean-r8263.patch
| File 7715-mergeinfo-clean-r8263.patch, 2.7 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 browser_href = context.href.browser(path, 401 rev=context.resource.version) 402 log_href = context.href.log(path, revs=revs) 403 ul.append(tag.li(tag.a(path, title=_('View dir'), 404 href=browser_href), ': ', 405 tag.a(_('show revisions'), 406 title=revs.replace(',', u', '), 407 href=log_href))) 408 else: 409 revs = revs.replace(',', u',\u200b') 410 ul.append(tag.li(':'.join([path, revs]))) 411 except Exception, e: 412 self.log.warning('Rendering of property %s failed: %s', name, 413 exception_to_unicode(e)) 414 ul.append(tag.li(line)) 415 return tag.ul(ul) 416 398 417 def _render_needslock(self, context): 399 418 return tag.img(src=context.href.chrome('common/lock-locked.png'), 400 419 alt="needs lock", title="needs lock")
