diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2005-01-25T11·18+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2005-01-25T11·18+0000 |
commit | 52bf9b86bb79369b7f7b5b8a5726b83ee154da6a (patch) | |
tree | cda06cd7d3bb5d8d3a62a6881533a36860c7acfb /src/libstore/misc.cc | |
parent | 80faa2f98af8616ab89ac2af63431b887a84fb32 (diff) |
* In nix-store: added query `--referers-closure' that returns the
closure of the referers relation rather than the references relation, i.e., the set of all paths that directly or indirectly refer to the given path. Note that contrary to the references closure this set is not fixed; it can change as paths are added to or removed from the store.
Diffstat (limited to 'src/libstore/misc.cc')
-rw-r--r-- | src/libstore/misc.cc | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/libstore/misc.cc b/src/libstore/misc.cc index dbb9273f7955..802e576512f1 100644 --- a/src/libstore/misc.cc +++ b/src/libstore/misc.cc @@ -12,17 +12,20 @@ Derivation derivationFromPath(const Path & drvPath) void computeFSClosure(const Path & storePath, - PathSet & paths) + PathSet & paths, bool flipDirection) { if (paths.find(storePath) != paths.end()) return; paths.insert(storePath); PathSet references; - queryReferences(storePath, references); + if (flipDirection) + queryReferers(storePath, references); + else + queryReferences(storePath, references); for (PathSet::iterator i = references.begin(); i != references.end(); ++i) - computeFSClosure(*i, paths); + computeFSClosure(*i, paths, flipDirection); } |