Watches files and records, or triggers actions, when they change.
C++ Python Java Rust C CSS Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.circleci Fix builds on CircleCI Jun 1, 2018
cmds Update watchman result with optional saved state Aug 2, 2018
cppclient 'Re-sync with internal repository' (#632) Aug 14, 2018
java Run buildifier in buck files in fbcode/ May 25, 2018
node fix various linter issues Jan 27, 2018
python fixup py2 vs py3 compat issue with watchman-make Aug 15, 2018
query Update watchman result with optional saved state Aug 2, 2018
root Fix "use of undeclared identifier 'WATCHMAN_CONFIG_FILE'" Jul 14, 2018
ruby/ruby-watchman Fix (spurious) test failure on big-endian architectures Aug 22, 2014
rust/serde_bser 'Re-sync with internal repository' (#632) Aug 14, 2018
saved_state Add a manifold watchman saved state implementation Aug 2, 2018
scm disable telemetry logging for scm commands Aug 3, 2018
tests restructure JournalDelta and fix Watchman subscription race Aug 15, 2018
thirdparty 'Re-sync with internal repository' (#632) Aug 14, 2018
travis Fix macOS Python 2.6 builds on Travis CI (#614) Jun 7, 2018
watcher make it easier to skip based on capabilities Aug 14, 2018
website Fixed a typo Jul 9, 2018
winbuild Add a local saved state implementation to Watchman Aug 2, 2018
.clang-format add escaping for mixed strings Dec 15, 2016
.gitattributes Fix favicon in website Aug 7, 2015
.gitignore add cmake build Mar 29, 2018
.travis.yml add cmake build Mar 29, 2018
CMakeLists.txt Add a local saved state implementation to Watchman Aug 2, 2018
CODE_OF_CONDUCT.md Add Code of Conduct Dec 7, 2017
ChildProcess.cpp terminate process without running destructors on FATAL Mar 22, 2018
ChildProcess.h merge Win32Handle into FileDescriptor Jun 2, 2017
ContentHash.cpp fix existential issue with SCM aware queries Mar 6, 2018
ContentHash.h fix existential issue with SCM aware queries Mar 6, 2018
CookieSync.cpp work harder to surface sync errors more accurately Feb 24, 2018
CookieSync.h work harder to surface sync errors more accurately Feb 24, 2018
FileDescriptor.cpp Fix watchman on solaris/illumos. May 21, 2018
FileDescriptor.h migrate the remains of Win32Handle.cpp -> FileDescriptor.cpp Jun 6, 2017
FileInformation.cpp improve existential SCM aware query handling Mar 7, 2018
FileInformation.h improve existential SCM aware query handling Mar 7, 2018
FileSystem.h turn off strict symlink check in OpenFileHandleOptions.openDir(). Jun 4, 2017
Future.h use eden thrift endpoint for getFilesChangedBetweenCommits Nov 29, 2017
InMemoryView.cpp InMemoryView::batchFetchProperties must always join futures Aug 1, 2018
InMemoryView.h remove data dep on exists/type for sha1 result rendering Jul 13, 2018
LICENSE initial commit Nov 30, 2012
LRUCache.h allow making progress even when content_hash_max_items is low Aug 1, 2018
LocalFileResult.cpp catch ENOENT for content.sha1hex with scm aware results Aug 14, 2018
LocalFileResult.h catch ENOENT for content.sha1hex with scm aware results Aug 14, 2018
Logging.h terminate process without running destructors on FATAL Mar 22, 2018
Makefile.am Add a local saved state implementation to Watchman Aug 2, 2018
MapUtil.h Add utility method and tests Nov 6, 2017
Optional.h introduce Optional container Jul 13, 2018
Pipe.cpp Re-worked replacement of memset with proper init to make it gcc 4.8 c… Jan 27, 2018
Pipe.h merge Win32Handle into FileDescriptor Jun 2, 2017
PubSub.cpp fix deadlock in subscription teardown Mar 7, 2018
PubSub.h Enhance the watchman debug-get-subscriptions command Aug 27, 2017
QueryableView.cpp recrawls no longer recreate the view instance Jun 20, 2017
QueryableView.h work harder to surface sync errors more accurately Feb 24, 2018
README.markdown Add Code of Conduct Dec 7, 2017
Result.h improve exception safety in Result Aug 1, 2018
SymlinkTargets.cpp use otime rather than timestamps for symlink cache Mar 22, 2018
SymlinkTargets.h use otime rather than timestamps for symlink cache Mar 22, 2018
ThreadPool.cpp terminate process without running destructors on FATAL Mar 22, 2018
ThreadPool.h apply clang-tidy modernize-use-override May 23, 2017
acinclude.m4 Add configure checks for C++11 compiler Sep 16, 2016
appveyor.yml add cmake build Mar 29, 2018
autogen.sh Open source Watchman C++ client library Feb 1, 2017
bser.cpp fixup compilation error on macos May 2, 2018
cfg.cpp Fix "use of undeclared identifier 'WATCHMAN_CONFIG_FILE'" Jul 14, 2018
checksock.cpp terminate process without running destructors on FATAL Mar 22, 2018
clientmode.cpp re-jigger log subscriptions Nov 3, 2016
clockspec.cpp Read saved state info from watchman clock Aug 2, 2018
configure.ac version: bump checked-in version to 4.9.4 May 23, 2018
error_category.cpp remove data dep on exists/type for sha1 result rendering Jul 13, 2018
expflags.cpp remove MIN, MAX defines Nov 4, 2016
fstype.cpp merge Win32Handle into FileDescriptor Jun 2, 2017
groups.cpp Move w_get_group out of main.cpp Jul 5, 2018
hash.cpp fixup some gcc 7.1 issues May 18, 2017
ignore.cpp standardize on / dir separators on all platforms Dec 15, 2016
ioprio.cpp mostly rename .c -> .cpp Sep 16, 2016
json.cpp Replaced memset calls with appopriate C++11 init or assignment. Jan 25, 2018
launchd.cpp remove client shutdown hack Nov 30, 2016
listener-user.cpp Fix problem where watch implicitly created. Sep 15, 2017
listener.cpp don't wait forever for clients on shutdown Aug 9, 2018
log.cpp Move log_name global out of main.cpp Jul 3, 2018
main.cpp prepare for more folly-dependent code Jul 9, 2018
make.bat add cmake build Mar 29, 2018
make_unique.h art: cut over to unique_ptr for nodes Nov 1, 2016
opendir.cpp improve reporting around getattrlistbulk Feb 20, 2018
opt.cpp avoid `abort` in a number of code paths Feb 23, 2018
pending.cpp refactor w_dir_path_cat_str -> getFullPathToChild Mar 12, 2018
perf.cpp terminate process without running destructors on FATAL Mar 22, 2018
runtests.py fix importing facebook.eden in eden integration tests Aug 14, 2018
sockname.cpp Move sock_name global out of main.cpp Jul 5, 2018
spawn.cpp fix debug level for json input Mar 26, 2018
state.cpp Move watchman_state_file, dont_save_state globals out of main.cpp Jul 3, 2018
stream.cpp remove w_stm_xxx accessor functions Nov 29, 2016
stream_stdout.cpp merge Win32Handle into FileDescriptor Jun 2, 2017
stream_unix.cpp Fix watchman on solaris/illumos. May 21, 2018
stream_win.cpp Re-worked replacement of memset with proper init to make it gcc 4.8 c… Jan 27, 2018
string.cpp remove more dead code Mar 12, 2018
time.cpp mostly rename .c -> .cpp Sep 16, 2016
timedlock.cpp remove MIN, MAX defines Nov 4, 2016
tmp.cpp Move watchman_tmp_dir global out of main.cpp Jul 5, 2018
watchman.h Move sock_name global out of main.cpp Jul 5, 2018
watchman_client.h Fix client subscription flakiness Jul 16, 2018
watchman_clockspec.h Read saved state info from watchman clock Aug 2, 2018
watchman_cmd.h Fix problem where watch implicitly created. Sep 15, 2017
watchman_config.h Fix "use of undeclared identifier 'WATCHMAN_CONFIG_FILE'" Jul 14, 2018
watchman_dir.h Delete dead code Jul 5, 2018
watchman_error_category.h remove data dep on exists/type for sha1 result rendering Jul 13, 2018
watchman_file.h defer reading of symlink targets Mar 21, 2018
watchman_getopt.h refactor: break watchman.h into separate header files Sep 16, 2016
watchman_hash.h add content hash as an available field Feb 3, 2017
watchman_ignore.h unordered_set and vector for ignore internals Nov 1, 2016
watchman_log.h terminate process without running destructors on FATAL Mar 22, 2018
watchman_opendir.h rename watchman_stat to FileInformation May 22, 2017
watchman_pdu.h add some more tests for BSER decoding Dec 15, 2016
watchman_pending.h refactor errmsg -> throw QueryXXXError Feb 10, 2017
watchman_perf.h refactor errmsg -> throw QueryXXXError Feb 10, 2017
watchman_preprocessor.h re-jigger log subscriptions Nov 3, 2016
watchman_query.h Update watchman result with optional saved state Aug 2, 2018
watchman_root.h state-(enter|leave) are now non-blocking Mar 21, 2018
watchman_scopeguard.h Cut the ScopeGuard alias now that we have auto Jan 11, 2018
watchman_shared_mutex.h remove pthread port for win32 Nov 30, 2016
watchman_stream.h migrate the remains of Win32Handle.cpp -> FileDescriptor.cpp Jun 6, 2017
watchman_string.h remove more dead code Mar 12, 2018
watchman_synchronized.h fix open source build Oct 21, 2016
watchman_system.h add cmake build Mar 29, 2018
watchman_time.h add content hash as an available field Feb 3, 2017
watchman_trigger.h triggers now use ChildProcess::Environment rather than envht Jan 23, 2017
watchman_watcher.h connect crawl errors to the watch failure reason Feb 23, 2018

README.markdown

Watchman

A file watching service.

Purpose

Watchman exists to watch files and record when they actually change. It can also trigger actions (such as rebuilding assets) when matching files change.

Documentation

Head on over to https://facebook.github.io/watchman/

Build Status

Build Status

Build status

License

Watchman is made available under the terms of the Apache License 2.0. See the LICENSE file that accompanies this distribution for the full text of the license.

Contributing

Please see the contributing guide.