Skip to content

Add support for nested repos to EdkRepo #279

@ashedesimone

Description

@ashedesimone

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.

Sub-issues

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions