Skip to content

Commit 6880563

Browse files
authored
Update to libgit2 v1.1 and use main branch for tests. (#627)
* Update to libgit2 v1.1 and use `main` branch for tests. * Update version of libgit2 in README.md
1 parent 43d583f commit 6880563

12 files changed

+57
-50
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ version of Rust known to pass tests.
1717

1818
## Version of libgit2
1919

20-
Currently this library requires libgit2 1.0.0. The source for libgit2 is
20+
Currently this library requires libgit2 1.1.0. The source for libgit2 is
2121
included in the libgit2-sys crate so there's no need to pre-install the libgit2
2222
library, the libgit2-sys crate will figure that and/or build that for you.
2323

libgit2-sys/libgit2

Submodule libgit2 updated 506 files

src/branch.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ mod tests {
169169
let mut b1 = b1.rename("bar", false).unwrap();
170170
assert_eq!(b1.name().unwrap(), Some("bar"));
171171
assert!(b1.upstream().is_err());
172-
b1.set_upstream(Some("master")).unwrap();
172+
b1.set_upstream(Some("main")).unwrap();
173173
b1.upstream().unwrap();
174174
b1.set_upstream(None).unwrap();
175175

src/build.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -714,7 +714,9 @@ mod tests {
714714
let cd = TempDir::new().unwrap();
715715

716716
{
717-
let repo = Repository::init(&td.path()).unwrap();
717+
let mut opts = crate::RepositoryInitOptions::new();
718+
opts.initial_head("main");
719+
let repo = Repository::init_opts(&td.path(), &opts).unwrap();
718720

719721
let mut config = repo.config().unwrap();
720722
config.set_str("user.name", "name").unwrap();
@@ -735,7 +737,7 @@ mod tests {
735737

736738
let repo = Repository::open_bare(&td.path().join(".git")).unwrap();
737739
let tree = repo
738-
.revparse_single(&"master")
740+
.revparse_single(&"main")
739741
.unwrap()
740742
.peel_to_tree()
741743
.unwrap();

src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1419,7 +1419,7 @@ bitflags! {
14191419
/// components (e.g., `foo/*/bar` but not `foo/bar*`).
14201420
const REFSPEC_PATTERN = raw::GIT_REFERENCE_FORMAT_REFSPEC_PATTERN as u32;
14211421
/// Interpret the name as part of a refspec in shorthand form so the
1422-
/// `ALLOW_ONELEVEL` naming rules aren't enforced and `master` becomes a
1422+
/// `ALLOW_ONELEVEL` naming rules aren't enforced and `main` becomes a
14231423
/// valid name.
14241424
const REFSPEC_SHORTHAND = raw::GIT_REFERENCE_FORMAT_REFSPEC_SHORTHAND as u32;
14251425
}

src/rebase.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -349,21 +349,21 @@ mod tests {
349349
// We just want to see the iteration work so we can create commits with
350350
// no changes
351351
let c1 = repo
352-
.commit(Some("refs/heads/master"), &sig, &sig, "foo", &tree, &[&tip])
352+
.commit(Some("refs/heads/main"), &sig, &sig, "foo", &tree, &[&tip])
353353
.unwrap();
354354
let c1 = repo.find_commit(c1).unwrap();
355355
let c2 = repo
356-
.commit(Some("refs/heads/master"), &sig, &sig, "foo", &tree, &[&c1])
356+
.commit(Some("refs/heads/main"), &sig, &sig, "foo", &tree, &[&c1])
357357
.unwrap();
358358

359-
let head = repo.find_reference("refs/heads/master").unwrap();
359+
let head = repo.find_reference("refs/heads/main").unwrap();
360360
let branch = repo.reference_to_annotated_commit(&head).unwrap();
361361
let upstream = repo.find_annotated_commit(tip.id()).unwrap();
362362
let mut rebase = repo
363363
.rebase(Some(&branch), Some(&upstream), None, None)
364364
.unwrap();
365365

366-
assert_eq!(Some("refs/heads/master"), rebase.orig_head_name());
366+
assert_eq!(Some("refs/heads/main"), rebase.orig_head_name());
367367
assert_eq!(Some(c2), rebase.orig_head_id());
368368

369369
assert_eq!(rebase.len(), 2);
@@ -397,7 +397,7 @@ mod tests {
397397
let tree_id_a = index.write_tree().unwrap();
398398
let tree_a = repo.find_tree(tree_id_a).unwrap();
399399
let c1 = repo
400-
.commit(Some("refs/heads/master"), &sig, &sig, "A", &tree_a, &[&tip])
400+
.commit(Some("refs/heads/main"), &sig, &sig, "A", &tree_a, &[&tip])
401401
.unwrap();
402402
let c1 = repo.find_commit(c1).unwrap();
403403

@@ -407,7 +407,7 @@ mod tests {
407407
let tree_id_b = index.write_tree().unwrap();
408408
let tree_b = repo.find_tree(tree_id_b).unwrap();
409409
let c2 = repo
410-
.commit(Some("refs/heads/master"), &sig, &sig, "B", &tree_b, &[&c1])
410+
.commit(Some("refs/heads/main"), &sig, &sig, "B", &tree_b, &[&c1])
411411
.unwrap();
412412

413413
let branch = repo.find_annotated_commit(c2).unwrap();

src/reference.rs

+11-11
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,10 @@ impl<'repo> Reference<'repo> {
4848
/// use git2::Reference;
4949
///
5050
/// assert!(Reference::is_valid_name("HEAD"));
51-
/// assert!(Reference::is_valid_name("refs/heads/master"));
51+
/// assert!(Reference::is_valid_name("refs/heads/main"));
5252
///
5353
/// // But:
54-
/// assert!(!Reference::is_valid_name("master"));
54+
/// assert!(!Reference::is_valid_name("main"));
5555
/// assert!(!Reference::is_valid_name("refs/heads/*"));
5656
/// assert!(!Reference::is_valid_name("foo//bar"));
5757
/// ```
@@ -78,7 +78,7 @@ impl<'repo> Reference<'repo> {
7878
/// only when combined with [`ReferenceFormat::ALLOW_ONELEVEL`]. If
7979
/// it is given, "shorthand" branch names (i.e. those not prefixed by
8080
/// `refs/`, but consisting of a single word without `/` separators)
81-
/// become valid. For example, "master" would be accepted.
81+
/// become valid. For example, "main" would be accepted.
8282
/// 3. If [`ReferenceFormat::REFSPEC_PATTERN`] is given, the name may
8383
/// contain a single `*` in place of a full pathname component (e.g.
8484
/// `foo/*/bar`, `foo/bar*`).
@@ -121,11 +121,11 @@ impl<'repo> Reference<'repo> {
121121
///
122122
/// assert_eq!(
123123
/// Reference::normalize_name(
124-
/// "master",
124+
/// "main",
125125
/// ReferenceFormat::ALLOW_ONELEVEL | ReferenceFormat::REFSPEC_SHORTHAND
126126
/// )
127127
/// .unwrap(),
128-
/// "master".to_owned()
128+
/// "main".to_owned()
129129
/// );
130130
/// ```
131131
///
@@ -482,18 +482,18 @@ mod tests {
482482
assert_eq!(head.kind().unwrap(), ReferenceType::Direct);
483483

484484
assert!(head == repo.head().unwrap());
485-
assert_eq!(head.name(), Some("refs/heads/master"));
485+
assert_eq!(head.name(), Some("refs/heads/main"));
486486

487-
assert!(head == repo.find_reference("refs/heads/master").unwrap());
487+
assert!(head == repo.find_reference("refs/heads/main").unwrap());
488488
assert_eq!(
489-
repo.refname_to_id("refs/heads/master").unwrap(),
489+
repo.refname_to_id("refs/heads/main").unwrap(),
490490
head.target().unwrap()
491491
);
492492

493493
assert!(head.symbolic_target().is_none());
494494
assert!(head.target_peel().is_none());
495495

496-
assert_eq!(head.shorthand(), Some("master"));
496+
assert_eq!(head.shorthand(), Some("main"));
497497
assert!(head.resolve().unwrap() == head);
498498

499499
let mut tag1 = repo
@@ -509,7 +509,7 @@ mod tests {
509509
tag1.delete().unwrap();
510510

511511
let mut sym1 = repo
512-
.reference_symbolic("refs/tags/tag1", "refs/heads/master", false, "test")
512+
.reference_symbolic("refs/tags/tag1", "refs/heads/main", false, "test")
513513
.unwrap();
514514
assert_eq!(sym1.kind().unwrap(), ReferenceType::Symbolic);
515515
sym1.delete().unwrap();
@@ -519,7 +519,7 @@ mod tests {
519519
assert!(repo.references().unwrap().next().unwrap().unwrap() == head);
520520
let mut names = repo.references().unwrap();
521521
let mut names = names.names();
522-
assert_eq!(names.next().unwrap().unwrap(), "refs/heads/master");
522+
assert_eq!(names.next().unwrap().unwrap(), "refs/heads/main");
523523
assert!(names.next().is_none());
524524
assert!(repo.references_glob("foo").unwrap().count() == 0);
525525
assert!(repo.references_glob("refs/heads/*").unwrap().count() == 1);

src/remote.rs

+12-9
Original file line numberDiff line numberDiff line change
@@ -231,15 +231,15 @@ impl<'repo> Remote<'repo> {
231231
///
232232
/// # Examples
233233
///
234-
/// Example of functionality similar to `git fetch origin/master`:
234+
/// Example of functionality similar to `git fetch origin/main`:
235235
///
236236
/// ```no_run
237-
/// fn fetch_origin_master(repo: git2::Repository) -> Result<(), git2::Error> {
238-
/// repo.find_remote("origin")?.fetch(&["master"], None, None)
237+
/// fn fetch_origin_main(repo: git2::Repository) -> Result<(), git2::Error> {
238+
/// repo.find_remote("origin")?.fetch(&["main"], None, None)
239239
/// }
240240
///
241241
/// let repo = git2::Repository::discover("rust").unwrap();
242-
/// fetch_origin_master(repo).unwrap();
242+
/// fetch_origin_main(repo).unwrap();
243243
/// ```
244244
pub fn fetch<Str: AsRef<str> + crate::IntoCString + Clone>(
245245
&mut self,
@@ -757,7 +757,7 @@ mod tests {
757757
assert_eq!(list.len(), 2);
758758
assert_eq!(list[0].name(), "HEAD");
759759
assert!(!list[0].is_local());
760-
assert_eq!(list[1].name(), "refs/heads/master");
760+
assert_eq!(list[1].name(), "refs/heads/main");
761761
assert!(!list[1].is_local());
762762
}
763763
assert!(progress_hit.get());
@@ -790,7 +790,7 @@ mod tests {
790790
assert_eq!(list.len(), 2);
791791
assert_eq!(list[0].name(), "HEAD");
792792
assert!(!list[0].is_local());
793-
assert_eq!(list[1].name(), "refs/heads/master");
793+
assert_eq!(list[1].name(), "refs/heads/main");
794794
assert!(!list[1].is_local());
795795
}
796796
assert!(!origin.connected());
@@ -803,22 +803,25 @@ mod tests {
803803
let td3 = TempDir::new().unwrap();
804804
let url = crate::test::path2url(&td2.path());
805805

806-
Repository::init_bare(td2.path()).unwrap();
806+
let mut opts = crate::RepositoryInitOptions::new();
807+
opts.bare(true);
808+
opts.initial_head("main");
809+
Repository::init_opts(td2.path(), &opts).unwrap();
807810
// git push
808811
let mut remote = repo.remote("origin", &url).unwrap();
809812
let mut updated = false;
810813
{
811814
let mut callbacks = RemoteCallbacks::new();
812815
callbacks.push_update_reference(|refname, status| {
813816
updated = true;
814-
assert_eq!(refname, "refs/heads/master");
817+
assert_eq!(refname, "refs/heads/main");
815818
assert_eq!(status, None);
816819
Ok(())
817820
});
818821
let mut options = PushOptions::new();
819822
options.remote_callbacks(callbacks);
820823
remote
821-
.push(&["refs/heads/master"], Some(&mut options))
824+
.push(&["refs/heads/main"], Some(&mut options))
822825
.unwrap();
823826
}
824827
assert!(updated);

src/repo.rs

+13-13
Original file line numberDiff line numberDiff line change
@@ -1463,7 +1463,7 @@ impl Repository {
14631463

14641464
/// Lookup a reference to one of the objects in a repository.
14651465
/// `Repository::find_reference` with teeth; give the method your reference in
1466-
/// human-readable format e.g. 'master' instead of 'refs/heads/master', and it
1466+
/// human-readable format e.g. 'main' instead of 'refs/heads/main', and it
14671467
/// will do-what-you-mean, returning the `Reference`.
14681468
pub fn resolve_reference_from_short_name(&self, refname: &str) -> Result<Reference<'_>, Error> {
14691469
let refname = CString::new(refname)?;
@@ -2929,9 +2929,9 @@ impl RepositoryInitOptions {
29292929

29302930
/// The name of the head to point HEAD at.
29312931
///
2932-
/// If not configured, this will be treated as `master` and the HEAD ref
2933-
/// will be set to `refs/heads/master`. If this begins with `refs/` it will
2934-
/// be used verbatim; otherwise `refs/heads/` will be prefixed
2932+
/// If not configured, this will be taken from your git configuration.
2933+
/// If this begins with `refs/` it will be used verbatim;
2934+
/// otherwise `refs/heads/` will be prefixed
29352935
pub fn initial_head(&mut self, head: &str) -> &mut RepositoryInitOptions {
29362936
self.initial_head = Some(CString::new(head).unwrap());
29372937
self
@@ -3160,11 +3160,11 @@ mod tests {
31603160
let (_td, repo) = crate::test::repo_init();
31613161

31623162
assert_eq!(repo.reference_has_log("HEAD").unwrap(), true);
3163-
assert_eq!(repo.reference_has_log("refs/heads/master").unwrap(), true);
3163+
assert_eq!(repo.reference_has_log("refs/heads/main").unwrap(), true);
31643164
assert_eq!(repo.reference_has_log("NOT_HEAD").unwrap(), false);
3165-
let master_oid = repo.revparse_single("master").unwrap().id();
3165+
let main_oid = repo.revparse_single("main").unwrap().id();
31663166
assert!(repo
3167-
.reference("NOT_HEAD", master_oid, false, "creating a new branch")
3167+
.reference("NOT_HEAD", main_oid, false, "creating a new branch")
31683168
.is_ok());
31693169
assert_eq!(repo.reference_has_log("NOT_HEAD").unwrap(), false);
31703170
assert!(repo.reference_ensure_log("NOT_HEAD").is_ok());
@@ -3178,7 +3178,7 @@ mod tests {
31783178
assert!(repo.set_head("refs/heads/does-not-exist").is_ok());
31793179
assert!(repo.head().is_err());
31803180

3181-
assert!(repo.set_head("refs/heads/master").is_ok());
3181+
assert!(repo.set_head("refs/heads/main").is_ok());
31823182
assert!(repo.head().is_ok());
31833183

31843184
assert!(repo.set_head("*").is_err());
@@ -3191,9 +3191,9 @@ mod tests {
31913191
let void_oid = Oid::from_bytes(b"00000000000000000000").unwrap();
31923192
assert!(repo.set_head_detached(void_oid).is_err());
31933193

3194-
let master_oid = repo.revparse_single("master").unwrap().id();
3195-
assert!(repo.set_head_detached(master_oid).is_ok());
3196-
assert_eq!(repo.head().unwrap().target().unwrap(), master_oid);
3194+
let main_oid = repo.revparse_single("main").unwrap().id();
3195+
assert!(repo.set_head_detached(main_oid).is_ok());
3196+
assert_eq!(repo.head().unwrap().target().unwrap(), main_oid);
31973197
}
31983198

31993199
/// create the following:
@@ -3425,8 +3425,8 @@ mod tests {
34253425
let (_td, repo) = graph_repo_init();
34263426

34273427
{
3428-
let short_refname = "master";
3429-
let expected_refname = "refs/heads/master";
3428+
let short_refname = "main";
3429+
let expected_refname = "refs/heads/main";
34303430
let (obj, reference) = repo.revparse_ext(short_refname).unwrap();
34313431
let expected_obj = repo.revparse_single(expected_refname).unwrap();
34323432
assert_eq!(obj.id(), expected_obj.id());

src/stash.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ mod tests {
184184
repo.stash_foreach(|index, name, _oid| {
185185
count += 1;
186186
assert!(index == 0);
187-
assert!(name == "On master: msg1");
187+
assert!(name == "On main: msg1");
188188
true
189189
})
190190
.unwrap();
@@ -256,6 +256,6 @@ mod tests {
256256
})
257257
.unwrap();
258258

259-
assert!(stash_name.starts_with("WIP on master:"));
259+
assert!(stash_name.starts_with("WIP on main:"));
260260
}
261261
}

src/test.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use std::ptr;
66
use tempfile::TempDir;
77
use url::Url;
88

9-
use crate::{Oid, Repository};
9+
use crate::{Oid, Repository, RepositoryInitOptions};
1010

1111
macro_rules! t {
1212
($e:expr) => {
@@ -19,7 +19,9 @@ macro_rules! t {
1919

2020
pub fn repo_init() -> (TempDir, Repository) {
2121
let td = TempDir::new().unwrap();
22-
let repo = Repository::init(td.path()).unwrap();
22+
let mut opts = RepositoryInitOptions::new();
23+
opts.initial_head("main");
24+
let repo = Repository::init_opts(td.path(), &opts).unwrap();
2325
{
2426
let mut config = repo.config().unwrap();
2527
config.set_str("user.name", "name").unwrap();

src/transport.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ mod tests {
404404

405405
let mut origin = t!(repo.find_remote("origin"));
406406

407-
match origin.fetch(&["master"], None, None) {
407+
match origin.fetch(&["main"], None, None) {
408408
Ok(()) => unreachable!(),
409409
Err(e) => assert_eq!(e, dummy_error()),
410410
}

0 commit comments

Comments
 (0)