commit | 72a0b98fac998894845488a3be989f8f9da9c0e3 | [log] [tgz] |
---|---|---|
author | Yiding Jia <yiding@fb.com> | Wed Nov 06 17:29:08 2013 -0800 |
committer | Michael Bolin <mbolin@fb.com> | Tue Nov 12 17:52:39 2013 -0800 |
tree | b7f2bb24121342b769fd4c604faeea9163eb6171 | |
parent | 5f1189894b87fd7e494fd04a835c22d77f1e0a1e [diff] |
buck.py more permissive symlinking. Summary: f0dedaec09331f73b3970658344cf8f3cb37a83b introduced a symlink aware walk aimed at preventing recursively symlink loops; however, it was too restrictive in that it pruned all symlinks that it has visited before, not only those that would result in recursive symlinks. This breaks legitimate uses of symlinking to siblings and cousin directories. This diff adds a second test before pruning the symlink: not only must the target directory be one already visited, but it must also be a direct ancestor of the current directory. Test Plan: Trigger the traversal code by using recursive `glob` and `buck test --all` on directories with the following configurations: Test that siblings are okay (`b` and `c` are both traversed): a/ b/ c -> b Test that ancestors are still rejected (`c` is not traversed): a/ b/ c/ -> ../b
Buck is an Android build tool. To see what Buck can do for you, check out the documentation at http://facebook.github.io/buck/.
To build Buck, run the following:
git clone git@github.com:facebook/buck.git cd buck ant ./bin/buck --help
Apache License 2.0