aboutsummaryrefslogtreecommitdiff
path: root/src/repo/git/mod.rs
diff options
context:
space:
mode:
authorMax Audron <audron@cocaine.farm>2024-09-04 08:54:02 +0200
committerMax Audron <audron@cocaine.farm>2024-09-04 08:54:02 +0200
commitb91cf7fe0ba5472d197f65ecc307c5e7961b78b1 (patch)
treec337ced6a2cc37e15d08b2d2c4a5c1819a2da50b /src/repo/git/mod.rs
parentrefactor tests (diff)
i do not know what i did anymore
Diffstat (limited to 'src/repo/git/mod.rs')
-rw-r--r--src/repo/git/mod.rs17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/repo/git/mod.rs b/src/repo/git/mod.rs
index 7370ee8..7513ca5 100644
--- a/src/repo/git/mod.rs
+++ b/src/repo/git/mod.rs
@@ -9,8 +9,10 @@ use gix::{
},
remote, Id, ObjectId, Remote,
};
+use tracing::debug;
mod checkout;
+mod ffmerge;
mod fetch;
impl Repo {
@@ -52,8 +54,11 @@ impl Repo {
.find_reference(&format!("remotes/{}/HEAD", remote_name.as_bstr()))
.context("the remotes HEAD references does not exist")?;
+ debug!("got ref to origin: {:?}", origin_ref);
+
if let Some(origin_ref) = origin_ref.target().try_name() {
- Ok(origin_ref.shorten().to_owned())
+ let shortened = origin_ref.shorten().to_owned();
+ Ok(shortened.split(|x| *x == b'/').last().unwrap().into())
} else {
Err(RepoError::NoDefaultBranch)
}
@@ -77,19 +82,23 @@ impl Repo {
pub fn update_default_branch_ref(
&self,
- remote: remote::Name,
+ remote: &remote::Name,
head: Id,
) -> Result<(), RepoError> {
let default_branch = self.default_branch()?;
+ debug!("default branch: {:?}", default_branch);
+
let repo = self.repo()?;
- repo.edit_reference(Repo::refedit(
+ let edits = repo.edit_reference(Repo::refedit(
head.into(),
- &format!("heads/{}", default_branch),
+ &format!("refs/heads/{}", default_branch),
&format!("checkout: {}/HEAD with gtree", remote.as_bstr()),
))
.context("checkout: failed to edit ref")?;
+ debug!("ref edits: {:?}", edits);
+
Ok(())
}