Edgewall Software

Ticket #4366: revisionlog-t4366.2.diff

File revisionlog-t4366.2.diff, 3.8 KB (added by cboos, 2 years ago)

patch fixed, works when the first revision is an addition

  • trac/versioncontrol/web_ui/log.py

     
    112112                            rev = repos.normalize_rev(b) 
    113113                            node = get_existing_node(req, repos, prevpath, rev) 
    114114                            node_history = list(node.get_history(2)) 
    115                             rev = node_history[0][1] 
     115                            p, rev, chg = node_history[0] 
    116116                            if rev < a: 
     117                                yield (p, rev, None) # separator 
    117118                                break 
    118119                            yield node_history[0] 
    119120                            prevpath = node_history[-1][0] # follow copy 
    120121                            b = rev-1 
     122                            if b < a and len(node_history) > 1: 
     123                                p, rev, chg = node_history[1] 
     124                                yield (p, rev, None) 
    121125 
    122126        # -- retrieve history, asking for limit+1 results 
    123127        info = [] 
     
    125129        fix_deleted_rev = False 
    126130        previous_path = normpath 
    127131        for old_path, old_rev, old_chg in history(limit+1): 
     132            print old_path, old_rev, old_chg 
    128133            if fix_deleted_rev: 
    129134                fix_deleted_rev['existing_rev'] = old_rev 
    130135                fix_deleted_rev = False 
     
    173178            add_link(req, 'next', make_log_href(next_path, rev=next_rev), 
    174179                     'Revision Log (restarting at %s, rev. %s)' 
    175180                     % (next_path, next_rev)) 
    176             # now, only show 'limit' results 
    177             del info[-1] 
     181            # only show fully 'limit' results, use `change == None` as a marker 
     182            info[-1]['change'] = None 
    178183         
    179184        revs = [i['rev'] for i in info] 
    180185        changes = get_changes(repos, revs) 
  • templates/revisionlog.html

     
    102102                             change_context = context('changeset', change.rev); 
    103103                             odd_even = idx % 2 and 'odd' or 'even'"> 
    104104                <!--! highlight copy or rename operations --> 
    105                 <tr py:if="item.copyfrom_path" class="$odd_even"> 
     105                <tr py:if="item.change and item.copyfrom_path" class="$odd_even"> 
    106106                  <td /> 
    107107                  <td class="copyfrom_path" colspan="7" style="padding-left: ${item.depth - 1}em"> 
    108108                    copied from <a href="${href.browser(item.path, rev=item.rev)}">$item.copyfrom_path</a>: 
    109109                  </td> 
    110110                </tr> 
    111111 
    112                 <tr class="$odd_even"> 
     112                <tr class="$odd_even" py:choose=""> 
    113113                  <td class="diff"> 
    114114                    <input type="radio" name="old" value="${item.rev}@${item.path}" 
    115115                           checked="${idx == (len(items) - 1) or None}" /> 
    116116                    <input type="radio" name="new" value="${item.rev}@${item.path}" 
    117117                           checked="${idx == 0 or None}" /> 
    118118                  </td> 
     119                  <py:when test="item.change"> 
    119120                  <td class="change" style="padding-left: ${item.depth}em"> 
    120121                    <a title="View log starting at this revision" href="${href.log(item.path, rev=item.rev)}"> 
    121122                      <span class="$item.change"></span> 
     
    139140                    </py:when> 
    140141                    <py:otherwise>shorten_line(change.message)</py:otherwise> 
    141142                  </td> 
     143                  </py:when> 
     144                  <td colspan="6" py:otherwise="" /> 
    142145                </tr> 
    143146 
    144147                <tr py:if="verbose">