diff options
author | Nathan Harmata <nharmata@google.com> | 2015-11-13 01:43:59 +0000 |
---|---|---|
committer | Lukacs Berki <lberki@google.com> | 2015-11-13 10:23:23 +0000 |
commit | 1e66ccd2f18b03733f22b93ad8051ff2cf37d3dd (patch) | |
tree | 01b02da842123097e8fae49960d35758d31c3cde /src/main/java/com/google/devtools/build/lib/runtime | |
parent | f6866778db261e5d8b95ee1c46622ceb19a609a4 (diff) |
RELNOTES: Symlink dirents of directories containing a file named "DONT_FOLLOW_SYMLINKS_WHEN_TRAVERSING_THIS_DIRECTORY_VIA_A_RECURSIVE_TARGET_PATTERN" will *not* be traversed for transitive target patterns. The motivation here is to allow directories that intentionally contain wonky symlinks (e.g. foo/bar -> foo) to opt out of being consumed by Blaze. For example, given
<workspace>/foo
bar
bad -> .
DONT_FOLLOW_SYMLINKS_WHEN_TRAVERSING_THIS_DIRECTORY_VIA_A_RECURSIVE_TARGET_PATTERN
the 'bad' symlink will *not* be traversed by the pattern '//foo/...'.
--
MOS_MIGRATED_REVID=107738930
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/runtime')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/runtime/commands/target-syntax.txt | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/target-syntax.txt b/src/main/java/com/google/devtools/build/lib/runtime/commands/target-syntax.txt index b2d7df8a56..3eec42e21b 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/target-syntax.txt +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/target-syntax.txt @@ -25,6 +25,14 @@ Specifying all rules recursively beneath a package: //foo/...:all Matches all rules in all packages beneath directory 'foo'. //foo/... (ditto) + By default, directory symlinks are followed when performing this recursive + traversal. But we understand that your workspace may intentionally contain + directories with weird symlink structures that you don't want consumed. As + such, if a directory has a file named + 'DONT_FOLLOW_SYMLINKS_WHEN_TRAVERSING_THIS_DIRECTORY_VIA_A_RECURSIVE_TARGET_PATTERN' + then symlinks in that directory won't be followed when evaluating recursive + target patterns. + Working-directory relative forms: (assume cwd = 'workspace/foo') Target patterns which do not begin with '//' are taken relative to |