-
Notifications
You must be signed in to change notification settings - Fork 26
Description
It would be great if EdkRepo supported having Git repositories cloned into a subdirectory of another Git repository. This would be useful for integrating code from upstream projects where continuous integration with that upstream project is desired. If changes come in quickly enough to the upstream project, then a git submodule would be burdensome.
An example manifest XML snippet might look something like this:
<RemoteList>
<Remote name="A" >https://github.com/A</Remote>
<Remote name="upstream_dependency">https://github.com/upstream_dependency</Remote>
</RemoteList>
<CombinationList>
<Combination name="Sample" >
<Source localRoot="A" remote="A" branch="main" />
<Source localRoot="A/PkgA/upstream_dependency" remote="upstream_dependency" branch="main" />
</Combination>
</CombinationList>
In order to implement this, EdkRepo would automatically create a $GIT_DIR/info/exclude file for each top-level git repo that has a nested git repo inside it. For the example above, the contents of the ".git/info/exclude" file would be:
/PkgA/upstream_dependency/**
Note that this is the repo-specific .gitignore file that is not tracked by version control. This requires that EdkRepo merge its edits to the .git/info/exclude file with any other ignored files that some other tooling or the user might have added.