-
Couldn't load subscription status.
- Fork 5
Open
Labels
component/stdlibStep standard library issuesStep standard library issuesgood first issueGood for newcomersGood for newcomers
Description
Right now the git step is doing some funny business to cache git repositories on the agent. The git2 crate which is itself based on libgit2 doesn't overtly support using a reference repository on the clone operation.
After some discussion in #libgit2, there's potentially a workaround:
13:26:00 rtyler | my understanding for cloning with a reference repository is that the reference is used primarily, and then the "upstream" repo
| is the alternate (to use this parlance)
13:27:55 qyliss | I'm not sure
13:28:00 qyliss | but should be easy to test
13:30:41 qyliss | rtyler: it looks like the odb is a property of the repository
13:30:50 qyliss | see here: https://libgit2.org/libgit2/#HEAD/group/repository/git_repository_odb
13:31:22 qyliss | so I think what you'd want to do is make an empty repository, set up your remote, get the odb, set up your alternate, and then
| fetch
13:31:36 qyliss | I think in this case the alternate would be the other local repository.
13:31:45 rtyler | yeah that makes sense
For this issue, first need to validate the experimental approach of:
- Create bare repository
- Add remote
- Get odb
- set up alternate(s)
- fetch
If that actually works, replacing the clone() function in stdlib/git should be relatively straightforward.
Metadata
Metadata
Assignees
Labels
component/stdlibStep standard library issuesStep standard library issuesgood first issueGood for newcomersGood for newcomers