diff --git a/Cargo.lock b/Cargo.lock index f945f715dd4..ecfb4ccb976 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,13 +10,13 @@ dependencies = [ "env_logger 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "filetime 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "flate2 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "git2 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "git2-curl 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "git2 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", + "git2-curl 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "glob 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", "hamcrest 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "kernel32-sys 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "libgit2-sys 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libgit2-sys 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", "regex 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", @@ -148,22 +148,22 @@ dependencies = [ [[package]] name = "git2" -version = "0.3.0" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "libgit2-sys 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libgit2-sys 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "url 0.2.37 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "git2-curl" -version = "0.3.0" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "curl 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", - "git2 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "git2 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 0.2.37 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -197,10 +197,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libgit2-sys" -version = "0.3.2" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cmake 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "libssh2-sys 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", "libz-sys 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/Cargo.toml b/Cargo.toml index 16aacb34711..5c360c81df9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,12 +23,12 @@ docopt = "0.6" env_logger = "0.3" filetime = "0.1" flate2 = "0.2" -git2 = "0.3" -git2-curl = "0.3" +git2 = "0.2" +git2-curl = "0.2" glob = "0.2" kernel32-sys = "0.1" libc = "0.1" -libgit2-sys = "0.3" +libgit2-sys = "0.2" log = "0.3" num_cpus = "0.2" regex = "0.1" diff --git a/src/cargo/sources/git/utils.rs b/src/cargo/sources/git/utils.rs index 492bf9533b5..51f69a6d27e 100644 --- a/src/cargo/sources/git/utils.rs +++ b/src/cargo/sources/git/utils.rs @@ -413,11 +413,10 @@ pub fn fetch(repo: &git2::Repository, url: &str, with_authentication(url, &try!(repo.config()), |f| { let mut cb = git2::RemoteCallbacks::new(); cb.credentials(f); - let mut remote = try!(repo.remote_anonymous(&url)); - let mut opts = git2::FetchOptions::new(); - opts.remote_callbacks(cb) - .download_tags(git2::AutotagOption::All); - try!(remote.fetch(&[refspec], Some(&mut opts), None)); + let mut remote = try!(repo.remote_anonymous(&url, Some(refspec))); + try!(remote.add_fetch("refs/tags/*:refs/tags/*")); + remote.set_callbacks(cb); + try!(remote.fetch(&["refs/tags/*:refs/tags/*", refspec], None)); Ok(()) }) } diff --git a/tests/support/git.rs b/tests/support/git.rs index a84e5287dee..082f07fab6a 100644 --- a/tests/support/git.rs +++ b/tests/support/git.rs @@ -97,9 +97,10 @@ pub fn add_submodule<'a>(repo: &'a git2::Repository, url: &str, let path = path.to_str().unwrap().replace(r"\", "/"); let mut s = repo.submodule(url, Path::new(&path), false).unwrap(); let subrepo = s.open().unwrap(); - subrepo.remote_add_fetch("origin", "refs/heads/*:refs/heads/*").unwrap(); let mut origin = subrepo.find_remote("origin").unwrap(); - origin.fetch(&[], None, None).unwrap(); + origin.add_fetch("refs/heads/*:refs/heads/*").unwrap(); + origin.fetch(&[], None).unwrap(); + origin.save().unwrap(); subrepo.checkout_head(None).unwrap(); s.add_finalize().unwrap(); return s; diff --git a/tests/test_cargo_build_auth.rs b/tests/test_cargo_build_auth.rs index 9dcf1293ce8..0416c477cd8 100644 --- a/tests/test_cargo_build_auth.rs +++ b/tests/test_cargo_build_auth.rs @@ -40,7 +40,7 @@ test!(http_auth_offered { assert_eq!(req, vec![ "GET /foo/bar/info/refs?service=git-upload-pack HTTP/1.1", "Accept: */*", - "User-Agent: git/1.0 (libgit2 0.23.0)", + "User-Agent: git/1.0 (libgit2 0.22.0)", ].into_iter().map(|s| s.to_string()).collect()); drop(s); @@ -55,7 +55,7 @@ test!(http_auth_offered { "GET /foo/bar/info/refs?service=git-upload-pack HTTP/1.1", "Authorization: Basic Zm9vOmJhcg==", "Accept: */*", - "User-Agent: git/1.0 (libgit2 0.23.0)", + "User-Agent: git/1.0 (libgit2 0.22.0)", ].into_iter().map(|s| s.to_string()).collect()); }); @@ -155,8 +155,6 @@ Caused by: addr = addr, errmsg = if cfg!(windows) { "[[..]] failed to send request: [..]\n" - } else if cfg!(target_os = "macos") { - "[[..]] unexpected return value from ssl handshake [..]" } else { "[[..]] SSL error: [..]" }))); diff --git a/tests/test_cargo_compile_git_deps.rs b/tests/test_cargo_compile_git_deps.rs index 34d2e37f99f..834b294bb51 100644 --- a/tests/test_cargo_compile_git_deps.rs +++ b/tests/test_cargo_compile_git_deps.rs @@ -921,12 +921,12 @@ test!(dep_with_changed_submodule { sub.sync().unwrap(); { let subrepo = sub.open().unwrap(); - subrepo.remote_add_fetch("origin", - "refs/heads/*:refs/heads/*").unwrap(); - subrepo.remote_set_url("origin", - &git_project3.url().to_string()).unwrap(); let mut origin = subrepo.find_remote("origin").unwrap(); - origin.fetch(&[], None, None).unwrap(); + origin.set_url(&git_project3.url().to_string()).unwrap(); + origin.add_fetch("refs/heads/*:refs/heads/*").unwrap();; + origin.fetch(&[], None).unwrap(); + origin.save().unwrap(); + let id = subrepo.refname_to_id("refs/remotes/origin/master").unwrap(); let obj = subrepo.find_object(id, None).unwrap(); subrepo.reset(&obj, git2::ResetType::Hard, None).unwrap();