aboutsummaryrefslogtreecommitdiff
path: root/bpkg/rep-fetch.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'bpkg/rep-fetch.cxx')
-rw-r--r--bpkg/rep-fetch.cxx14
1 files changed, 14 insertions, 0 deletions
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<repository> (db, root));
+
// "Suspend" session while persisting packages to reduce memory
// consumption.
//