Repository navigation
Conversation
…sed. The behaviour of git_reference_lookup has slightly changed upstream; instead of returning GIT_ENOTFOUND it now returns GIT_ERROR on invalid reference names. However, the function git_reference_is_valid_name() can be used to test whether a given reference name is well-formed. This function now is available from Ruby as Reference.valid? and is used inside Repository#create_branch.
However, the underlying libgit2 doesn't support the file:// protocol yet.
…ository#checkout_index.
The local test is currently skipped (b/c libgit2 doesn't support local cloning yet), so the bare test would also be skipped if placed behind it.
Removes duplicate setup code.
It was missing Data_Get_Struct()...
There have been a few fixes regarding clone operations (namely regarding cloning of repositories with submodules).
I really dislike those.
Hopefully Ruby 1.8 will go soon.
1.8 guys won't profit from concurrency.
Necessary to get the Ruby version under 1.8.
…and isn't even there in all cases.
|
This doesn't seem to be a problem specific to my branch, because I get the same build failure when trying to use the official rugged source "https://rubygems.org"
gem "coderay"
gem "rugged", :git => "git:https://github.com/libgit2/rugged", :branch => "development"It fails exactly the same way: Try cloning the repository without bundler and doing The whole libgit2 repository is missing there. Vale, |
Resync with upstream rugged. Conflicts: lib/rugged/repository.rb vendor/libgit2
Note that when called with a block, the method will not release the GVL anymore (without one it does).
|
Oh wow, sorry this is taking so long. I'll start reviewing this right away! Thanks for the PR, lookin' good! |
Conflicts: ext/rugged/rugged_repo.c test/branch_test.rb test/reference_test.rb test/repo_test.rb test/test_helper.rb
Note that bare cloning is in a separate method Repository::clone_repo_bare now as the Repository::clone method grew without bounds.
|
This would be really nice to have 👍 |
|
Had a look into this. Was able to get building using the above instructions to clone gem and manually I tried through a few different git transport types with the following results.
So far so good on public repos. Private repo support would be awesome. 👍 git+sshhttpsShould probably work. This is likely down to my local environment (OSX Mountain Lion). Have ensured the following, but to no avail. |
|
@vmg Have you had time to review this? |
|
I would like to see this implemented soon, it is a show stopper for my use of rugged. |
|
What state is this in? One thing that probably will have to go is the GVL unlocking and all the complexity that comes with it. Do you have time to work on that? If not, I'd be happy take your current work and fix it up. |
|
I'm closing this, as this was open without any activity in the last 5 months, and as most of the functionality has already been implemented. Thank you for the work! |
|
Was thinking about choosing 'rugged' over 'grit', but lack of git+ssh/https support now makes me stay away from using 'rugged' :-( |
|
Is rugged still missing git+ssh/https support? |
|
@ioquatix seems like it, you can try to use the latest version and it does throw that exact same error message |
|
@arthurschreiber libgit2 should have ssh support from libgit2/libgit2#1558 |
|
Actually, rugged does not support cloning via ssh yet, because we don't expose the needed callbacks to pass the user credentials. I'm working on fixing that, tho. |
|
@arthurschreiber did you get cloning via ssh sorted? |
|
Yeh I found the credentials stuff and then ran right into |
|
For some of the optional libgit2 features, like SSH support, you need to have some optional dependencies installed. See the list at https://github.com/libgit2/libgit2#optional-dependencies. If you get those dependencies (make sure you also install their development headers if you're using a package manager to install), you'll need to recompile Rugged. Also, you need to make sure you have CMake installed, else libgit2 won't be compiled with the optional functionality. |
Hi there,
as promised here are the clone and checkout operations for Rugged. Have fun! :-)
Note: libgit2 has a kinda confusing API. If you wonder why your cloned repository has no files in it, try doing the clone with
strategy: [:default, :create_missing]. Also, when checking out stuff in an existing repository, you may want to use even more aggressive values forstrategyso you really check out everything to be found in your target commit. Furthermore, doing a checkout operation will not automatically update theHEADpointer. (All this is by (libgit2's) design)Note2: This includes pull request #106.
Marvin