sapling/eden/fs/service
Adam Simpkins 6cced7c449 implement "hg status" using EdenMount::diff()
Summary:
This is an initial pass at implementing "hg status" using the new EdenMount and
TreeInode diff() code.

More work still needs to be done to clean things up here, but this makes
"hg status" more correct in the face of modified files and directories that are
not modified, and vice-versa.

In particular, the following still needs to be cleaned up in future diffs:
- Update the "hg status" code to more correctly process user directives for
  paths that did not appear in the diff output.  This will probably be
  simplified some by correctly updating the user directive list on checkout and
  resetCommit() operations.  It may also make things simpler if we store the
  user directives in a hierarchical path map, rather than in a flat list.
- Update the addAll() code to also use the new diff logic, rather than the
  getStatusForExistingDirectory() function.
- Clean up the locking some.  I think it may be worth changing the code to use
  a single lock to manage both the current commit ID for the mount and the
  dirstate user directives.  We probably should hold this lock for the duration
  of a diff operation.  The diff operation should also return the commit ID
  that it is based against.

Reviewed By: wez

Differential Revision: D4752281

fbshipit-source-id: 6a6d7e2815321b09c75e95aa7460b0da41931dc0
2017-03-30 21:35:00 -07:00
..
oss update all copyright statements to "2016-present" 2017-01-20 22:03:02 -08:00
__init__.py update all copyright statements to "2016-present" 2017-01-20 22:03:02 -08:00
client.py fix a variety of lint issues 2017-01-23 18:03:09 -08:00
DEFS implement eden->watchman subscriptions 2017-03-21 13:35:20 -07:00
eden.thrift implement "hg status" using EdenMount::diff() 2017-03-30 21:35:00 -07:00
EdenError.cpp update all copyright statements to "2016-present" 2017-01-20 22:03:02 -08:00
EdenError.h update all copyright statements to "2016-present" 2017-01-20 22:03:02 -08:00
EdenServer.cpp add .eden "magic" dir 2017-03-24 23:07:42 -07:00
EdenServer.h add .eden "magic" dir 2017-03-24 23:07:42 -07:00
EdenServiceHandler.cpp implement "hg status" using EdenMount::diff() 2017-03-30 21:35:00 -07:00
EdenServiceHandler.h implement "hg status" using EdenMount::diff() 2017-03-30 21:35:00 -07:00
GlobNode.cpp implement glob thrift method 2017-01-26 12:47:05 -08:00
GlobNode.h implement glob thrift method 2017-01-26 12:47:05 -08:00
main.cpp make sure edenfs does not exit successfully if privhelper crashes 2017-03-21 13:05:57 -07:00
PrettyPrinters.cpp implement "hg status" using EdenMount::diff() 2017-03-30 21:35:00 -07:00
PrettyPrinters.h implement "hg status" using EdenMount::diff() 2017-03-30 21:35:00 -07:00
streamingeden.thrift implement eden->watchman subscriptions 2017-03-21 13:35:20 -07:00
StreamingSubscriber.cpp implement eden->watchman subscriptions 2017-03-21 13:35:20 -07:00
StreamingSubscriber.h implement eden->watchman subscriptions 2017-03-21 13:35:20 -07:00
TARGETS add one more checkout unit test 2017-03-21 12:53:26 -07:00