Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ability to pass options to clone? #295

Closed
benbalter opened this issue Dec 2, 2013 · 10 comments · May be fixed by #980
Closed

Ability to pass options to clone? #295

benbalter opened this issue Dec 2, 2013 · 10 comments · May be fixed by #980
Labels

Comments

@benbalter
Copy link

Wondering if it's possible to pass options to the clone action, specifically --recursive and --depth=1

Here's what I've got:

repo = Rugged::Repository.clone_at @git_url, @source, { :branch => @git_ref, :recursive => true, :depth => 1 }
@arrbee
Copy link
Member

arrbee commented Dec 2, 2013

@benbalter Currently, the underlying libgit2 code doesn't support making shallow clones nor does it support recursive submodule updates. Using the submodule APIs, it would probably be possible to implement the equivalent of --recursive but I don't think the necessary APIs are currently available in Rugged. I'm pretty sure there is no way to do a shallow clone at all without changes to the libgit2.

@benbalter
Copy link
Author

Le sad. Thanks for the prompt response.

@benbalter benbalter reopened this Dec 3, 2013
@carlosmn
Copy link
Member

carlosmn commented Dec 3, 2013

Shallow fetches/clones are a mess and still a hack. There is currently an attempt at making them better-defined, but the odd repos that result are a mess and still have many limitations even with git-core.

While not as fast to type, you do have a programming language available, which makes automatic recursive submodule initialisation less of an advantage. It's probably enough of a promiment git-core feature that it will have to be implemented at some point.

@arrbee
Copy link
Member

arrbee commented Dec 3, 2013

Thanks for clarifying @carlosmn - you're right (as always). I do have it on my TODO list to add recursive submodule support to libgit2 checkout and clone, but it hasn't been too high up there. Still, probably a good thing to get to and not too hard, I think.

@ben
Copy link
Member

ben commented Dec 3, 2013

Better shallow-repo support is on my list, but the concepts are tangled up with alternates and grafts, and it could get a little hairy.

@arthurschreiber arthurschreiber added this to the libgit2 milestone Apr 23, 2014
@dideler
Copy link

dideler commented Feb 17, 2016

FWIW, related libgit2 issue is libgit2/libgit2#3058

@kjetilho
Copy link

libgit2 added shallow support in version 1.7.0 (July 2023)

@benbalter
Copy link
Author

libgit2 added shallow support in version 1.7.0 (July 2023)

Thanks for updating this ancient issue. Marking as resolved.

@kjetilho
Copy link

libgit2 added shallow support in version 1.7.0 (July 2023)

Thanks for updating this ancient issue. Marking as resolved.

hmm, but I don't see how Rugged allows me to pass a value for depth to fetch?

@Bo98
Copy link

Bo98 commented May 23, 2024

I don't see how Rugged allows me to pass a value for depth to fetch?

#980 should address this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants