mirror of
https://github.com/martinvonz/jj.git
synced 2024-12-24 12:48:55 +00:00
sign: implement jj sign
command
Changes were taken from #3142 and slightly modified.
This commit is contained in:
parent
e4df7b12cc
commit
46731eb56e
3 changed files with 68 additions and 0 deletions
|
@ -47,6 +47,7 @@ mod restore;
|
|||
mod root;
|
||||
mod run;
|
||||
mod show;
|
||||
mod sign;
|
||||
mod simplify_parents;
|
||||
mod sparse;
|
||||
mod split;
|
||||
|
@ -149,6 +150,7 @@ enum Command {
|
|||
#[command(hide = true)]
|
||||
// TODO: Flesh out.
|
||||
Run(run::RunArgs),
|
||||
Sign(sign::SignArgs),
|
||||
Show(show::ShowArgs),
|
||||
SimplifyParents(simplify_parents::SimplifyParentsArgs),
|
||||
#[command(subcommand)]
|
||||
|
@ -239,6 +241,7 @@ pub fn run_command(ui: &mut Ui, command_helper: &CommandHelper) -> Result<(), Co
|
|||
Command::Revert(_args) => revert(),
|
||||
Command::Root(args) => root::cmd_root(ui, command_helper, args),
|
||||
Command::Run(args) => run::cmd_run(ui, command_helper, args),
|
||||
Command::Sign(sub_args) => sign::cmd_sign(ui, command_helper, sub_args),
|
||||
Command::SimplifyParents(args) => {
|
||||
simplify_parents::cmd_simplify_parents(ui, command_helper, args)
|
||||
}
|
||||
|
|
43
cli/src/commands/sign.rs
Normal file
43
cli/src/commands/sign.rs
Normal file
|
@ -0,0 +1,43 @@
|
|||
// Copyright 2023 The Jujutsu Authors
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// https://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
use crate::cli_util::CommandHelper;
|
||||
use crate::cli_util::RevisionArg;
|
||||
use crate::command_error::CommandError;
|
||||
use crate::ui::Ui;
|
||||
|
||||
/// Cryptographically sign a revision
|
||||
#[derive(clap::Args, Clone, Debug)]
|
||||
pub struct SignArgs {
|
||||
/// What key to use, depends on the configured signing backend.
|
||||
#[arg()]
|
||||
key: Option<String>,
|
||||
/// What revision to sign
|
||||
#[arg(long, short, default_value = "@")]
|
||||
revision: RevisionArg,
|
||||
/// Sign a commit that is not authored by you or was already signed.
|
||||
#[arg(long, short)]
|
||||
force: bool,
|
||||
/// Drop the signature, explicitly "un-signing" the commit.
|
||||
#[arg(long, short = 'D', conflicts_with = "force")]
|
||||
drop: bool,
|
||||
}
|
||||
|
||||
pub fn cmd_sign(
|
||||
_ui: &mut Ui,
|
||||
_command: &CommandHelper,
|
||||
_args: &SignArgs,
|
||||
) -> Result<(), CommandError> {
|
||||
todo!()
|
||||
}
|
|
@ -78,6 +78,7 @@ This document contains the help content for the `jj` command-line program.
|
|||
* [`jj resolve`↴](#jj-resolve)
|
||||
* [`jj restore`↴](#jj-restore)
|
||||
* [`jj root`↴](#jj-root)
|
||||
* [`jj sign`↴](#jj-sign)
|
||||
* [`jj show`↴](#jj-show)
|
||||
* [`jj simplify-parents`↴](#jj-simplify-parents)
|
||||
* [`jj sparse`↴](#jj-sparse)
|
||||
|
@ -146,6 +147,7 @@ To get started, see the tutorial at https://martinvonz.github.io/jj/latest/tutor
|
|||
* `resolve` — Resolve a conflicted file with an external merge tool
|
||||
* `restore` — Restore paths from another revision
|
||||
* `root` — Show the current workspace root directory
|
||||
* `sign` — Cryptographically sign a revision
|
||||
* `show` — Show commit description and changes in a revision
|
||||
* `simplify-parents` — Simplify parent edges for the specified revision(s)
|
||||
* `sparse` — Manage which paths from the working-copy commit are present in the working copy
|
||||
|
@ -1886,6 +1888,26 @@ Show the current workspace root directory
|
|||
|
||||
|
||||
|
||||
## `jj sign`
|
||||
|
||||
Cryptographically sign a revision
|
||||
|
||||
**Usage:** `jj sign [OPTIONS] [KEY]`
|
||||
|
||||
###### **Arguments:**
|
||||
|
||||
* `<KEY>` — What key to use, depends on the configured signing backend
|
||||
|
||||
###### **Options:**
|
||||
|
||||
* `-r`, `--revision <REVISION>` — What revision to sign
|
||||
|
||||
Default value: `@`
|
||||
* `-f`, `--force` — Sign a commit that is not authored by you or was already signed
|
||||
* `-D`, `--drop` — Drop the signature, explicitly "un-signing" the commit
|
||||
|
||||
|
||||
|
||||
## `jj show`
|
||||
|
||||
Show commit description and changes in a revision
|
||||
|
|
Loading…
Reference in a new issue