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
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:
- Running
rbt diff -X PATTERN
in a subdirectory checkout
works as expected.- We no longer rely on the
Working Copy Root Path
field of
svn info.- Running
rbt diff --repository-url URL -X PATTERN R1:R2
works as expected when ran outside of an SVN checkout.