• 
      

    brennie got review request #7000!

    Make file exclusion support syntax consistent for all SCMClients

    Review Request #7000 — Created March 2, 2015 and submitted — Latest diff uploaded

    Information

    RBTools
    release-0.7.x
    50ef470...

    Reviewers

    File exclusion support (e.g., with rbt diff -X pattern or
    rbt post -X pattern) now behaves identically (with some caveats).
    Previously, the case of having a pattern matching against the root of
    the repository was not well defined and was misinterpreted by all
    SCMClients. Now all patterns beginning with a path separator (e.g.
    -X /pattern on Linux and Mac OS, and -X \pattern on Windows) are
    treated as being relative to the root of the repository checkoutl.
    However, because CVS generates diffs relative to the current working
    directory (without an easy way to determine the checkout root), all
    patterns (even those beginning with a path separator) are treated as
    relative to the current working directory.

    The documentation for the -X flag has been updated to reflect these
    changes.

    Unit tests have been added for Bazaar, Git, Mercurial, and Subversion
    for generating diffs correctly with this new syntax. A unit test has
    also been added for Perforce that checks that paths are normalized
    correctly.

    Ran unit tests.

    Manually tested that files were excluded correctly using CVS.

    Manually verified that all cases in issue 3776 are resolved:

    1. Running rbt diff -X PATTERN in a subdirectory checkout
      works as expected.
    2. We no longer rely on the Working Copy Root Path field of
      svn info.
    3. Running rbt diff --repository-url URL -X PATTERN R1:R2
      works as expected when ran outside of an SVN checkout.