Cache InputFile content hashes.

Summary:
When run as buckd a cache of the hashes of InputFile contents
is maintained, avoiding the need to read and hash a potentially large
number of files each build to determine whether they have
changed. Hashes are invalidated when the corresponding file is changed
and buckd is notified via the file system watcher.

Test Plan:
1) buck test --all
2) buckd
3) buck build buck
4) buck build buck
5) check that the durations of the parse and build phases are both < 0.1 second
16 files changed
tree: 4f63e2ffead9591c02afc424148ffe6e219def92
  1. .idea/
  2. bin/
  3. config/
  4. docs/
  5. lib/
  6. plugin/
  7. pmd/
  8. scripts/
  9. src/
  10. test/
  11. testdata/
  12. third-party/
  13. .buckconfig
  14. .classpath
  15. .gitignore
  16. .project
  17. buck.iml
  18. build.xml
  19. DEFS
  20. LICENSE
  21. README.md
README.md

Buck

Buck is an Android build tool. To see what Buck can do for you, check out the documentation at http://facebook.github.io/buck/.

Installation

To build Buck, run the following:

git clone git@github.com:facebook/buck.git
cd buck
ant
./bin/buck --help

License

Apache License 2.0