Uploaded image for project: 'Subversion'
  1. Subversion
  2. SVN-3019

Disambiguate property change actions in 'svn diff' and 'svnlook diff' output

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: trunk
    • Fix Version/s: 1.5.0
    • Component/s: libsvn_client
    • Labels:

      Description

      The diff of svn:mergeinfo propery adds and removes is a bit cryptic.  For example:
      
      # Hey, it's the greek tree!
      >svn st -v
                      1        1 jrandom      .
                      1        1 jrandom      A
                      1        1 jrandom      A\B
                      1        1 jrandom      A\B\lambda
                      1        1 jrandom      A\B\E
                      1        1 jrandom      A\B\E\alpha
                      5        5 jrandom      A\B\E\beta
                      1        1 jrandom      A\B\F
                      1        1 jrandom      A\mu
                      1        1 jrandom      A\C
                      1        1 jrandom      A\D
                      1        1 jrandom      A\D\gamma
                      1        1 jrandom      A\D\G
                      1        1 jrandom      A\D\G\pi
                      4        4 jrandom      A\D\G\rho
                      1        1 jrandom      A\D\G\tau
                      1        1 jrandom      A\D\H
                      1        1 jrandom      A\D\H\chi
                      6        6 jrandom      A\D\H\omega
                      3        3 jrandom      A\D\H\psi
                      2        2 jrandom      A_COPY
                      2        2 jrandom      A_COPY\B
                      2        2 jrandom      A_COPY\B\lambda
                      2        2 jrandom      A_COPY\B\E
                      2        2 jrandom      A_COPY\B\E\alpha
                      2        2 jrandom      A_COPY\B\E\beta
                      2        2 jrandom      A_COPY\B\F
                      2        2 jrandom      A_COPY\mu
                      2        2 jrandom      A_COPY\C
                      2        2 jrandom      A_COPY\D
                      2        2 jrandom      A_COPY\D\gamma
                      2        2 jrandom      A_COPY\D\G
                      2        2 jrandom      A_COPY\D\G\pi
                      2        2 jrandom      A_COPY\D\G\rho
                      2        2 jrandom      A_COPY\D\G\tau
                      2        2 jrandom      A_COPY\D\H
                      2        2 jrandom      A_COPY\D\H\chi
                      2        2 jrandom      A_COPY\D\H\omega
                      2        2 jrandom      A_COPY\D\H\psi
                      1        1 jrandom      iota
      
      # ...and it has some mergeinfo.
      >svn pl -vR
      Properties on 'A_COPY':
        svn:mergeinfo : /A:1
      
      # Delete that mergeinfo
      >svn pd svn:mergeinfo A_COPY
      property 'svn:mergeinfo' deleted from 'A_COPY'.
      
      # And diff the WC, the property is 'reverted'?  No, it's deleted.
      >svn diff
      
      Property changes on: A_COPY
      ___________________________________________________________________
      Name: svn:mergeinfo
         Reverted /A:r1
      
      # And for something even more cryptic,
      # add an empty set of mergeinfo.
      >svn ps svn:mergeinfo "" A_COPY\D
      property 'svn:mergeinfo' set on 'A_COPY\D'
      
      # And diff, notice that it doesn't tell us much.
      # But it get's worse :-)
      >svn diff A_COPY\D
      
      Property changes on: A_COPY\D
      ___________________________________________________________________
      Name: svn:mergeinfo
      
      # Commit what we have so far.
      >svn ci -m ""
      Sending        A_COPY
      Sending        A_COPY\D
      
      Committed revision 7.
      
      # Now delete the empty mergeinfo
      >svn pd svn:mergeinfo A_COPY\D
      property 'svn:mergeinfo' deleted from 'A_COPY\D'.
      
      # And diff -- the diff is *exactly* the same as when
      # we added the empty mergeinfo.
      >svn diff
      
      Property changes on: A_COPY\D
      ___________________________________________________________________
      Name: svn:mergeinfo
      
      A few devs have been thrown by these diffs so I expect the typical user will be
      too.  Per cmpilato we special case the addition and removal of the svn:mergeinfo
      property in display_prop_diffs().  The exact diff output in these cases is TBD.
      

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              pburba Paul Burba
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: