committed by
GitHub
parent
23f36aee08
commit
63e346ae46
@@ -1,8 +1,8 @@
|
|||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
|
|
||||||
use git2::{
|
use git2::{
|
||||||
BranchType, Cred, DiffOptions, Error as GitError, FetchOptions, RebaseOptions, RemoteCallbacks,
|
build::CheckoutBuilder, BranchType, Cred, DiffOptions, Error as GitError, FetchOptions,
|
||||||
Repository, WorktreeAddOptions,
|
RebaseOptions, RemoteCallbacks, Repository, WorktreeAddOptions,
|
||||||
};
|
};
|
||||||
use regex;
|
use regex;
|
||||||
use tracing::{debug, info};
|
use tracing::{debug, info};
|
||||||
@@ -217,6 +217,22 @@ impl GitService {
|
|||||||
base_branch_name,
|
base_branch_name,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
|
// Fix: Update main repo's HEAD if it's pointing to the base branch
|
||||||
|
let main_repo = self.open_repo()?;
|
||||||
|
let refname = format!("refs/heads/{}", base_branch_name);
|
||||||
|
|
||||||
|
if let Ok(main_head) = main_repo.head() {
|
||||||
|
if let Some(branch_name) = main_head.shorthand() {
|
||||||
|
if branch_name == base_branch_name {
|
||||||
|
// Only update main repo's HEAD if it's currently on the base branch
|
||||||
|
main_repo.set_head(&refname)?;
|
||||||
|
let mut co = CheckoutBuilder::new();
|
||||||
|
co.force();
|
||||||
|
main_repo.checkout_head(Some(&mut co))?;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
info!("Created squash merge commit: {}", squash_commit_id);
|
info!("Created squash merge commit: {}", squash_commit_id);
|
||||||
Ok(squash_commit_id.to_string())
|
Ok(squash_commit_id.to_string())
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user