mirror of
https://github.com/martinvonz/jj.git
synced 2025-01-19 10:44:58 +00:00
feat: Create a file
command containing print
and chmod
- rearrange the files involved to be more clear about structure - deprecate existing `jj cat` and `jj chmod`
This commit is contained in:
parent
2de73f57fc
commit
47bd6f4aa4
18 changed files with 310 additions and 214 deletions
|
@ -26,6 +26,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
* `jj split --siblings` is deprecated in favor of `jj split --parallel` (to
|
* `jj split --siblings` is deprecated in favor of `jj split --parallel` (to
|
||||||
match `jj parallelize`).
|
match `jj parallelize`).
|
||||||
|
|
||||||
|
* `jj file print` (aka `jj file cat`) replaces `jj cat`.
|
||||||
|
|
||||||
|
* `jj file chmod` replaces `jj chmod`.
|
||||||
|
|
||||||
### New features
|
### New features
|
||||||
|
|
||||||
* Support background filesystem monitoring via watchman triggers enabled with
|
* Support background filesystem monitoring via watchman triggers enabled with
|
||||||
|
@ -44,6 +48,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
|
|
||||||
* Conflicted files are individually simplified before being materialized.
|
* Conflicted files are individually simplified before being materialized.
|
||||||
|
|
||||||
|
* `jj file` now groups commands for working with files.
|
||||||
|
|
||||||
### Fixed bugs
|
### Fixed bugs
|
||||||
|
|
||||||
## [0.18.0] - 2024-06-05
|
## [0.18.0] - 2024-06-05
|
||||||
|
|
|
@ -47,6 +47,23 @@ pub(crate) struct ChmodArgs {
|
||||||
paths: Vec<String>,
|
paths: Vec<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[instrument(skip_all)]
|
||||||
|
pub(crate) fn deprecated_cmd_chmod(
|
||||||
|
ui: &mut Ui,
|
||||||
|
command: &CommandHelper,
|
||||||
|
args: &ChmodArgs,
|
||||||
|
) -> Result<(), CommandError> {
|
||||||
|
writeln!(
|
||||||
|
ui.warning_default(),
|
||||||
|
"`jj chmod` is deprecated; use `jj file chmod` instead, which is equivalent"
|
||||||
|
)?;
|
||||||
|
writeln!(
|
||||||
|
ui.warning_default(),
|
||||||
|
"`jj chmod` will be removed in a future version, and this will be a hard error"
|
||||||
|
)?;
|
||||||
|
cmd_chmod(ui, command, args)
|
||||||
|
}
|
||||||
|
|
||||||
#[instrument(skip_all)]
|
#[instrument(skip_all)]
|
||||||
pub(crate) fn cmd_chmod(
|
pub(crate) fn cmd_chmod(
|
||||||
ui: &mut Ui,
|
ui: &mut Ui,
|
38
cli/src/commands/file/mod.rs
Normal file
38
cli/src/commands/file/mod.rs
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
// Copyright 2020-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.
|
||||||
|
|
||||||
|
pub mod chmod;
|
||||||
|
pub mod print;
|
||||||
|
|
||||||
|
use crate::cli_util::CommandHelper;
|
||||||
|
use crate::command_error::CommandError;
|
||||||
|
use crate::ui::Ui;
|
||||||
|
|
||||||
|
/// File operations.
|
||||||
|
#[derive(clap::Subcommand, Clone, Debug)]
|
||||||
|
pub enum FileCommand {
|
||||||
|
Print(print::PrintArgs),
|
||||||
|
Chmod(chmod::ChmodArgs),
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn cmd_file(
|
||||||
|
ui: &mut Ui,
|
||||||
|
command: &CommandHelper,
|
||||||
|
subcommand: &FileCommand,
|
||||||
|
) -> Result<(), CommandError> {
|
||||||
|
match subcommand {
|
||||||
|
FileCommand::Print(sub_args) => print::cmd_print(ui, command, sub_args),
|
||||||
|
FileCommand::Chmod(sub_args) => chmod::cmd_chmod(ui, command, sub_args),
|
||||||
|
}
|
||||||
|
}
|
|
@ -34,7 +34,7 @@ use crate::ui::Ui;
|
||||||
/// If the given path is a directory, files in the directory will be visited
|
/// If the given path is a directory, files in the directory will be visited
|
||||||
/// recursively.
|
/// recursively.
|
||||||
#[derive(clap::Args, Clone, Debug)]
|
#[derive(clap::Args, Clone, Debug)]
|
||||||
pub(crate) struct CatArgs {
|
pub(crate) struct PrintArgs {
|
||||||
/// The revision to get the file contents from
|
/// The revision to get the file contents from
|
||||||
#[arg(long, short, default_value = "@")]
|
#[arg(long, short, default_value = "@")]
|
||||||
revision: RevisionArg,
|
revision: RevisionArg,
|
||||||
|
@ -44,10 +44,27 @@ pub(crate) struct CatArgs {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[instrument(skip_all)]
|
#[instrument(skip_all)]
|
||||||
pub(crate) fn cmd_cat(
|
pub(crate) fn deprecated_cmd_cat(
|
||||||
ui: &mut Ui,
|
ui: &mut Ui,
|
||||||
command: &CommandHelper,
|
command: &CommandHelper,
|
||||||
args: &CatArgs,
|
args: &PrintArgs,
|
||||||
|
) -> Result<(), CommandError> {
|
||||||
|
writeln!(
|
||||||
|
ui.warning_default(),
|
||||||
|
"`jj cat` is deprecated; use `jj file print` instead, which is equivalent"
|
||||||
|
)?;
|
||||||
|
writeln!(
|
||||||
|
ui.warning_default(),
|
||||||
|
"`jj cat` will be removed in a future version, and this will be a hard error"
|
||||||
|
)?;
|
||||||
|
cmd_print(ui, command, args)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[instrument(skip_all)]
|
||||||
|
pub(crate) fn cmd_print(
|
||||||
|
ui: &mut Ui,
|
||||||
|
command: &CommandHelper,
|
||||||
|
args: &PrintArgs,
|
||||||
) -> Result<(), CommandError> {
|
) -> Result<(), CommandError> {
|
||||||
let workspace_command = command.workspace_helper(ui)?;
|
let workspace_command = command.workspace_helper(ui)?;
|
||||||
let commit = workspace_command.resolve_single_rev(&args.revision)?;
|
let commit = workspace_command.resolve_single_rev(&args.revision)?;
|
|
@ -17,9 +17,7 @@ mod backout;
|
||||||
#[cfg(feature = "bench")]
|
#[cfg(feature = "bench")]
|
||||||
mod bench;
|
mod bench;
|
||||||
mod branch;
|
mod branch;
|
||||||
mod cat;
|
|
||||||
mod checkout;
|
mod checkout;
|
||||||
mod chmod;
|
|
||||||
mod commit;
|
mod commit;
|
||||||
mod config;
|
mod config;
|
||||||
mod debug;
|
mod debug;
|
||||||
|
@ -28,6 +26,7 @@ mod diff;
|
||||||
mod diffedit;
|
mod diffedit;
|
||||||
mod duplicate;
|
mod duplicate;
|
||||||
mod edit;
|
mod edit;
|
||||||
|
mod file;
|
||||||
mod files;
|
mod files;
|
||||||
mod fix;
|
mod fix;
|
||||||
mod git;
|
mod git;
|
||||||
|
@ -77,11 +76,12 @@ enum Command {
|
||||||
Bench(bench::BenchCommand),
|
Bench(bench::BenchCommand),
|
||||||
#[command(subcommand)]
|
#[command(subcommand)]
|
||||||
Branch(branch::BranchCommand),
|
Branch(branch::BranchCommand),
|
||||||
#[command(alias = "print")]
|
#[command(alias = "print", hide = true)]
|
||||||
Cat(cat::CatArgs),
|
Cat(file::print::PrintArgs),
|
||||||
#[command(hide = true)]
|
#[command(hide = true)]
|
||||||
Checkout(checkout::CheckoutArgs),
|
Checkout(checkout::CheckoutArgs),
|
||||||
Chmod(chmod::ChmodArgs),
|
#[command(hide = true)]
|
||||||
|
Chmod(file::chmod::ChmodArgs),
|
||||||
Commit(commit::CommitArgs),
|
Commit(commit::CommitArgs),
|
||||||
#[command(subcommand)]
|
#[command(subcommand)]
|
||||||
Config(config::ConfigCommand),
|
Config(config::ConfigCommand),
|
||||||
|
@ -92,6 +92,8 @@ enum Command {
|
||||||
Diffedit(diffedit::DiffeditArgs),
|
Diffedit(diffedit::DiffeditArgs),
|
||||||
Duplicate(duplicate::DuplicateArgs),
|
Duplicate(duplicate::DuplicateArgs),
|
||||||
Edit(edit::EditArgs),
|
Edit(edit::EditArgs),
|
||||||
|
#[command(subcommand)]
|
||||||
|
File(file::FileCommand),
|
||||||
Files(files::FilesArgs),
|
Files(files::FilesArgs),
|
||||||
Fix(fix::FixArgs),
|
Fix(fix::FixArgs),
|
||||||
#[command(subcommand)]
|
#[command(subcommand)]
|
||||||
|
@ -171,8 +173,9 @@ pub fn run_command(ui: &mut Ui, command_helper: &CommandHelper) -> Result<(), Co
|
||||||
Command::Config(sub_args) => config::cmd_config(ui, command_helper, sub_args),
|
Command::Config(sub_args) => config::cmd_config(ui, command_helper, sub_args),
|
||||||
Command::Checkout(sub_args) => checkout::cmd_checkout(ui, command_helper, sub_args),
|
Command::Checkout(sub_args) => checkout::cmd_checkout(ui, command_helper, sub_args),
|
||||||
Command::Untrack(sub_args) => untrack::cmd_untrack(ui, command_helper, sub_args),
|
Command::Untrack(sub_args) => untrack::cmd_untrack(ui, command_helper, sub_args),
|
||||||
|
Command::File(sub_args) => file::cmd_file(ui, command_helper, sub_args),
|
||||||
Command::Files(sub_args) => files::cmd_files(ui, command_helper, sub_args),
|
Command::Files(sub_args) => files::cmd_files(ui, command_helper, sub_args),
|
||||||
Command::Cat(sub_args) => cat::cmd_cat(ui, command_helper, sub_args),
|
Command::Cat(sub_args) => file::print::deprecated_cmd_cat(ui, command_helper, sub_args),
|
||||||
Command::Diff(sub_args) => diff::cmd_diff(ui, command_helper, sub_args),
|
Command::Diff(sub_args) => diff::cmd_diff(ui, command_helper, sub_args),
|
||||||
Command::Show(sub_args) => show::cmd_show(ui, command_helper, sub_args),
|
Command::Show(sub_args) => show::cmd_show(ui, command_helper, sub_args),
|
||||||
Command::Status(sub_args) => status::cmd_status(ui, command_helper, sub_args),
|
Command::Status(sub_args) => status::cmd_status(ui, command_helper, sub_args),
|
||||||
|
@ -210,7 +213,7 @@ pub fn run_command(ui: &mut Ui, command_helper: &CommandHelper) -> Result<(), Co
|
||||||
Command::Workspace(sub_args) => workspace::cmd_workspace(ui, command_helper, sub_args),
|
Command::Workspace(sub_args) => workspace::cmd_workspace(ui, command_helper, sub_args),
|
||||||
Command::Sparse(sub_args) => sparse::cmd_sparse(ui, command_helper, sub_args),
|
Command::Sparse(sub_args) => sparse::cmd_sparse(ui, command_helper, sub_args),
|
||||||
Command::Tag(sub_args) => tag::cmd_tag(ui, command_helper, sub_args),
|
Command::Tag(sub_args) => tag::cmd_tag(ui, command_helper, sub_args),
|
||||||
Command::Chmod(sub_args) => chmod::cmd_chmod(ui, command_helper, sub_args),
|
Command::Chmod(sub_args) => file::chmod::deprecated_cmd_chmod(ui, command_helper, sub_args),
|
||||||
Command::Git(sub_args) => git::cmd_git(ui, command_helper, sub_args),
|
Command::Git(sub_args) => git::cmd_git(ui, command_helper, sub_args),
|
||||||
Command::Util(sub_args) => util::cmd_util(ui, command_helper, sub_args),
|
Command::Util(sub_args) => util::cmd_util(ui, command_helper, sub_args),
|
||||||
#[cfg(feature = "bench")]
|
#[cfg(feature = "bench")]
|
||||||
|
|
|
@ -22,8 +22,6 @@ This document contains the help content for the `jj` command-line program.
|
||||||
* [`jj branch set`↴](#jj-branch-set)
|
* [`jj branch set`↴](#jj-branch-set)
|
||||||
* [`jj branch track`↴](#jj-branch-track)
|
* [`jj branch track`↴](#jj-branch-track)
|
||||||
* [`jj branch untrack`↴](#jj-branch-untrack)
|
* [`jj branch untrack`↴](#jj-branch-untrack)
|
||||||
* [`jj cat`↴](#jj-cat)
|
|
||||||
* [`jj chmod`↴](#jj-chmod)
|
|
||||||
* [`jj commit`↴](#jj-commit)
|
* [`jj commit`↴](#jj-commit)
|
||||||
* [`jj config`↴](#jj-config)
|
* [`jj config`↴](#jj-config)
|
||||||
* [`jj config list`↴](#jj-config-list)
|
* [`jj config list`↴](#jj-config-list)
|
||||||
|
@ -36,6 +34,9 @@ This document contains the help content for the `jj` command-line program.
|
||||||
* [`jj diffedit`↴](#jj-diffedit)
|
* [`jj diffedit`↴](#jj-diffedit)
|
||||||
* [`jj duplicate`↴](#jj-duplicate)
|
* [`jj duplicate`↴](#jj-duplicate)
|
||||||
* [`jj edit`↴](#jj-edit)
|
* [`jj edit`↴](#jj-edit)
|
||||||
|
* [`jj file`↴](#jj-file)
|
||||||
|
* [`jj file print`↴](#jj-file-print)
|
||||||
|
* [`jj file chmod`↴](#jj-file-chmod)
|
||||||
* [`jj files`↴](#jj-files)
|
* [`jj files`↴](#jj-files)
|
||||||
* [`jj fix`↴](#jj-fix)
|
* [`jj fix`↴](#jj-fix)
|
||||||
* [`jj git`↴](#jj-git)
|
* [`jj git`↴](#jj-git)
|
||||||
|
@ -108,8 +109,6 @@ To get started, see the tutorial at https://github.com/martinvonz/jj/blob/main/d
|
||||||
* `abandon` — Abandon a revision
|
* `abandon` — Abandon a revision
|
||||||
* `backout` — Apply the reverse of a revision on top of another revision
|
* `backout` — Apply the reverse of a revision on top of another revision
|
||||||
* `branch` — Manage branches
|
* `branch` — Manage branches
|
||||||
* `cat` — Print contents of files in a revision
|
|
||||||
* `chmod` — Sets or removes the executable bit for paths in the repo
|
|
||||||
* `commit` — Update the description and create a new change on top
|
* `commit` — Update the description and create a new change on top
|
||||||
* `config` — Manage config options
|
* `config` — Manage config options
|
||||||
* `describe` — Update the change description or other metadata
|
* `describe` — Update the change description or other metadata
|
||||||
|
@ -117,6 +116,7 @@ To get started, see the tutorial at https://github.com/martinvonz/jj/blob/main/d
|
||||||
* `diffedit` — Touch up the content changes in a revision with a diff editor
|
* `diffedit` — Touch up the content changes in a revision with a diff editor
|
||||||
* `duplicate` — Create a new change with the same content as an existing one
|
* `duplicate` — Create a new change with the same content as an existing one
|
||||||
* `edit` — Sets the specified revision as the working-copy revision
|
* `edit` — Sets the specified revision as the working-copy revision
|
||||||
|
* `file` — File operations
|
||||||
* `files` — List files in a revision
|
* `files` — List files in a revision
|
||||||
* `fix` — Update files with formatting fixes or other changes
|
* `fix` — Update files with formatting fixes or other changes
|
||||||
* `git` — Commands for working with Git remotes and the underlying Git repo
|
* `git` — Commands for working with Git remotes and the underlying Git repo
|
||||||
|
@ -390,54 +390,6 @@ A non-tracking remote branch is just a pointer to the last-fetched remote branch
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## `jj cat`
|
|
||||||
|
|
||||||
Print contents of files in a revision
|
|
||||||
|
|
||||||
If the given path is a directory, files in the directory will be visited recursively.
|
|
||||||
|
|
||||||
**Usage:** `jj cat [OPTIONS] <PATHS>...`
|
|
||||||
|
|
||||||
###### **Arguments:**
|
|
||||||
|
|
||||||
* `<PATHS>` — Paths to print
|
|
||||||
|
|
||||||
###### **Options:**
|
|
||||||
|
|
||||||
* `-r`, `--revision <REVISION>` — The revision to get the file contents from
|
|
||||||
|
|
||||||
Default value: `@`
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## `jj chmod`
|
|
||||||
|
|
||||||
Sets or removes the executable bit for paths in the repo
|
|
||||||
|
|
||||||
Unlike the POSIX `chmod`, `jj chmod` also works on Windows, on conflicted files, and on arbitrary revisions.
|
|
||||||
|
|
||||||
**Usage:** `jj chmod [OPTIONS] <MODE> <PATHS>...`
|
|
||||||
|
|
||||||
###### **Arguments:**
|
|
||||||
|
|
||||||
* `<MODE>`
|
|
||||||
|
|
||||||
Possible values:
|
|
||||||
- `n`:
|
|
||||||
Make a path non-executable (alias: normal)
|
|
||||||
- `x`:
|
|
||||||
Make a path executable (alias: executable)
|
|
||||||
|
|
||||||
* `<PATHS>` — Paths to change the executable bit for
|
|
||||||
|
|
||||||
###### **Options:**
|
|
||||||
|
|
||||||
* `-r`, `--revision <REVISION>` — The revision to update
|
|
||||||
|
|
||||||
Default value: `@`
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## `jj commit`
|
## `jj commit`
|
||||||
|
|
||||||
Update the description and create a new change on top
|
Update the description and create a new change on top
|
||||||
|
@ -693,6 +645,67 @@ For more information, see https://martinvonz.github.io/jj/latest/FAQ#how-do-i-re
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## `jj file`
|
||||||
|
|
||||||
|
File operations
|
||||||
|
|
||||||
|
**Usage:** `jj file <COMMAND>`
|
||||||
|
|
||||||
|
###### **Subcommands:**
|
||||||
|
|
||||||
|
* `print` — Print contents of files in a revision
|
||||||
|
* `chmod` — Sets or removes the executable bit for paths in the repo
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## `jj file print`
|
||||||
|
|
||||||
|
Print contents of files in a revision
|
||||||
|
|
||||||
|
If the given path is a directory, files in the directory will be visited recursively.
|
||||||
|
|
||||||
|
**Usage:** `jj file print [OPTIONS] <PATHS>...`
|
||||||
|
|
||||||
|
###### **Arguments:**
|
||||||
|
|
||||||
|
* `<PATHS>` — Paths to print
|
||||||
|
|
||||||
|
###### **Options:**
|
||||||
|
|
||||||
|
* `-r`, `--revision <REVISION>` — The revision to get the file contents from
|
||||||
|
|
||||||
|
Default value: `@`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## `jj file chmod`
|
||||||
|
|
||||||
|
Sets or removes the executable bit for paths in the repo
|
||||||
|
|
||||||
|
Unlike the POSIX `chmod`, `jj chmod` also works on Windows, on conflicted files, and on arbitrary revisions.
|
||||||
|
|
||||||
|
**Usage:** `jj file chmod [OPTIONS] <MODE> <PATHS>...`
|
||||||
|
|
||||||
|
###### **Arguments:**
|
||||||
|
|
||||||
|
* `<MODE>`
|
||||||
|
|
||||||
|
Possible values:
|
||||||
|
- `n`:
|
||||||
|
Make a path non-executable (alias: normal)
|
||||||
|
- `x`:
|
||||||
|
Make a path executable (alias: executable)
|
||||||
|
|
||||||
|
* `<PATHS>` — Paths to change the executable bit for
|
||||||
|
|
||||||
|
###### **Options:**
|
||||||
|
|
||||||
|
* `-r`, `--revision <REVISION>` — The revision to update
|
||||||
|
|
||||||
|
Default value: `@`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## `jj files`
|
## `jj files`
|
||||||
|
|
||||||
List files in a revision
|
List files in a revision
|
||||||
|
|
|
@ -14,9 +14,7 @@ mod test_advance_branches;
|
||||||
mod test_alias;
|
mod test_alias;
|
||||||
mod test_branch_command;
|
mod test_branch_command;
|
||||||
mod test_builtin_aliases;
|
mod test_builtin_aliases;
|
||||||
mod test_cat_command;
|
|
||||||
mod test_checkout;
|
mod test_checkout;
|
||||||
mod test_chmod_command;
|
|
||||||
mod test_commit_command;
|
mod test_commit_command;
|
||||||
mod test_commit_template;
|
mod test_commit_template;
|
||||||
mod test_concurrent_operations;
|
mod test_concurrent_operations;
|
||||||
|
@ -27,6 +25,8 @@ mod test_diff_command;
|
||||||
mod test_diffedit_command;
|
mod test_diffedit_command;
|
||||||
mod test_duplicate_command;
|
mod test_duplicate_command;
|
||||||
mod test_edit_command;
|
mod test_edit_command;
|
||||||
|
mod test_file_chmod_command;
|
||||||
|
mod test_file_print_command;
|
||||||
mod test_fix_command;
|
mod test_fix_command;
|
||||||
mod test_generate_md_cli_help;
|
mod test_generate_md_cli_help;
|
||||||
mod test_git_clone;
|
mod test_git_clone;
|
||||||
|
|
|
@ -110,7 +110,7 @@ fn test_cat() {
|
||||||
|
|
||||||
SecretBackend::adopt_git_repo(&repo_path);
|
SecretBackend::adopt_git_repo(&repo_path);
|
||||||
|
|
||||||
let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["cat", "."]);
|
let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["file", "print", "."]);
|
||||||
insta::assert_snapshot!(stdout.replace('\\', "/"), @r###"
|
insta::assert_snapshot!(stdout.replace('\\', "/"), @r###"
|
||||||
foo
|
foo
|
||||||
baz
|
baz
|
||||||
|
|
|
@ -394,7 +394,7 @@ fn test_diffedit_merge() {
|
||||||
A file3
|
A file3
|
||||||
"###);
|
"###);
|
||||||
assert!(!repo_path.join("file1").exists());
|
assert!(!repo_path.join("file1").exists());
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file2"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
<<<<<<< Conflict 1 of 1
|
<<<<<<< Conflict 1 of 1
|
||||||
%%%%%%% Changes from base to side #1
|
%%%%%%% Changes from base to side #1
|
||||||
|
|
|
@ -50,7 +50,7 @@ fn test_chmod_regular_conflict() {
|
||||||
create_commit(&test_env, &repo_path, "n", &["base"], &[("file", "n\n")]);
|
create_commit(&test_env, &repo_path, "n", &["base"], &[("file", "n\n")]);
|
||||||
create_commit(&test_env, &repo_path, "x", &["base"], &[("file", "x\n")]);
|
create_commit(&test_env, &repo_path, "x", &["base"], &[("file", "x\n")]);
|
||||||
// Test chmodding a file. The effect will be visible in the conflict below.
|
// Test chmodding a file. The effect will be visible in the conflict below.
|
||||||
test_env.jj_cmd_ok(&repo_path, &["chmod", "x", "file", "-r=x"]);
|
test_env.jj_cmd_ok(&repo_path, &["file", "chmod", "x", "file", "-r=x"]);
|
||||||
create_commit(&test_env, &repo_path, "conflict", &["x", "n"], &[]);
|
create_commit(&test_env, &repo_path, "conflict", &["x", "n"], &[]);
|
||||||
|
|
||||||
// Test the setup
|
// Test the setup
|
||||||
|
@ -68,7 +68,7 @@ fn test_chmod_regular_conflict() {
|
||||||
@r###"
|
@r###"
|
||||||
file: Ok(Conflicted([Some(File { id: FileId("587be6b4c3f93f93c489c0111bba5596147a26cb"), executable: true }), Some(File { id: FileId("df967b96a579e45a18b8251732d16804b2e56a55"), executable: false }), Some(File { id: FileId("8ba3a16384aacc37d01564b28401755ce8053f51"), executable: false })]))
|
file: Ok(Conflicted([Some(File { id: FileId("587be6b4c3f93f93c489c0111bba5596147a26cb"), executable: true }), Some(File { id: FileId("df967b96a579e45a18b8251732d16804b2e56a55"), executable: false }), Some(File { id: FileId("8ba3a16384aacc37d01564b28401755ce8053f51"), executable: false })]))
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["cat", "file"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file"]);
|
||||||
insta::assert_snapshot!(stdout,
|
insta::assert_snapshot!(stdout,
|
||||||
@r###"
|
@r###"
|
||||||
<<<<<<< Conflict 1 of 1
|
<<<<<<< Conflict 1 of 1
|
||||||
|
@ -81,13 +81,13 @@ fn test_chmod_regular_conflict() {
|
||||||
"###);
|
"###);
|
||||||
|
|
||||||
// Test chmodding a conflict
|
// Test chmodding a conflict
|
||||||
test_env.jj_cmd_ok(&repo_path, &["chmod", "x", "file"]);
|
test_env.jj_cmd_ok(&repo_path, &["file", "chmod", "x", "file"]);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["debug", "tree"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["debug", "tree"]);
|
||||||
insta::assert_snapshot!(stdout,
|
insta::assert_snapshot!(stdout,
|
||||||
@r###"
|
@r###"
|
||||||
file: Ok(Conflicted([Some(File { id: FileId("587be6b4c3f93f93c489c0111bba5596147a26cb"), executable: true }), Some(File { id: FileId("df967b96a579e45a18b8251732d16804b2e56a55"), executable: true }), Some(File { id: FileId("8ba3a16384aacc37d01564b28401755ce8053f51"), executable: true })]))
|
file: Ok(Conflicted([Some(File { id: FileId("587be6b4c3f93f93c489c0111bba5596147a26cb"), executable: true }), Some(File { id: FileId("df967b96a579e45a18b8251732d16804b2e56a55"), executable: true }), Some(File { id: FileId("8ba3a16384aacc37d01564b28401755ce8053f51"), executable: true })]))
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["cat", "file"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file"]);
|
||||||
insta::assert_snapshot!(stdout,
|
insta::assert_snapshot!(stdout,
|
||||||
@r###"
|
@r###"
|
||||||
<<<<<<< Conflict 1 of 1
|
<<<<<<< Conflict 1 of 1
|
||||||
|
@ -98,13 +98,13 @@ fn test_chmod_regular_conflict() {
|
||||||
n
|
n
|
||||||
>>>>>>> Conflict 1 of 1 ends
|
>>>>>>> Conflict 1 of 1 ends
|
||||||
"###);
|
"###);
|
||||||
test_env.jj_cmd_ok(&repo_path, &["chmod", "n", "file"]);
|
test_env.jj_cmd_ok(&repo_path, &["file", "chmod", "n", "file"]);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["debug", "tree"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["debug", "tree"]);
|
||||||
insta::assert_snapshot!(stdout,
|
insta::assert_snapshot!(stdout,
|
||||||
@r###"
|
@r###"
|
||||||
file: Ok(Conflicted([Some(File { id: FileId("587be6b4c3f93f93c489c0111bba5596147a26cb"), executable: false }), Some(File { id: FileId("df967b96a579e45a18b8251732d16804b2e56a55"), executable: false }), Some(File { id: FileId("8ba3a16384aacc37d01564b28401755ce8053f51"), executable: false })]))
|
file: Ok(Conflicted([Some(File { id: FileId("587be6b4c3f93f93c489c0111bba5596147a26cb"), executable: false }), Some(File { id: FileId("df967b96a579e45a18b8251732d16804b2e56a55"), executable: false }), Some(File { id: FileId("8ba3a16384aacc37d01564b28401755ce8053f51"), executable: false })]))
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["cat", "file"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file"]);
|
||||||
insta::assert_snapshot!(stdout,
|
insta::assert_snapshot!(stdout,
|
||||||
@r###"
|
@r###"
|
||||||
<<<<<<< Conflict 1 of 1
|
<<<<<<< Conflict 1 of 1
|
||||||
|
@ -117,7 +117,8 @@ fn test_chmod_regular_conflict() {
|
||||||
"###);
|
"###);
|
||||||
|
|
||||||
// Unmatched paths should generate warnings
|
// Unmatched paths should generate warnings
|
||||||
let (_stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["chmod", "x", "nonexistent", "file"]);
|
let (_stdout, stderr) =
|
||||||
|
test_env.jj_cmd_ok(&repo_path, &["file", "chmod", "x", "nonexistent", "file"]);
|
||||||
insta::assert_snapshot!(stderr, @r###"
|
insta::assert_snapshot!(stderr, @r###"
|
||||||
Warning: No matching entries for paths: nonexistent
|
Warning: No matching entries for paths: nonexistent
|
||||||
Working copy now at: yostqsxw e5912d62 conflict | (conflict) conflict
|
Working copy now at: yostqsxw e5912d62 conflict | (conflict) conflict
|
||||||
|
@ -179,7 +180,7 @@ fn test_chmod_file_dir_deletion_conflicts() {
|
||||||
@r###"
|
@r###"
|
||||||
file: Ok(Conflicted([Some(File { id: FileId("78981922613b2afb6025042ff6bd878ac1994e85"), executable: false }), Some(File { id: FileId("df967b96a579e45a18b8251732d16804b2e56a55"), executable: false }), Some(Tree(TreeId("133bb38fc4e4bf6b551f1f04db7e48f04cac2877")))]))
|
file: Ok(Conflicted([Some(File { id: FileId("78981922613b2afb6025042ff6bd878ac1994e85"), executable: false }), Some(File { id: FileId("df967b96a579e45a18b8251732d16804b2e56a55"), executable: false }), Some(Tree(TreeId("133bb38fc4e4bf6b551f1f04db7e48f04cac2877")))]))
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["cat", "-r=file_dir", "file"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "-r=file_dir", "file"]);
|
||||||
insta::assert_snapshot!(stdout,
|
insta::assert_snapshot!(stdout,
|
||||||
@r###"
|
@r###"
|
||||||
Conflict:
|
Conflict:
|
||||||
|
@ -187,7 +188,8 @@ fn test_chmod_file_dir_deletion_conflicts() {
|
||||||
Adding file with id 78981922613b2afb6025042ff6bd878ac1994e85
|
Adding file with id 78981922613b2afb6025042ff6bd878ac1994e85
|
||||||
Adding tree with id 133bb38fc4e4bf6b551f1f04db7e48f04cac2877
|
Adding tree with id 133bb38fc4e4bf6b551f1f04db7e48f04cac2877
|
||||||
"###);
|
"###);
|
||||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["chmod", "x", "file", "-r=file_dir"]);
|
let stderr =
|
||||||
|
test_env.jj_cmd_failure(&repo_path, &["file", "chmod", "x", "file", "-r=file_dir"]);
|
||||||
insta::assert_snapshot!(stderr, @r###"
|
insta::assert_snapshot!(stderr, @r###"
|
||||||
Error: Some of the sides of the conflict are not files at 'file'.
|
Error: Some of the sides of the conflict are not files at 'file'.
|
||||||
"###);
|
"###);
|
||||||
|
@ -198,7 +200,8 @@ fn test_chmod_file_dir_deletion_conflicts() {
|
||||||
@r###"
|
@r###"
|
||||||
file: Ok(Conflicted([Some(File { id: FileId("78981922613b2afb6025042ff6bd878ac1994e85"), executable: false }), Some(File { id: FileId("df967b96a579e45a18b8251732d16804b2e56a55"), executable: false }), None]))
|
file: Ok(Conflicted([Some(File { id: FileId("78981922613b2afb6025042ff6bd878ac1994e85"), executable: false }), Some(File { id: FileId("df967b96a579e45a18b8251732d16804b2e56a55"), executable: false }), None]))
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["cat", "-r=file_deletion", "file"]);
|
let stdout =
|
||||||
|
test_env.jj_cmd_success(&repo_path, &["file", "print", "-r=file_deletion", "file"]);
|
||||||
insta::assert_snapshot!(stdout,
|
insta::assert_snapshot!(stdout,
|
||||||
@r###"
|
@r###"
|
||||||
<<<<<<< Conflict 1 of 1
|
<<<<<<< Conflict 1 of 1
|
||||||
|
@ -208,8 +211,10 @@ fn test_chmod_file_dir_deletion_conflicts() {
|
||||||
-base
|
-base
|
||||||
>>>>>>> Conflict 1 of 1 ends
|
>>>>>>> Conflict 1 of 1 ends
|
||||||
"###);
|
"###);
|
||||||
let (stdout, stderr) =
|
let (stdout, stderr) = test_env.jj_cmd_ok(
|
||||||
test_env.jj_cmd_ok(&repo_path, &["chmod", "x", "file", "-r=file_deletion"]);
|
&repo_path,
|
||||||
|
&["file", "chmod", "x", "file", "-r=file_deletion"],
|
||||||
|
);
|
||||||
insta::assert_snapshot!(stdout, @"");
|
insta::assert_snapshot!(stdout, @"");
|
||||||
insta::assert_snapshot!(stderr, @r###"
|
insta::assert_snapshot!(stderr, @r###"
|
||||||
New conflicts appeared in these commits:
|
New conflicts appeared in these commits:
|
||||||
|
@ -231,7 +236,8 @@ fn test_chmod_file_dir_deletion_conflicts() {
|
||||||
@r###"
|
@r###"
|
||||||
file: Ok(Conflicted([Some(File { id: FileId("78981922613b2afb6025042ff6bd878ac1994e85"), executable: true }), Some(File { id: FileId("df967b96a579e45a18b8251732d16804b2e56a55"), executable: true }), None]))
|
file: Ok(Conflicted([Some(File { id: FileId("78981922613b2afb6025042ff6bd878ac1994e85"), executable: true }), Some(File { id: FileId("df967b96a579e45a18b8251732d16804b2e56a55"), executable: true }), None]))
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["cat", "-r=file_deletion", "file"]);
|
let stdout =
|
||||||
|
test_env.jj_cmd_success(&repo_path, &["file", "print", "-r=file_deletion", "file"]);
|
||||||
insta::assert_snapshot!(stdout,
|
insta::assert_snapshot!(stdout,
|
||||||
@r###"
|
@r###"
|
||||||
<<<<<<< Conflict 1 of 1
|
<<<<<<< Conflict 1 of 1
|
|
@ -15,7 +15,7 @@
|
||||||
use crate::common::TestEnvironment;
|
use crate::common::TestEnvironment;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_cat() {
|
fn test_print() {
|
||||||
let test_env = TestEnvironment::default();
|
let test_env = TestEnvironment::default();
|
||||||
test_env.jj_cmd_ok(test_env.env_root(), &["git", "init", "repo"]);
|
test_env.jj_cmd_ok(test_env.env_root(), &["git", "init", "repo"]);
|
||||||
let repo_path = test_env.env_root().join("repo");
|
let repo_path = test_env.env_root().join("repo");
|
||||||
|
@ -27,19 +27,13 @@ fn test_cat() {
|
||||||
std::fs::write(repo_path.join("dir").join("file2"), "c\n").unwrap();
|
std::fs::write(repo_path.join("dir").join("file2"), "c\n").unwrap();
|
||||||
|
|
||||||
// Can print the contents of a file in a commit
|
// Can print the contents of a file in a commit
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["cat", "file1", "-r", "@-"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1", "-r", "@-"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
a
|
a
|
||||||
"###);
|
"###);
|
||||||
|
|
||||||
// Defaults to printing the working-copy version
|
// Defaults to printing the working-copy version
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["cat", "file1"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
|
||||||
b
|
|
||||||
"###);
|
|
||||||
|
|
||||||
// `print` is an alias for `cat`
|
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1"]);
|
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
b
|
b
|
||||||
"###);
|
"###);
|
||||||
|
@ -50,32 +44,33 @@ fn test_cat() {
|
||||||
} else {
|
} else {
|
||||||
"dir\\file2"
|
"dir\\file2"
|
||||||
};
|
};
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["cat", subdir_file]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", subdir_file]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
c
|
c
|
||||||
"###);
|
"###);
|
||||||
|
|
||||||
// Error if the path doesn't exist
|
// Error if the path doesn't exist
|
||||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["cat", "nonexistent"]);
|
let stderr = test_env.jj_cmd_failure(&repo_path, &["file", "print", "nonexistent"]);
|
||||||
insta::assert_snapshot!(stderr, @r###"
|
insta::assert_snapshot!(stderr, @r###"
|
||||||
Error: No such path: nonexistent
|
Error: No such path: nonexistent
|
||||||
"###);
|
"###);
|
||||||
|
|
||||||
// Can print files under the specified directory
|
// Can print files under the specified directory
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["cat", "dir"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "dir"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
c
|
c
|
||||||
"###);
|
"###);
|
||||||
|
|
||||||
// Can print multiple files
|
// Can print multiple files
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["cat", "."]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "."]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
c
|
c
|
||||||
b
|
b
|
||||||
"###);
|
"###);
|
||||||
|
|
||||||
// Unmatched paths should generate warnings
|
// Unmatched paths should generate warnings
|
||||||
let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["cat", "file1", "non-existent"]);
|
let (stdout, stderr) =
|
||||||
|
test_env.jj_cmd_ok(&repo_path, &["file", "print", "file1", "non-existent"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
b
|
b
|
||||||
"###);
|
"###);
|
||||||
|
@ -87,7 +82,7 @@ fn test_cat() {
|
||||||
test_env.jj_cmd_ok(&repo_path, &["new"]);
|
test_env.jj_cmd_ok(&repo_path, &["new"]);
|
||||||
std::fs::write(repo_path.join("file1"), "c\n").unwrap();
|
std::fs::write(repo_path.join("file1"), "c\n").unwrap();
|
||||||
test_env.jj_cmd_ok(&repo_path, &["rebase", "-r", "@", "-d", "@--"]);
|
test_env.jj_cmd_ok(&repo_path, &["rebase", "-r", "@", "-d", "@--"]);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["cat", "file1"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
<<<<<<< Conflict 1 of 1
|
<<<<<<< Conflict 1 of 1
|
||||||
%%%%%%% Changes from base to side #1
|
%%%%%%% Changes from base to side #1
|
||||||
|
@ -101,7 +96,7 @@ fn test_cat() {
|
||||||
|
|
||||||
#[cfg(unix)]
|
#[cfg(unix)]
|
||||||
#[test]
|
#[test]
|
||||||
fn test_cat_symlink() {
|
fn test_print_symlink() {
|
||||||
let test_env = TestEnvironment::default();
|
let test_env = TestEnvironment::default();
|
||||||
test_env.jj_cmd_ok(test_env.env_root(), &["git", "init", "repo"]);
|
test_env.jj_cmd_ok(test_env.env_root(), &["git", "init", "repo"]);
|
||||||
let repo_path = test_env.env_root().join("repo");
|
let repo_path = test_env.env_root().join("repo");
|
||||||
|
@ -112,7 +107,7 @@ fn test_cat_symlink() {
|
||||||
std::os::unix::fs::symlink("symlink1_target", repo_path.join("symlink1")).unwrap();
|
std::os::unix::fs::symlink("symlink1_target", repo_path.join("symlink1")).unwrap();
|
||||||
|
|
||||||
// Can print multiple files
|
// Can print multiple files
|
||||||
let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["cat", "."]);
|
let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["file", "print", "."]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
c
|
c
|
||||||
a
|
a
|
|
@ -79,9 +79,9 @@ fn test_fix_leaf_commit() {
|
||||||
Parent commit : qpvuntsm fda57e40 (no description set)
|
Parent commit : qpvuntsm fda57e40 (no description set)
|
||||||
Added 0 files, modified 1 files, removed 0 files
|
Added 0 files, modified 1 files, removed 0 files
|
||||||
"###);
|
"###);
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "@-"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "@-"]);
|
||||||
insta::assert_snapshot!(content, @"unaffected");
|
insta::assert_snapshot!(content, @"unaffected");
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "@"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "@"]);
|
||||||
insta::assert_snapshot!(content, @"AFFECTED");
|
insta::assert_snapshot!(content, @"AFFECTED");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,11 +106,11 @@ fn test_fix_parent_commit() {
|
||||||
Parent commit : qpvuntsm 4f4d2103 parent | (no description set)
|
Parent commit : qpvuntsm 4f4d2103 parent | (no description set)
|
||||||
Added 0 files, modified 1 files, removed 0 files
|
Added 0 files, modified 1 files, removed 0 files
|
||||||
"###);
|
"###);
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "parent"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "parent"]);
|
||||||
insta::assert_snapshot!(content, @"PARENT");
|
insta::assert_snapshot!(content, @"PARENT");
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "child1"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "child1"]);
|
||||||
insta::assert_snapshot!(content, @"CHILD1");
|
insta::assert_snapshot!(content, @"CHILD1");
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "child2"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "child2"]);
|
||||||
insta::assert_snapshot!(content, @"CHILD2");
|
insta::assert_snapshot!(content, @"CHILD2");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -131,11 +131,11 @@ fn test_fix_sibling_commit() {
|
||||||
insta::assert_snapshot!(stderr, @r###"
|
insta::assert_snapshot!(stderr, @r###"
|
||||||
Fixed 1 commits of 1 checked.
|
Fixed 1 commits of 1 checked.
|
||||||
"###);
|
"###);
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "parent"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "parent"]);
|
||||||
insta::assert_snapshot!(content, @"parent");
|
insta::assert_snapshot!(content, @"parent");
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "child1"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "child1"]);
|
||||||
insta::assert_snapshot!(content, @"CHILD1");
|
insta::assert_snapshot!(content, @"CHILD1");
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "child2"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "child2"]);
|
||||||
insta::assert_snapshot!(content, @"child2");
|
insta::assert_snapshot!(content, @"child2");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -173,17 +173,17 @@ fn test_default_revset() {
|
||||||
Parent commit : yqosqzyt 4747dd17 bar1 | (no description set)
|
Parent commit : yqosqzyt 4747dd17 bar1 | (no description set)
|
||||||
Added 0 files, modified 1 files, removed 0 files
|
Added 0 files, modified 1 files, removed 0 files
|
||||||
"###);
|
"###);
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "trunk1"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "trunk1"]);
|
||||||
insta::assert_snapshot!(content, @"trunk1");
|
insta::assert_snapshot!(content, @"trunk1");
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "trunk2"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "trunk2"]);
|
||||||
insta::assert_snapshot!(content, @"trunk2");
|
insta::assert_snapshot!(content, @"trunk2");
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "foo"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "foo"]);
|
||||||
insta::assert_snapshot!(content, @"foo");
|
insta::assert_snapshot!(content, @"foo");
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "bar1"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "bar1"]);
|
||||||
insta::assert_snapshot!(content, @"BAR1");
|
insta::assert_snapshot!(content, @"BAR1");
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "bar2"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "bar2"]);
|
||||||
insta::assert_snapshot!(content, @"BAR2");
|
insta::assert_snapshot!(content, @"BAR2");
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "bar3"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "bar3"]);
|
||||||
insta::assert_snapshot!(content, @"BAR3");
|
insta::assert_snapshot!(content, @"BAR3");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -207,9 +207,9 @@ fn test_custom_default_revset() {
|
||||||
insta::assert_snapshot!(stderr, @r###"
|
insta::assert_snapshot!(stderr, @r###"
|
||||||
Fixed 1 commits of 1 checked.
|
Fixed 1 commits of 1 checked.
|
||||||
"###);
|
"###);
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "foo"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "foo"]);
|
||||||
insta::assert_snapshot!(content, @"foo");
|
insta::assert_snapshot!(content, @"foo");
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "bar"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "bar"]);
|
||||||
insta::assert_snapshot!(content, @"BAR");
|
insta::assert_snapshot!(content, @"BAR");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -228,9 +228,10 @@ fn test_fix_immutable_commit() {
|
||||||
Error: Commit 83eee3c8dce2 is immutable
|
Error: Commit 83eee3c8dce2 is immutable
|
||||||
Hint: Pass `--ignore-immutable` or configure the set of immutable commits via `revset-aliases.immutable_heads()`.
|
Hint: Pass `--ignore-immutable` or configure the set of immutable commits via `revset-aliases.immutable_heads()`.
|
||||||
"###);
|
"###);
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "immutable"]);
|
let content =
|
||||||
|
test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "immutable"]);
|
||||||
insta::assert_snapshot!(content, @"immutable");
|
insta::assert_snapshot!(content, @"immutable");
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "mutable"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "mutable"]);
|
||||||
insta::assert_snapshot!(content, @"mutable");
|
insta::assert_snapshot!(content, @"mutable");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -245,7 +246,7 @@ fn test_fix_empty_file() {
|
||||||
Fixed 0 commits of 1 checked.
|
Fixed 0 commits of 1 checked.
|
||||||
Nothing changed.
|
Nothing changed.
|
||||||
"###);
|
"###);
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "@"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "@"]);
|
||||||
insta::assert_snapshot!(content, @"");
|
insta::assert_snapshot!(content, @"");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -263,11 +264,11 @@ fn test_fix_some_paths() {
|
||||||
Parent commit : zzzzzzzz 00000000 (empty) (no description set)
|
Parent commit : zzzzzzzz 00000000 (empty) (no description set)
|
||||||
Added 0 files, modified 1 files, removed 0 files
|
Added 0 files, modified 1 files, removed 0 files
|
||||||
"###);
|
"###);
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file1"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1"]);
|
||||||
insta::assert_snapshot!(content, @r###"
|
insta::assert_snapshot!(content, @r###"
|
||||||
FOO
|
FOO
|
||||||
"###);
|
"###);
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file2"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2"]);
|
||||||
insta::assert_snapshot!(content, @"bar");
|
insta::assert_snapshot!(content, @"bar");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -284,7 +285,7 @@ fn test_fix_cyclic() {
|
||||||
Parent commit : zzzzzzzz 00000000 (empty) (no description set)
|
Parent commit : zzzzzzzz 00000000 (empty) (no description set)
|
||||||
Added 0 files, modified 1 files, removed 0 files
|
Added 0 files, modified 1 files, removed 0 files
|
||||||
"###);
|
"###);
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "@"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "@"]);
|
||||||
insta::assert_snapshot!(content, @"tnetnoc\n");
|
insta::assert_snapshot!(content, @"tnetnoc\n");
|
||||||
|
|
||||||
let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["fix"]);
|
let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["fix"]);
|
||||||
|
@ -295,7 +296,7 @@ fn test_fix_cyclic() {
|
||||||
Parent commit : zzzzzzzz 00000000 (empty) (no description set)
|
Parent commit : zzzzzzzz 00000000 (empty) (no description set)
|
||||||
Added 0 files, modified 1 files, removed 0 files
|
Added 0 files, modified 1 files, removed 0 files
|
||||||
"###);
|
"###);
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "@"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "@"]);
|
||||||
insta::assert_snapshot!(content, @"content\n");
|
insta::assert_snapshot!(content, @"content\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -328,13 +329,13 @@ fn test_deduplication() {
|
||||||
Parent commit : mzvwutvl 90d9a032 c | (empty) (no description set)
|
Parent commit : mzvwutvl 90d9a032 c | (empty) (no description set)
|
||||||
Added 0 files, modified 1 files, removed 0 files
|
Added 0 files, modified 1 files, removed 0 files
|
||||||
"###);
|
"###);
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "a"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "a"]);
|
||||||
insta::assert_snapshot!(content, @"FOO\n");
|
insta::assert_snapshot!(content, @"FOO\n");
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "b"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "b"]);
|
||||||
insta::assert_snapshot!(content, @"BAR\n");
|
insta::assert_snapshot!(content, @"BAR\n");
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "c"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "c"]);
|
||||||
insta::assert_snapshot!(content, @"BAR\n");
|
insta::assert_snapshot!(content, @"BAR\n");
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "d"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "d"]);
|
||||||
insta::assert_snapshot!(content, @"FOO\n");
|
insta::assert_snapshot!(content, @"FOO\n");
|
||||||
|
|
||||||
// Each new content string only appears once in the log, because all the other
|
// Each new content string only appears once in the log, because all the other
|
||||||
|
@ -366,7 +367,7 @@ fn test_executed_but_nothing_changed() {
|
||||||
Fixed 0 commits of 1 checked.
|
Fixed 0 commits of 1 checked.
|
||||||
Nothing changed.
|
Nothing changed.
|
||||||
"###);
|
"###);
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "@"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "@"]);
|
||||||
insta::assert_snapshot!(content, @"content\n");
|
insta::assert_snapshot!(content, @"content\n");
|
||||||
let copy_content = std::fs::read_to_string(repo_path.join("file-copy").as_os_str()).unwrap();
|
let copy_content = std::fs::read_to_string(repo_path.join("file-copy").as_os_str()).unwrap();
|
||||||
insta::assert_snapshot!(copy_content, @"content\n");
|
insta::assert_snapshot!(copy_content, @"content\n");
|
||||||
|
@ -383,7 +384,7 @@ fn test_failure() {
|
||||||
Fixed 0 commits of 1 checked.
|
Fixed 0 commits of 1 checked.
|
||||||
Nothing changed.
|
Nothing changed.
|
||||||
"###);
|
"###);
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "@"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "@"]);
|
||||||
insta::assert_snapshot!(content, @"content");
|
insta::assert_snapshot!(content, @"content");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -403,7 +404,7 @@ fn test_stderr_success() {
|
||||||
Parent commit : zzzzzzzz 00000000 (empty) (no description set)
|
Parent commit : zzzzzzzz 00000000 (empty) (no description set)
|
||||||
Added 0 files, modified 1 files, removed 0 files
|
Added 0 files, modified 1 files, removed 0 files
|
||||||
"###);
|
"###);
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "@"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "@"]);
|
||||||
insta::assert_snapshot!(content, @"new content");
|
insta::assert_snapshot!(content, @"new content");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -419,7 +420,7 @@ fn test_stderr_failure() {
|
||||||
errorFixed 0 commits of 1 checked.
|
errorFixed 0 commits of 1 checked.
|
||||||
Nothing changed.
|
Nothing changed.
|
||||||
"###);
|
"###);
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "@"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "@"]);
|
||||||
insta::assert_snapshot!(content, @"old content");
|
insta::assert_snapshot!(content, @"old content");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -455,7 +456,7 @@ fn test_fix_file_types() {
|
||||||
Parent commit : zzzzzzzz 00000000 (empty) (no description set)
|
Parent commit : zzzzzzzz 00000000 (empty) (no description set)
|
||||||
Added 0 files, modified 1 files, removed 0 files
|
Added 0 files, modified 1 files, removed 0 files
|
||||||
"###);
|
"###);
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "@"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "@"]);
|
||||||
insta::assert_snapshot!(content, @"CONTENT");
|
insta::assert_snapshot!(content, @"CONTENT");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -477,7 +478,7 @@ fn test_fix_executable() {
|
||||||
Parent commit : zzzzzzzz 00000000 (empty) (no description set)
|
Parent commit : zzzzzzzz 00000000 (empty) (no description set)
|
||||||
Added 0 files, modified 1 files, removed 0 files
|
Added 0 files, modified 1 files, removed 0 files
|
||||||
"###);
|
"###);
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "@"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "@"]);
|
||||||
insta::assert_snapshot!(content, @"CONTENT");
|
insta::assert_snapshot!(content, @"CONTENT");
|
||||||
let executable = std::fs::metadata(&path).unwrap().permissions().mode() & 0o111;
|
let executable = std::fs::metadata(&path).unwrap().permissions().mode() & 0o111;
|
||||||
assert_eq!(executable, 0o111);
|
assert_eq!(executable, 0o111);
|
||||||
|
@ -503,11 +504,11 @@ fn test_fix_trivial_merge_commit() {
|
||||||
Fixed 0 commits of 1 checked.
|
Fixed 0 commits of 1 checked.
|
||||||
Nothing changed.
|
Nothing changed.
|
||||||
"###);
|
"###);
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file_a", "-r", "@"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file_a", "-r", "@"]);
|
||||||
insta::assert_snapshot!(content, @"content a");
|
insta::assert_snapshot!(content, @"content a");
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file_b", "-r", "@"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file_b", "-r", "@"]);
|
||||||
insta::assert_snapshot!(content, @"content b");
|
insta::assert_snapshot!(content, @"content b");
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file_c", "-r", "@"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file_c", "-r", "@"]);
|
||||||
insta::assert_snapshot!(content, @"content c");
|
insta::assert_snapshot!(content, @"content c");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -538,13 +539,13 @@ fn test_fix_adding_merge_commit() {
|
||||||
Parent commit : kkmpptxz 82e9bc6a b | (no description set)
|
Parent commit : kkmpptxz 82e9bc6a b | (no description set)
|
||||||
Added 0 files, modified 4 files, removed 0 files
|
Added 0 files, modified 4 files, removed 0 files
|
||||||
"###);
|
"###);
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file_a", "-r", "@"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file_a", "-r", "@"]);
|
||||||
insta::assert_snapshot!(content, @"CHANGE A");
|
insta::assert_snapshot!(content, @"CHANGE A");
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file_b", "-r", "@"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file_b", "-r", "@"]);
|
||||||
insta::assert_snapshot!(content, @"CHANGE B");
|
insta::assert_snapshot!(content, @"CHANGE B");
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file_c", "-r", "@"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file_c", "-r", "@"]);
|
||||||
insta::assert_snapshot!(content, @"CHANGE C");
|
insta::assert_snapshot!(content, @"CHANGE C");
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file_d", "-r", "@"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file_d", "-r", "@"]);
|
||||||
insta::assert_snapshot!(content, @"CHANGE D");
|
insta::assert_snapshot!(content, @"CHANGE D");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -571,15 +572,15 @@ fn test_fix_both_sides_of_conflict() {
|
||||||
There are unresolved conflicts at these paths:
|
There are unresolved conflicts at these paths:
|
||||||
file 2-sided conflict
|
file 2-sided conflict
|
||||||
"###);
|
"###);
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "a"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "a"]);
|
||||||
insta::assert_snapshot!(content, @r###"
|
insta::assert_snapshot!(content, @r###"
|
||||||
CONTENT A
|
CONTENT A
|
||||||
"###);
|
"###);
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "b"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "b"]);
|
||||||
insta::assert_snapshot!(content, @r###"
|
insta::assert_snapshot!(content, @r###"
|
||||||
CONTENT B
|
CONTENT B
|
||||||
"###);
|
"###);
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "@"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "@"]);
|
||||||
insta::assert_snapshot!(content, @r###"
|
insta::assert_snapshot!(content, @r###"
|
||||||
<<<<<<< Conflict 1 of 1
|
<<<<<<< Conflict 1 of 1
|
||||||
%%%%%%% Changes from base to side #1
|
%%%%%%% Changes from base to side #1
|
||||||
|
@ -613,7 +614,7 @@ fn test_fix_resolve_conflict() {
|
||||||
Parent commit : kkmpptxz 82703f5e b | (no description set)
|
Parent commit : kkmpptxz 82703f5e b | (no description set)
|
||||||
Added 0 files, modified 1 files, removed 0 files
|
Added 0 files, modified 1 files, removed 0 files
|
||||||
"###);
|
"###);
|
||||||
let content = test_env.jj_cmd_success(&repo_path, &["print", "file", "-r", "@"]);
|
let content = test_env.jj_cmd_success(&repo_path, &["file", "print", "file", "-r", "@"]);
|
||||||
insta::assert_snapshot!(content, @r###"
|
insta::assert_snapshot!(content, @r###"
|
||||||
CONTENT
|
CONTENT
|
||||||
"###);
|
"###);
|
||||||
|
|
|
@ -236,7 +236,7 @@ fn test_bad_path() {
|
||||||
test_env.add_config("ui.allow-filesets = true");
|
test_env.add_config("ui.allow-filesets = true");
|
||||||
|
|
||||||
// cwd == workspace_root
|
// cwd == workspace_root
|
||||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["cat", "../out"]);
|
let stderr = test_env.jj_cmd_failure(&repo_path, &["file", "print", "../out"]);
|
||||||
insta::assert_snapshot!(stderr.replace('\\', "/"), @r###"
|
insta::assert_snapshot!(stderr.replace('\\', "/"), @r###"
|
||||||
Error: Failed to parse fileset: Invalid file pattern
|
Error: Failed to parse fileset: Invalid file pattern
|
||||||
Caused by:
|
Caused by:
|
||||||
|
@ -251,7 +251,7 @@ fn test_bad_path() {
|
||||||
"###);
|
"###);
|
||||||
|
|
||||||
// cwd != workspace_root, can't be parsed as repo-relative path
|
// cwd != workspace_root, can't be parsed as repo-relative path
|
||||||
let stderr = test_env.jj_cmd_failure(&subdir, &["cat", "../.."]);
|
let stderr = test_env.jj_cmd_failure(&subdir, &["file", "print", "../.."]);
|
||||||
insta::assert_snapshot!(stderr.replace('\\', "/"), @r###"
|
insta::assert_snapshot!(stderr.replace('\\', "/"), @r###"
|
||||||
Error: Failed to parse fileset: Invalid file pattern
|
Error: Failed to parse fileset: Invalid file pattern
|
||||||
Caused by:
|
Caused by:
|
||||||
|
@ -266,7 +266,7 @@ fn test_bad_path() {
|
||||||
"###);
|
"###);
|
||||||
|
|
||||||
// cwd != workspace_root, can be parsed as repo-relative path
|
// cwd != workspace_root, can be parsed as repo-relative path
|
||||||
let stderr = test_env.jj_cmd_failure(test_env.env_root(), &["cat", "-Rrepo", "out"]);
|
let stderr = test_env.jj_cmd_failure(test_env.env_root(), &["file", "print", "-Rrepo", "out"]);
|
||||||
insta::assert_snapshot!(stderr.replace('\\', "/"), @r###"
|
insta::assert_snapshot!(stderr.replace('\\', "/"), @r###"
|
||||||
Error: Failed to parse fileset: Invalid file pattern
|
Error: Failed to parse fileset: Invalid file pattern
|
||||||
Caused by:
|
Caused by:
|
||||||
|
@ -284,7 +284,7 @@ fn test_bad_path() {
|
||||||
test_env.add_config("ui.allow-filesets = false");
|
test_env.add_config("ui.allow-filesets = false");
|
||||||
|
|
||||||
// If fileset/pattern syntax is disabled, no hint should be generated
|
// If fileset/pattern syntax is disabled, no hint should be generated
|
||||||
let stderr = test_env.jj_cmd_failure(test_env.env_root(), &["cat", "-Rrepo", "out"]);
|
let stderr = test_env.jj_cmd_failure(test_env.env_root(), &["file", "print", "-Rrepo", "out"]);
|
||||||
insta::assert_snapshot!(stderr.replace('\\', "/"), @r###"
|
insta::assert_snapshot!(stderr.replace('\\', "/"), @r###"
|
||||||
Error: Path "out" is not in the repo "repo"
|
Error: Path "out" is not in the repo "repo"
|
||||||
Caused by: Invalid component ".." in repo-relative path "../out"
|
Caused by: Invalid component ".." in repo-relative path "../out"
|
||||||
|
|
|
@ -204,7 +204,7 @@ fn test_rewrite_immutable_commands() {
|
||||||
Hint: Pass `--ignore-immutable` or configure the set of immutable commits via `revset-aliases.immutable_heads()`.
|
Hint: Pass `--ignore-immutable` or configure the set of immutable commits via `revset-aliases.immutable_heads()`.
|
||||||
"###);
|
"###);
|
||||||
// chmod
|
// chmod
|
||||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["chmod", "-r=main", "x", "file"]);
|
let stderr = test_env.jj_cmd_failure(&repo_path, &["file", "chmod", "-r=main", "x", "file"]);
|
||||||
insta::assert_snapshot!(stderr, @r###"
|
insta::assert_snapshot!(stderr, @r###"
|
||||||
Error: Commit 3e0250828ca5 is immutable
|
Error: Commit 3e0250828ca5 is immutable
|
||||||
Hint: Pass `--ignore-immutable` or configure the set of immutable commits via `revset-aliases.immutable_heads()`.
|
Hint: Pass `--ignore-immutable` or configure the set of immutable commits via `revset-aliases.immutable_heads()`.
|
||||||
|
|
|
@ -103,12 +103,12 @@ fn test_move() {
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
// The change from the source has been applied
|
// The change from the source has been applied
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
c
|
c
|
||||||
"###);
|
"###);
|
||||||
// File `file2`, which was not changed in source, is unchanged
|
// File `file2`, which was not changed in source, is unchanged
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file2"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
f
|
f
|
||||||
"###);
|
"###);
|
||||||
|
@ -136,7 +136,7 @@ fn test_move() {
|
||||||
"###);
|
"###);
|
||||||
// The change from the source has been applied (the file contents were already
|
// The change from the source has been applied (the file contents were already
|
||||||
// "f", as is typically the case when moving changes from an ancestor)
|
// "f", as is typically the case when moving changes from an ancestor)
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file2"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
f
|
f
|
||||||
"###);
|
"###);
|
||||||
|
@ -164,7 +164,7 @@ fn test_move() {
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
// The change from the source has been applied
|
// The change from the source has been applied
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file2", "-r", "d"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2", "-r", "d"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
e
|
e
|
||||||
"###);
|
"###);
|
||||||
|
@ -227,16 +227,16 @@ fn test_move_partial() {
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
// The changes from the source has been applied
|
// The changes from the source has been applied
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
c
|
c
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file2"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
c
|
c
|
||||||
"###);
|
"###);
|
||||||
// File `file3`, which was not changed in source, is unchanged
|
// File `file3`, which was not changed in source, is unchanged
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file3"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file3"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
d
|
d
|
||||||
"###);
|
"###);
|
||||||
|
@ -262,17 +262,17 @@ fn test_move_partial() {
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
// The selected change from the source has been applied
|
// The selected change from the source has been applied
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
c
|
c
|
||||||
"###);
|
"###);
|
||||||
// The unselected change from the source has not been applied
|
// The unselected change from the source has not been applied
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file2"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
a
|
a
|
||||||
"###);
|
"###);
|
||||||
// File `file3`, which was changed in source's parent, is unchanged
|
// File `file3`, which was changed in source's parent, is unchanged
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file3"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file3"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
d
|
d
|
||||||
"###);
|
"###);
|
||||||
|
@ -299,17 +299,17 @@ fn test_move_partial() {
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
// The selected change from the source has been applied
|
// The selected change from the source has been applied
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
c
|
c
|
||||||
"###);
|
"###);
|
||||||
// The unselected change from the source has not been applied
|
// The unselected change from the source has not been applied
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file2"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
a
|
a
|
||||||
"###);
|
"###);
|
||||||
// File `file3`, which was changed in source's parent, is unchanged
|
// File `file3`, which was changed in source's parent, is unchanged
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file3"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file3"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
d
|
d
|
||||||
"###);
|
"###);
|
||||||
|
@ -335,12 +335,12 @@ fn test_move_partial() {
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
// The selected change from the source has been applied
|
// The selected change from the source has been applied
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1", "-r", "b"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1", "-r", "b"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
c
|
c
|
||||||
"###);
|
"###);
|
||||||
// The unselected change from the source has not been applied
|
// The unselected change from the source has not been applied
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file2", "-r", "b"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2", "-r", "b"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
a
|
a
|
||||||
"###);
|
"###);
|
||||||
|
|
|
@ -85,9 +85,9 @@ fn test_new_merge() {
|
||||||
├─╯
|
├─╯
|
||||||
◉ 0000000000000000000000000000000000000000
|
◉ 0000000000000000000000000000000000000000
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1"]);
|
||||||
insta::assert_snapshot!(stdout, @"a");
|
insta::assert_snapshot!(stdout, @"a");
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file2"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2"]);
|
||||||
insta::assert_snapshot!(stdout, @"b");
|
insta::assert_snapshot!(stdout, @"b");
|
||||||
|
|
||||||
// Same test with `--no-edit`
|
// Same test with `--no-edit`
|
||||||
|
|
|
@ -51,7 +51,7 @@ fn test_squash() {
|
||||||
◉ 90aeefd03044 a
|
◉ 90aeefd03044 a
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
c
|
c
|
||||||
"###);
|
"###);
|
||||||
|
@ -70,11 +70,11 @@ fn test_squash() {
|
||||||
◉ 893c93ae2a87 a b
|
◉ 893c93ae2a87 a b
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1", "-r", "b"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1", "-r", "b"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
b
|
b
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
c
|
c
|
||||||
"###);
|
"###);
|
||||||
|
@ -123,7 +123,7 @@ fn test_squash() {
|
||||||
◉ 90aeefd03044 a
|
◉ 90aeefd03044 a
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1", "-r", "e"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1", "-r", "e"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
e
|
e
|
||||||
"###);
|
"###);
|
||||||
|
@ -169,7 +169,7 @@ fn test_squash_partial() {
|
||||||
◉ c9f931cd78af a b
|
◉ c9f931cd78af a b
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1", "-r", "a"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1", "-r", "a"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
b
|
b
|
||||||
"###);
|
"###);
|
||||||
|
@ -190,19 +190,19 @@ fn test_squash_partial() {
|
||||||
◉ 0c5ddc685260 a
|
◉ 0c5ddc685260 a
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1", "-r", "a"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1", "-r", "a"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
a
|
a
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file2", "-r", "a"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2", "-r", "a"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
b
|
b
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1", "-r", "b"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1", "-r", "b"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
b
|
b
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file2", "-r", "b"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2", "-r", "b"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
b
|
b
|
||||||
"###);
|
"###);
|
||||||
|
@ -224,19 +224,19 @@ fn test_squash_partial() {
|
||||||
◉ 70621f4c7a42 a
|
◉ 70621f4c7a42 a
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1", "-r", "a"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1", "-r", "a"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
a
|
a
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file2", "-r", "a"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2", "-r", "a"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
b
|
b
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1", "-r", "b"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1", "-r", "b"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
b
|
b
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file2", "-r", "b"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2", "-r", "b"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
b
|
b
|
||||||
"###);
|
"###);
|
||||||
|
@ -332,12 +332,12 @@ fn test_squash_from_to() {
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
// The change from the source has been applied
|
// The change from the source has been applied
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
c
|
c
|
||||||
"###);
|
"###);
|
||||||
// File `file2`, which was not changed in source, is unchanged
|
// File `file2`, which was not changed in source, is unchanged
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file2"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
f
|
f
|
||||||
"###);
|
"###);
|
||||||
|
@ -363,7 +363,7 @@ fn test_squash_from_to() {
|
||||||
"###);
|
"###);
|
||||||
// The change from the source has been applied (the file contents were already
|
// The change from the source has been applied (the file contents were already
|
||||||
// "f", as is typically the case when moving changes from an ancestor)
|
// "f", as is typically the case when moving changes from an ancestor)
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file2"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
f
|
f
|
||||||
"###);
|
"###);
|
||||||
|
@ -390,7 +390,7 @@ fn test_squash_from_to() {
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
// The change from the source has been applied
|
// The change from the source has been applied
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file2", "-r", "d"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2", "-r", "d"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
e
|
e
|
||||||
"###);
|
"###);
|
||||||
|
@ -451,16 +451,16 @@ fn test_squash_from_to_partial() {
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
// The changes from the source has been applied
|
// The changes from the source has been applied
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
c
|
c
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file2"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
c
|
c
|
||||||
"###);
|
"###);
|
||||||
// File `file3`, which was not changed in source, is unchanged
|
// File `file3`, which was not changed in source, is unchanged
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file3"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file3"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
d
|
d
|
||||||
"###);
|
"###);
|
||||||
|
@ -484,17 +484,17 @@ fn test_squash_from_to_partial() {
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
// The selected change from the source has been applied
|
// The selected change from the source has been applied
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
c
|
c
|
||||||
"###);
|
"###);
|
||||||
// The unselected change from the source has not been applied
|
// The unselected change from the source has not been applied
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file2"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
a
|
a
|
||||||
"###);
|
"###);
|
||||||
// File `file3`, which was changed in source's parent, is unchanged
|
// File `file3`, which was changed in source's parent, is unchanged
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file3"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file3"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
d
|
d
|
||||||
"###);
|
"###);
|
||||||
|
@ -519,17 +519,17 @@ fn test_squash_from_to_partial() {
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
// The selected change from the source has been applied
|
// The selected change from the source has been applied
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
c
|
c
|
||||||
"###);
|
"###);
|
||||||
// The unselected change from the source has not been applied
|
// The unselected change from the source has not been applied
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file2"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
a
|
a
|
||||||
"###);
|
"###);
|
||||||
// File `file3`, which was changed in source's parent, is unchanged
|
// File `file3`, which was changed in source's parent, is unchanged
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file3"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file3"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
d
|
d
|
||||||
"###);
|
"###);
|
||||||
|
@ -555,12 +555,12 @@ fn test_squash_from_to_partial() {
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
// The selected change from the source has been applied
|
// The selected change from the source has been applied
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1", "-r", "b"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1", "-r", "b"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
c
|
c
|
||||||
"###);
|
"###);
|
||||||
// The unselected change from the source has not been applied
|
// The unselected change from the source has not been applied
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file2", "-r", "b"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2", "-r", "b"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
a
|
a
|
||||||
"###);
|
"###);
|
||||||
|
@ -647,7 +647,7 @@ fn test_squash_from_multiple() {
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
// The changes from the sources have been applied
|
// The changes from the sources have been applied
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "-r=d", "file"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "-r=d", "file"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
<<<<<<< Conflict 1 of 1
|
<<<<<<< Conflict 1 of 1
|
||||||
%%%%%%% Changes from base #1 to side #1
|
%%%%%%% Changes from base #1 to side #1
|
||||||
|
@ -680,7 +680,7 @@ fn test_squash_from_multiple() {
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
// The changes from the sources have been applied to the destination
|
// The changes from the sources have been applied to the destination
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "-r=e", "file"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "-r=e", "file"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
f
|
f
|
||||||
"###);
|
"###);
|
||||||
|
@ -775,16 +775,16 @@ fn test_squash_from_multiple_partial() {
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
// The selected changes have been removed from the sources
|
// The selected changes have been removed from the sources
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "-r=b", "file1"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "-r=b", "file1"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
a
|
a
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "-r=c", "file1"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "-r=c", "file1"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
a
|
a
|
||||||
"###);
|
"###);
|
||||||
// The selected changes from the sources have been applied
|
// The selected changes from the sources have been applied
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "-r=d", "file1"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "-r=d", "file1"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
<<<<<<< Conflict 1 of 1
|
<<<<<<< Conflict 1 of 1
|
||||||
%%%%%%% Changes from base #1 to side #1
|
%%%%%%% Changes from base #1 to side #1
|
||||||
|
@ -799,7 +799,7 @@ fn test_squash_from_multiple_partial() {
|
||||||
"###);
|
"###);
|
||||||
// The unselected change from the sources have not been applied to the
|
// The unselected change from the sources have not been applied to the
|
||||||
// destination
|
// destination
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "-r=d", "file2"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "-r=d", "file2"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
d
|
d
|
||||||
"###);
|
"###);
|
||||||
|
@ -827,25 +827,25 @@ fn test_squash_from_multiple_partial() {
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
// The selected changes have been removed from the sources
|
// The selected changes have been removed from the sources
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "-r=b", "file1"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "-r=b", "file1"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
a
|
a
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "-r=c", "file1"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "-r=c", "file1"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
a
|
a
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "-r=f", "file1"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "-r=f", "file1"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
f
|
f
|
||||||
"###);
|
"###);
|
||||||
// The selected changes from the sources have been applied to the destination
|
// The selected changes from the sources have been applied to the destination
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "-r=e", "file1"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "-r=e", "file1"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
f
|
f
|
||||||
"###);
|
"###);
|
||||||
// The unselected changes from the sources have not been applied
|
// The unselected changes from the sources have not been applied
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "-r=d", "file2"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "-r=d", "file2"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
d
|
d
|
||||||
"###);
|
"###);
|
||||||
|
|
|
@ -50,7 +50,7 @@ fn test_unsquash() {
|
||||||
◉ 90aeefd03044 a b
|
◉ 90aeefd03044 a b
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
c
|
c
|
||||||
"###);
|
"###);
|
||||||
|
@ -69,11 +69,11 @@ fn test_unsquash() {
|
||||||
◉ 9146bcc8d996 b
|
◉ 9146bcc8d996 b
|
||||||
◉ 000000000000 a
|
◉ 000000000000 a
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1", "-r", "b"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1", "-r", "b"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
b
|
b
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
c
|
c
|
||||||
"###);
|
"###);
|
||||||
|
@ -122,7 +122,7 @@ fn test_unsquash() {
|
||||||
◉ 90aeefd03044 a
|
◉ 90aeefd03044 a
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
e
|
e
|
||||||
"###);
|
"###);
|
||||||
|
@ -169,7 +169,7 @@ fn test_unsquash_partial() {
|
||||||
◉ ee67504598b6 a
|
◉ ee67504598b6 a
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1", "-r", "a"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1", "-r", "a"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
a
|
a
|
||||||
"###);
|
"###);
|
||||||
|
@ -189,19 +189,19 @@ fn test_unsquash_partial() {
|
||||||
◉ 47a1e795d146 a
|
◉ 47a1e795d146 a
|
||||||
◉ 000000000000
|
◉ 000000000000
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1", "-r", "b"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1", "-r", "b"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
a
|
a
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file2", "-r", "b"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2", "-r", "b"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
b
|
b
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1", "-r", "c"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1", "-r", "c"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
c
|
c
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file2", "-r", "c"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2", "-r", "c"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
c
|
c
|
||||||
"###);
|
"###);
|
||||||
|
@ -221,19 +221,19 @@ fn test_unsquash_partial() {
|
||||||
Working copy now at: mzvwutvl 1c82d27c c | (no description set)
|
Working copy now at: mzvwutvl 1c82d27c c | (no description set)
|
||||||
Parent commit : kkmpptxz b9d23fd8 b | (no description set)
|
Parent commit : kkmpptxz b9d23fd8 b | (no description set)
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1", "-r", "b"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1", "-r", "b"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
a
|
a
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file2", "-r", "b"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2", "-r", "b"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
b
|
b
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file1", "-r", "c"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file1", "-r", "c"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
c
|
c
|
||||||
"###);
|
"###);
|
||||||
let stdout = test_env.jj_cmd_success(&repo_path, &["print", "file2", "-r", "c"]);
|
let stdout = test_env.jj_cmd_success(&repo_path, &["file", "print", "file2", "-r", "c"]);
|
||||||
insta::assert_snapshot!(stdout, @r###"
|
insta::assert_snapshot!(stdout, @r###"
|
||||||
c
|
c
|
||||||
"###);
|
"###);
|
||||||
|
|
Loading…
Reference in a new issue