mirror of
https://github.com/extrawurst/gitui.git
synced 2024-12-27 02:53:50 +03:00
fix issue with taglist component without remotes (#1112)
This commit is contained in:
parent
11c055220d
commit
e18aa48aea
@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## Unreleased
|
||||
|
||||
### Fixed
|
||||
* opening tags list without remotes ([#1111](https://github.com/extrawurst/gitui/1111))
|
||||
|
||||
## [0.20.1] - 2021-01-26
|
||||
|
||||
This is was a immediate followup patch release to `0.20` see [release notes](https://github.com/extrawurst/gitui/releases/tag/v0.20.0) for the whole list of goodies in `0.20`.
|
||||
|
@ -18,7 +18,9 @@ use asyncgit::{
|
||||
extract_username_password, need_username_password,
|
||||
BasicAuthCredential,
|
||||
},
|
||||
sync::{get_tags_with_metadata, RepoPathRef, TagWithMetadata},
|
||||
sync::{
|
||||
self, get_tags_with_metadata, RepoPathRef, TagWithMetadata,
|
||||
},
|
||||
AsyncGitNotification,
|
||||
};
|
||||
use crossbeam_channel::Sender;
|
||||
@ -46,6 +48,7 @@ pub struct TagListComponent {
|
||||
table_state: std::cell::Cell<TableState>,
|
||||
current_height: std::cell::Cell<usize>,
|
||||
missing_remote_tags: Option<Vec<String>>,
|
||||
has_remotes: bool,
|
||||
basic_credential: Option<BasicAuthCredential>,
|
||||
async_remote_tags: AsyncSingleJob<AsyncRemoteTagsJob>,
|
||||
key_config: SharedKeyConfig,
|
||||
@ -170,7 +173,7 @@ impl Component for TagListComponent {
|
||||
));
|
||||
out.push(CommandInfo::new(
|
||||
strings::commands::push_tags(&self.key_config),
|
||||
true,
|
||||
self.has_remotes,
|
||||
true,
|
||||
));
|
||||
out.push(CommandInfo::new(
|
||||
@ -235,7 +238,9 @@ impl Component for TagListComponent {
|
||||
Ok(EventState::Consumed)
|
||||
},
|
||||
);
|
||||
} else if key == self.key_config.keys.push {
|
||||
} else if key == self.key_config.keys.push
|
||||
&& self.has_remotes
|
||||
{
|
||||
self.queue.push(InternalEvent::PushTags);
|
||||
}
|
||||
}
|
||||
@ -274,6 +279,7 @@ impl TagListComponent {
|
||||
queue: queue.clone(),
|
||||
tags: None,
|
||||
visible: false,
|
||||
has_remotes: false,
|
||||
table_state: std::cell::Cell::new(TableState::default()),
|
||||
current_height: std::cell::Cell::new(0),
|
||||
basic_credential: None,
|
||||
@ -289,7 +295,12 @@ impl TagListComponent {
|
||||
self.table_state.get_mut().select(Some(0));
|
||||
self.show()?;
|
||||
|
||||
let basic_credential =
|
||||
self.has_remotes =
|
||||
sync::get_branches_info(&self.repo.borrow(), false)
|
||||
.map(|branches| !branches.is_empty())
|
||||
.unwrap_or(false);
|
||||
|
||||
let basic_credential = if self.has_remotes {
|
||||
if need_username_password(&self.repo.borrow())? {
|
||||
let credential =
|
||||
extract_username_password(&self.repo.borrow())?;
|
||||
@ -301,7 +312,10 @@ impl TagListComponent {
|
||||
}
|
||||
} else {
|
||||
None
|
||||
};
|
||||
}
|
||||
} else {
|
||||
None
|
||||
};
|
||||
|
||||
self.basic_credential = basic_credential;
|
||||
|
||||
@ -346,10 +360,12 @@ impl TagListComponent {
|
||||
}
|
||||
|
||||
pub fn update_missing_remote_tags(&mut self) {
|
||||
self.async_remote_tags.spawn(AsyncRemoteTagsJob::new(
|
||||
self.repo.borrow().clone(),
|
||||
self.basic_credential.clone(),
|
||||
));
|
||||
if self.has_remotes {
|
||||
self.async_remote_tags.spawn(AsyncRemoteTagsJob::new(
|
||||
self.repo.borrow().clone(),
|
||||
self.basic_credential.clone(),
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
///
|
||||
|
Loading…
Reference in New Issue
Block a user