From 11dfd8bc4022b6596c2158594f18544a1f7ffa3e Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Sat, 17 Feb 2018 16:04:58 +0300 Subject: Use root repository as a default complement for git repository --- bpkg/rep-fetch.cxx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'bpkg/rep-fetch.cxx') diff --git a/bpkg/rep-fetch.cxx b/bpkg/rep-fetch.cxx index 029db1d..e78ae064 100644 --- a/bpkg/rep-fetch.cxx +++ b/bpkg/rep-fetch.cxx @@ -367,6 +367,7 @@ namespace bpkg case repository_type::git: return rep_fetch_git (co, conf, rl, iu); } + assert (false); // Can't be here. return rep_fetch_data (); } @@ -500,6 +501,19 @@ namespace bpkg } } + // For git repositories that have neither prerequisites nor complements + // we use the root repository as the default complement. + // + // This supports the common use case where the user has a single-package + // git repository and doesn't want to bother with the repositories file. + // This way their package will still pick up its dependencies from the + // configuration, without regards from which repositories they came from. + // + if (rl.type () == repository_type::git && + r->complements.empty () && + r->prerequisites.empty ()) + r->complements.insert (lazy_shared_ptr (db, root)); + // "Suspend" session while persisting packages to reduce memory // consumption. // -- cgit v1.1