Watches files and records, or triggers actions, when they change.
C++ Python Java PHP C CSS Other
Latest commit c3fcd80 Feb 27, 2017 @wez wez committed with facebook-github-bot fix parameter order for json_object_copy
Summary:
In D4533545 I discovered that the order of parameters was reversed when
making a copy.  This diff makes that a compiler error and corrects the issue.

Reviewed By: bolinfest

Differential Revision: D4622735

fbshipit-source-id: a37e0a469edd9a0f979db18cfbb7cdd5876b4102
Permalink
Failed to load latest commit information.
arcanist standardize on / dir separators on all platforms Dec 15, 2016
cmds avoid crash when loading triggers from the state file Feb 23, 2017
cppclient Fix crash on error getting socket from Watchman Feb 1, 2017
facebook allow building runtests.py with buck Dec 20, 2016
java In the Java client, allow the user to select a watchman binary Jan 21, 2017
node version bumps for npm Jan 30, 2017
python avoid Python 3.6 ResourceWarnings in integration tests Feb 10, 2017
query refactor errmsg -> throw QueryXXXError Feb 10, 2017
root add content hash cache warming heuristics Feb 4, 2017
ruby/ruby-watchman Fix (spurious) test failure on big-endian architectures Aug 22, 2014
tests fsevents dangling symlink bug was fixed in macOS 10.12 Feb 22, 2017
thirdparty fix parameter order for json_object_copy Feb 27, 2017
travis travis: try upgrading to Python 3.5.2 Dec 16, 2016
watcher refactor errmsg -> throw QueryXXXError Feb 10, 2017
website Open source Watchman C++ client library Feb 1, 2017
winbuild take version number up to 4.9 Feb 7, 2017
.clang-format add escaping for mixed strings Dec 15, 2016
.gitattributes Fix favicon in website Aug 7, 2015
.gitignore Open source Watchman C++ client library Feb 1, 2017
.hgignore Open source Watchman C++ client library Feb 1, 2017
.travis.yml Add configure checks for C++11 compiler Sep 16, 2016
ChildProcess.cpp add tests to verify capturing output from ChildProcess Jan 23, 2017
ChildProcess.h add tests to verify capturing output from ChildProcess Jan 23, 2017
ContentHash.cpp add content hash cache warming heuristics Feb 4, 2017
ContentHash.h add content hash cache warming heuristics Feb 4, 2017
CookieSync.cpp standardize on / dir separators on all platforms Dec 15, 2016
CookieSync.h factor cookie sync out into its own class Oct 19, 2016
FileDescriptor.cpp add FileDescriptor::isNonBlock() method Dec 8, 2016
FileDescriptor.h add FileDescriptor::isNonBlock() method Dec 8, 2016
Future.h add a simple thread pool Feb 3, 2017
InMemoryView.cpp refactor errmsg -> throw QueryXXXError Feb 10, 2017
InMemoryView.h refactor errmsg -> throw QueryXXXError Feb 10, 2017
LICENSE initial commit Nov 30, 2012
LRUCache.h add content hash cache warming heuristics Feb 4, 2017
Logging.h fix double logging bug Jan 29, 2017
Makefile.am add content hash as an available field Feb 3, 2017
Pipe.cpp refactor: reuse FileDescriptor, add Pipe class Nov 29, 2016
Pipe.h refactor: reuse FileDescriptor, add Pipe class Nov 29, 2016
PubSub.cpp Publisher::getPending is now O(my-unseen-items) Jan 9, 2017
PubSub.h Publisher::getPending is now O(my-unseen-items) Jan 9, 2017
QueryableView.cpp refactor errmsg -> throw QueryXXXError Feb 10, 2017
QueryableView.h refactor errmsg -> throw QueryXXXError Feb 10, 2017
README.markdown Re-did the AppVeyor project, update link Aug 7, 2015
Result.h add basic Future implementation Feb 3, 2017
TARGETS add a simple thread pool Feb 3, 2017
ThreadPool.cpp add a simple thread pool Feb 3, 2017
ThreadPool.h add a simple thread pool Feb 3, 2017
Win32Handle.cpp add Win32Handle class Nov 29, 2016
Win32Handle.h add Win32Handle class Nov 29, 2016
acinclude.m4 Add configure checks for C++11 compiler Sep 16, 2016
appveyor.yml Remove version pinning from appveyor config Jan 17, 2017
autogen.sh Open source Watchman C++ client library Feb 1, 2017
bser.cpp add escaping for mixed strings Dec 15, 2016
cfg.cpp remove pthread usage from cfg.cpp Nov 30, 2016
checksock.cpp BSERv2: allow emitting unicode strings on the server Dec 13, 2016
circle.yml circleci: bump up php version Jun 6, 2016
clientmode.cpp re-jigger log subscriptions Nov 3, 2016
clockspec.cpp cleanup clockspec evaluation some more Feb 2, 2017
configure.ac take version number up to 4.9 Feb 7, 2017
error_category.cpp add error_category / error_condition Nov 29, 2016
expflags.cpp remove MIN, MAX defines Nov 4, 2016
fstype.cpp refactor windows path conversion Nov 30, 2016
hash.cpp mostly rename .c -> .cpp Sep 16, 2016
ignore.cpp standardize on / dir separators on all platforms Dec 15, 2016
ioprio.cpp mostly rename .c -> .cpp Sep 16, 2016
json.cpp expose BSERv2 capability, use it by default, force it on on py3 Dec 15, 2016
launchd.cpp remove client shutdown hack Nov 30, 2016
listener-user.cpp use unique_ptr to own watchman_stream Nov 29, 2016
listener.cpp avoid a couple of crashes Feb 16, 2017
log.cpp fix double logging bug Jan 29, 2017
main.cpp remove some old unused stuff from watchman.h Feb 10, 2017
make.bat pass more command line args to make on windows Sep 27, 2016
make_unique.h art: cut over to unique_ptr for nodes Nov 1, 2016
opendir.cpp standardize on / dir separators on all platforms Dec 15, 2016
opt.cpp update copyright year in the CLI usage output Jan 17, 2017
pending.cpp fixup pending list linkage mutation Dec 19, 2016
perf.cpp refactor spawning into ChildProcess class Jan 23, 2017
probe.py refactor: reuse FileDescriptor, add Pipe class Nov 29, 2016
runtests.py fix --debug-watchman in test runner Jan 4, 2017
spawn.cpp refactor errmsg -> throw QueryXXXError Feb 10, 2017
state.cpp c++ify watchman_json_buffer Nov 30, 2016
stream.cpp remove w_stm_xxx accessor functions Nov 29, 2016
stream_stdout.cpp expose the client pid in our stream layer Dec 8, 2016
stream_unix.cpp expose the client pid in our stream layer Dec 8, 2016
stream_win.cpp expose the client pid in our stream layer Dec 8, 2016
string.cpp add w_string_piece::operator< Dec 27, 2016
time.cpp mostly rename .c -> .cpp Sep 16, 2016
timedlock.cpp remove MIN, MAX defines Nov 4, 2016
watchman.h remove some old unused stuff from watchman.h Feb 10, 2017
watchman_client.h avoid a couple of crashes Feb 16, 2017
watchman_clockspec.h cleanup clockspec evaluation some more Feb 2, 2017
watchman_cmd.h BSERv2: allow emitting unicode strings on the server Dec 13, 2016
watchman_config.h remove json_t* from all top level header files Nov 1, 2016
watchman_dir.h watchman_file::getName -> return string_piece Nov 29, 2016
watchman_error_category.h add error_category / error_condition Nov 29, 2016
watchman_file.h watchman_file::getName -> return string_piece Nov 29, 2016
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 re-jigger log subscriptions Nov 3, 2016
watchman_opendir.h we don't need strict symlink checks for the state dir Dec 6, 2016
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 refactor errmsg -> throw QueryXXXError Feb 10, 2017
watchman_root.h avoid a couple of crashes Feb 16, 2017
watchman_scopeguard.h add port of folly/ScopeGuard.h Nov 18, 2016
watchman_shared_mutex.h remove pthread port for win32 Nov 30, 2016
watchman_stream.h expose the client pid in our stream layer Dec 8, 2016
watchman_string.h MSVC finds this detail namespace usage ambiguous Jan 28, 2017
watchman_synchronized.h fix open source build Oct 21, 2016
watchman_system.h standardize on / dir separators on all platforms Dec 15, 2016
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 add basic eden integration test Dec 20, 2016

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.