mirror of
https://github.com/martinvonz/jj.git
synced 2024-10-24 07:32:54 +00:00
cli: avoid creating new WorkspaceLoader for jj config edit --repo
This is mostly about not having to handle errors twice (or document an `unwrap()` after `WorkspaceLoader::init()`).
This commit is contained in:
parent
37e1ed403a
commit
ea6a238c7c
2 changed files with 9 additions and 9 deletions
|
@ -361,6 +361,10 @@ impl CommandHelper {
|
|||
self.layered_configs.resolved_config_values(prefix)
|
||||
}
|
||||
|
||||
pub fn workspace_loader(&self) -> Result<&WorkspaceLoader, CommandError> {
|
||||
self.maybe_workspace_loader.as_ref().map_err(Clone::clone)
|
||||
}
|
||||
|
||||
fn workspace_helper_internal(
|
||||
&self,
|
||||
ui: &mut Ui,
|
||||
|
@ -388,7 +392,7 @@ impl CommandHelper {
|
|||
}
|
||||
|
||||
pub fn load_workspace(&self) -> Result<Workspace, CommandError> {
|
||||
let loader = self.maybe_workspace_loader.as_ref().map_err(Clone::clone)?;
|
||||
let loader = self.workspace_loader()?;
|
||||
loader
|
||||
.load(&self.settings, &self.store_factories)
|
||||
.map_err(|e| user_error(format!("{}: {}", e, e.error)))
|
||||
|
|
|
@ -42,7 +42,7 @@ use jujutsu_lib::revset_graph_iterator::{
|
|||
use jujutsu_lib::rewrite::{back_out_commit, merge_commit_trees, rebase_commit, DescendantRebaser};
|
||||
use jujutsu_lib::settings::UserSettings;
|
||||
use jujutsu_lib::tree::{merge_trees, Tree};
|
||||
use jujutsu_lib::workspace::{Workspace, WorkspaceLoader};
|
||||
use jujutsu_lib::workspace::Workspace;
|
||||
use jujutsu_lib::{conflicts, file_util, revset};
|
||||
use maplit::{hashmap, hashset};
|
||||
|
||||
|
@ -1109,7 +1109,7 @@ fn cmd_config_list(
|
|||
}
|
||||
|
||||
fn cmd_config_edit(
|
||||
ui: &mut Ui,
|
||||
_ui: &mut Ui,
|
||||
command: &CommandHelper,
|
||||
args: &ConfigEditArgs,
|
||||
) -> Result<(), CommandError> {
|
||||
|
@ -1117,12 +1117,8 @@ fn cmd_config_edit(
|
|||
// TODO(#531): Special-case for editors that can't handle viewing directories?
|
||||
config_path()?.ok_or_else(|| user_error("No repo config path found to edit"))?
|
||||
} else if args.config_args.repo {
|
||||
let workspace_command = command.workspace_helper(ui)?;
|
||||
let workspace_path = workspace_command.workspace_root();
|
||||
WorkspaceLoader::init(workspace_path)
|
||||
.unwrap()
|
||||
.repo_path()
|
||||
.join("config.toml")
|
||||
let workspace_loader = command.workspace_loader()?;
|
||||
workspace_loader.repo_path().join("config.toml")
|
||||
} else {
|
||||
// Shouldn't be reachable unless clap ArgGroup is broken.
|
||||
panic!("No config_level provided");
|
||||
|
|
Loading…
Reference in a new issue