fix status fetch hanging on bare repos w/o worktree (#1032)

closes #1029
This commit is contained in:
Stephan Dilly 2021-12-08 22:00:55 +01:00 committed by GitHub
parent 0a6ca35fc7
commit a947ce35e7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 9 deletions

View File

@ -2,6 +2,7 @@
.PHONY: debug build-release release-linux-musl test clippy clippy-pedantic install install-debug
ARGS=-l
# ARGS=-l -d ~/code/git-bare-test.git
# ARGS=-l -d ~/code/git-bare-test.git -w ~/code/git-bare-test
profile:

View File

@ -127,23 +127,22 @@ impl AsyncStatus {
self.pending.fetch_add(1, Ordering::Relaxed);
rayon_core::spawn(move || {
let ok = Self::fetch_helper(
if let Err(e) = Self::fetch_helper(
&repo,
status_type,
config,
hash_request,
&arc_current,
&arc_last,
)
.is_ok();
) {
log::error!("fetch_helper: {}", e);
}
arc_pending.fetch_sub(1, Ordering::Relaxed);
if ok {
sender
.send(AsyncGitNotification::Status)
.expect("error sending status");
}
sender
.send(AsyncGitNotification::Status)
.expect("error sending status");
});
Ok(None)

View File

@ -104,6 +104,10 @@ pub fn get_status(
let repo = repo(repo_path)?;
if repo.is_bare() && !repo.is_worktree() {
return Ok(Vec::new());
}
let show_untracked = if let Some(config) = show_untracked {
config
} else {

View File

@ -15,7 +15,7 @@ pub fn trim_length_left(s: &str, width: usize) -> &str {
//TODO: allow customize tabsize
pub fn tabs_to_spaces(input: String) -> String {
if input.contains('\t') {
input.replace("\t", " ")
input.replace('\t', " ")
} else {
input
}