Add -X support for the svn SCMClient.

Review Request #6345 — Created Sept. 20, 2014 and submitted

brennie
RBTools
master
6339
5a8fae4...
rbtools, students

The svn backend now supports excluding files through a
filterdiff-esque method: SVNClient._filter_diff. This
method looks through the output of svn diff for lines
that begin with Index: that mark the beginning of a
new file in the diff. If the file matches any given
patterns, it will not yield the lines corresponding to
that file's diff.

Ran rbt diff -X ... in an SVN repository and successfully
excluded files and empty files.

  • 0
  • 0
  • 6
  • 1
  • 7
Description From Last Updated
brennie
reviewbot
  1. Tool: Pyflakes
    Processed Files:
        rbtools/clients/svn.py
    
    Ignored Files:
        docs/rbtools/rbt/commands/post.rst
        docs/rbtools/rbt/commands/diff.rst
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        rbtools/clients/svn.py
    
    Ignored Files:
        docs/rbtools/rbt/commands/post.rst
        docs/rbtools/rbt/commands/diff.rst
    
    
  2. 
      
brennie
brennie
reviewbot
  1. Tool: Pyflakes
    Processed Files:
        rbtools/clients/svn.py
    
    Ignored Files:
        docs/rbtools/rbt/commands/post.rst
        docs/rbtools/rbt/commands/diff.rst
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        rbtools/clients/svn.py
    
    Ignored Files:
        docs/rbtools/rbt/commands/post.rst
        docs/rbtools/rbt/commands/diff.rst
    
    
  2. 
      
david
  1. 
      
  2. rbtools/clients/svn.py (Diff revision 2)
     
     
     
     
     
     
     
     
     
     
     
     
     
     

    If for some reason there's text at the beginning of the diff before the first index line (which is valid), it will cause a NameError here, since include_file hasn't yet been set. Can you set include_file = True at the top of this function?

  3. 
      
brennie
reviewbot
  1. Tool: Pyflakes
    Processed Files:
        rbtools/clients/svn.py
    
    Ignored Files:
        docs/rbtools/rbt/commands/post.rst
        docs/rbtools/rbt/commands/diff.rst
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        rbtools/clients/svn.py
    
    Ignored Files:
        docs/rbtools/rbt/commands/post.rst
        docs/rbtools/rbt/commands/diff.rst
    
    
  2. 
      
chipx86
  1. 
      
  2. rbtools/clients/svn.py (Diff revision 3)
     
     

    Should have a trailing period.

    Can you add more details to this comment to describe what's happening in the change?

    I'm also interested in why we're filtering and not using -x. Did it turn out that we couldn't pass that to SVN?

    1. SVN calls out to external diff for each file, so if we run svn diff --diff-cmd=diff '-u -x pattern, then it runs a command like:
      diff -L "f (rev x)" -L "f (rev y)" old new -x pattern f. However, if f matches the given pattern, it will still spit out the diff becuase it was called on that specific file (not with, e.g., diff -x pattern -r old/ new/).

  3. rbtools/clients/svn.py (Diff revision 3)
     
     
     

    Blank line between statements and blocks.

  4. rbtools/clients/svn.py (Diff revision 3)
     
     
     

    Here too.

    Also, minor thing, but we usually just use m for this variable. Not a big deal, but doesn't hurt to be consistent.

  5. rbtools/clients/svn.py (Diff revision 3)
     
     
     

    And here.

  6. rbtools/clients/svn.py (Diff revision 3)
     
     

    What about on Windows?

    1. It turns out its not from svn diff. Its from SCMClient.convert_to_absolute_files.
      It will always prepend the slash.

  7. 
      
brennie
reviewbot
  1. Tool: Pyflakes
    Processed Files:
        rbtools/clients/svn.py
    
    Ignored Files:
        docs/rbtools/rbt/commands/post.rst
        docs/rbtools/rbt/commands/diff.rst
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        rbtools/clients/svn.py
    
    Ignored Files:
        docs/rbtools/rbt/commands/post.rst
        docs/rbtools/rbt/commands/diff.rst
    
    
  2. 
      
chipx86
  1. One last thing!

  2. rbtools/clients/svn.py (Diff revision 4)
     
     
     

    Summary should be on the same line as the """.

  3. 
      
chipx86
  1. Ship It!

  2. 
      
brennie
Review request changed

Status: Closed (submitted)

Change Summary:

Pushed to release-0.6.x (f4b3936)
Loading...