From 8cc4318beb482a42a9fd84646f19624ad1a41863 Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Fri, 12 Aug 2016 03:42:13 -1000 Subject: [PATCH] base, rebase: Support specifying a tag rather than a commit After parsing the revision, peel it to a commit before getting its id. --- src/main.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index c1e15819159e67a04cb36db485302f942b22e4d1..f705f20ab46fcc2eb8b09dba568d659818e150bb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -463,7 +463,8 @@ fn base(repo: &Repository, m: &ArgMatches) -> Result<()> { } else { let base = m.value_of("base").unwrap(); let base_object = try!(repo.revparse_single(base)); - let base_id = base_object.id(); + let base_commit = try!(base_object.peel(ObjectType::Commit)); + let base_id = base_commit.id(); let s_working_series = try!(try!(internals.working.get("series")).ok_or("Could not find entry \"series\" in working vesion of current series")); if base_id != s_working_series.id() && !try!(repo.graph_descendant_of(s_working_series.id(), base_id)) { return Err(format!("Cannot set base to {}: not an ancestor of the patch series {}", base, s_working_series.id()).into()); @@ -1343,7 +1344,8 @@ fn rebase(repo: &Repository, m: &ArgMatches) -> Result<()> { None => None, Some(onto) => { let obj = try!(repo.revparse_single(onto)); - Some(obj.id()) + let commit = try!(obj.peel(ObjectType::Commit)); + Some(commit.id()) }, };