| 35 | /// - Cherry-pick specific changes (`pick`) |
| 36 | #[derive(Debug, Args)] |
| 37 | pub struct Insert { |
| 38 | #[command(subcommand)] |
| 39 | command: Option<InsertSubcommand>, |
| 40 | |
| 41 | /// Hash of the change to insert (when not using subcommands). |
| 42 | /// |
| 43 | /// Omit entirely to promote the current view's changes into its parent |
| 44 | /// view (see the command-level docs). |
| 45 | #[arg(value_name = "CHANGE", add = ArgValueCompleter::new(complete_change_hashes))] |
| 46 | change: Option<String>, |
| 47 | |
| 48 | /// Target view. |
| 49 | /// |
| 50 | /// For `atomic insert <hash>` this is the view the change is inserted |
| 51 | /// into (default: current view). For the bare `atomic insert` promotion |
| 52 | /// it overrides the target (default: the current view's parent). |
| 53 | #[arg(long, visible_alias = "to", add = ArgValueCompleter::new(complete_view_names))] |
| 54 | view: Option<String>, |
| 55 | |
| 56 | /// Insert dependencies automatically. |
| 57 | #[arg(long, default_value = "true")] |
| 58 | deps: bool, |
| 59 | |
| 60 | /// Allow conflicts during insert. |
| 61 | #[arg(long)] |
| 62 | allow_conflicts: bool, |
| 63 | |
| 64 | /// Preview the promotion without inserting anything. |
| 65 | #[arg(short = 'n', long)] |
| 66 | dry_run: bool, |
| 67 | |
| 68 | /// Skip the confirmation prompt when promoting between two shared views. |
| 69 | #[arg(long)] |
| 70 | confirm: bool, |
| 71 | |
| 72 | /// Repository path. |
| 73 | #[arg(short = 'R', long)] |
| 74 | repository: Option<String>, |
| 75 | } |
| 76 | |
| 77 | /// Insert subcommands for cross-view operations. |
| 78 | #[derive(Debug, Subcommand)] |