A Scalable, User-Friendly Source Control System.
Go to file
Adam Simpkins 45ff446f41 fix issues with reverse path iterators
Summary:
The reverse path iterators derived from the forward iterators, and overrode the
pre-increment operator.  Unfortunately they didn't override post-increment,
which meant that post increment actually advanced them forwards instead of
backwards.  (The base class's post-increment calls the base class's
pre-increment, since this method is not virtual.)  The reverse iterators also
weren't overriding the decrement operators added in D3366877, so decremening a
reverse iterator would move it in the wrong direction.

This fixes all of those issues by making the ComposedPathIterator template
smarter so it can correctly handle both forward and reverse iteration.
It also now contains the logic that the "begin" iteration for absolute paths
needs to start one character in.  ComposedPathIterator needs to be aware of
this in order to stop at the correct character when iterating backwards.

Reviewed By: bolinfest

Differential Revision: D3376727

fbshipit-source-id: c61c86c1a9233507f8297015439e416680aaa39b
2016-06-02 22:08:15 -07:00
eden fix issues with reverse path iterators 2016-06-02 22:08:15 -07:00
.buckconfig Initial commit 2016-05-12 14:09:13 -07:00
.gitignore Initial commit 2016-05-12 14:09:13 -07:00
CONTRIBUTING.md Initial commit 2016-05-12 14:09:13 -07:00
DEFS Initial commit 2016-05-12 14:09:13 -07:00
LICENSE Initial commit 2016-05-12 14:09:13 -07:00
PATENTS Initial commit 2016-05-12 14:09:13 -07:00
README.md Fix a typo in Eden's README.md. 2016-05-13 09:32:03 -07:00

Eden

Eden is a project with several components, the most prominent of which is a virtual filesystem built using FUSE.

Caveat Emptor

Eden is still in early stages of development. We are making it available now because we plan to start making references to it from our other open source projects, such as Buck, Watchman, and Nuclide.

The version that we provide on GitHub does not build yet.

This is because the code is exported verbatim from an internal repository at Facebook, and not all of the scaffolding from our internal repository can be easily extracted. The key areas where we need to shore things up are:

  • The reinterpretations of build macros in DEFS.
  • A process for including third-party dependencies (presumably via Git submodules) and wiring up the external_deps argument in the build macros to point to them.
  • Providing the toolchain needed to power the [undocumented] thrift_library() rule in Buck.

The goal is to get Eden building on both Linux and OS X, though Linux support is expected to come first.