sapling/eden/fs
Adam Simpkins b7ff172fc6 initial framework for gitignore file handling
Summary:
This adds some initial code for handling gitignore files.

I did check to see if there were APIs from libgit2 that we could leverage for
this, but it does not look like we can easily use their functionality.  The
libgit2 ignore code seems to tightly coupled with their repository data
structures, and it requires that you actually have a git repository.

This code isn't quite 100% compatible with git's semantics yet.  In particular:

- For now we are just using fnmatch() to do the matching.  This is currently
  inefficient as we have to do string allocations on each match attempt.  This
  also doesn't quite match git's behavior, particularly with regard to "**"
  inside patterns.

- The code currently does not have a mechanism for indicating if a path refers
  to a directory or not, so trailing slashes in the pattern are not honored
  correctly.

We will probably need to implement our own fnmatch-like function in the future
to solve these issues.

Reviewed By: bolinfest

Differential Revision: D4156480

fbshipit-source-id: 8ceaefd3805358ae2edc29bfc316e5c8f2fb7d31
2016-11-21 15:26:07 -08:00
..
cli normalize mount paths when doing config look-ups 2016-09-30 19:07:45 -07:00
config Add initial support for hooks akin to Git hooks for Eden. 2016-09-26 13:53:05 -07:00
inodes Introduce TestMount::readFile(). 2016-10-28 14:58:24 -07:00
integration some prep work for hypothesis testing 2016-10-14 07:26:13 -07:00
journal sample the snapshot id in the journal at mount time 2016-09-26 13:52:25 -07:00
model initial framework for gitignore file handling 2016-11-21 15:26:07 -08:00
rocksdb Revert D4181299: Update TARGETS files to use buckified RocksDB 2016-11-20 19:55:07 -08:00
service fix test_bad_mount_path 2016-11-17 18:44:58 -08:00
store Revert D4181299: Update TARGETS files to use buckified RocksDB 2016-11-20 19:55:07 -08:00
testharness Introduce TestMount::hasFileAt(). 2016-10-28 14:58:24 -07:00