From 4fd2314e30f7fc75b583b2cea87a932a9e91fff3 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Tue, 2 Aug 2022 19:42:23 +0800 Subject: [PATCH] test for nth prior checkout (#427) --- .../src/revision/spec/parse/delegate.rs | 2 +- .../make_rev_spec_parse_repos.tar.xz | 4 ++-- .../tests/fixtures/make_rev_spec_parse_repos.sh | 7 +++++++ .../tests/revision/spec/from_bytes/mod.rs | 2 ++ .../tests/revision/spec/from_bytes/reflog.rs | 16 ++++++++++++++++ 5 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 git-repository/tests/revision/spec/from_bytes/reflog.rs diff --git a/git-repository/src/revision/spec/parse/delegate.rs b/git-repository/src/revision/spec/parse/delegate.rs index f23aa7e79d..574f92e23a 100644 --- a/git-repository/src/revision/spec/parse/delegate.rs +++ b/git-repository/src/revision/spec/parse/delegate.rs @@ -283,7 +283,7 @@ impl<'repo> delegate::Revision for Delegate<'repo> { fn sibling_branch(&mut self, _kind: SiblingBranch) -> Option<()> { self.unset_disambiguate_call(); - todo!() + todo!("once remote handling and ref-specs are fleshed out much more") } } diff --git a/git-repository/tests/fixtures/generated-archives/make_rev_spec_parse_repos.tar.xz b/git-repository/tests/fixtures/generated-archives/make_rev_spec_parse_repos.tar.xz index 14924d880f..858a00433e 100644 --- a/git-repository/tests/fixtures/generated-archives/make_rev_spec_parse_repos.tar.xz +++ b/git-repository/tests/fixtures/generated-archives/make_rev_spec_parse_repos.tar.xz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f5cde687a063623b1277f179c2015a08b07e819ad8278a066172c3fc4e08316e -size 28084 +oid sha256:4684b243803678e18130357413321361a4f6cb38076590404bf81788b6f2a1c6 +size 28116 diff --git a/git-repository/tests/fixtures/make_rev_spec_parse_repos.sh b/git-repository/tests/fixtures/make_rev_spec_parse_repos.sh index 2e41220b4a..eaf1913869 100644 --- a/git-repository/tests/fixtures/make_rev_spec_parse_repos.sh +++ b/git-repository/tests/fixtures/make_rev_spec_parse_repos.sh @@ -370,4 +370,11 @@ git init complex_graph baseline "j" baseline "b^3^2" baseline "a^^3^2" + + baseline "@{-1}" + baseline "@{-2}" + baseline "@{-3}" + baseline "@{-4}" + baseline "@{-5}" + baseline "@{-6}" ) diff --git a/git-repository/tests/revision/spec/from_bytes/mod.rs b/git-repository/tests/revision/spec/from_bytes/mod.rs index aba533215a..e2eeba401e 100644 --- a/git-repository/tests/revision/spec/from_bytes/mod.rs +++ b/git-repository/tests/revision/spec/from_bytes/mod.rs @@ -8,7 +8,9 @@ pub use util::*; mod ambiguous; mod regex; +mod reflog; mod traverse; + mod index { use crate::revision::spec::from_bytes::{parse_spec, repo}; use git_repository::prelude::ObjectIdExt; diff --git a/git-repository/tests/revision/spec/from_bytes/reflog.rs b/git-repository/tests/revision/spec/from_bytes/reflog.rs new file mode 100644 index 0000000000..7fc7676480 --- /dev/null +++ b/git-repository/tests/revision/spec/from_bytes/reflog.rs @@ -0,0 +1,16 @@ +use crate::revision::spec::from_bytes::{parse_spec, repo}; + +#[test] +#[ignore] +fn nth_prior_checkout() { + let repo = repo("complex_graph").unwrap(); + + for spec in ["@{-1}", "@{-2}", "@{-3}", "@{-4}", "@{-5}"] { + assert!(parse_spec(spec, &repo).is_ok(), "spec {} should be valid", spec); + } + + assert_eq!( + parse_spec("@{-6}", &repo).unwrap_err().to_string(), + "HEAD has 5 prior checkouts and checkout 6 is out of range" + ); +}