jj/cli/tests
Martin von Zweigbergk 81e9ba3d51 workspace: make recovery commit empty instead of deleting everything
The recovery commit we create when we run into a stale working copy
with a missing operation currently has an empty tree. Our commit
backend at Google creates an index of which files changed in each
commit. That gets really expensive when a commit deletes all files in
the repo, as these recovery commits do. So for our backend, it is much
better to make the recovery commit empty instead. That's what this
patch does.

It almost doesn't matter functionally what tree we use for it since we
don't care much about the current tree when snapshotting the working
copy. It does matter in a few cases, however. One case is for
conflicts. In that case, it's likely better to use the recovery
commit's parent as base tree (as we do by making the recovery commit
empty) than to use an empty tree, as that would guarantee that all
conflicts would be considered resolved. (Side note: perhaps we should
start looking at the current commit's parent instead of looking at the
current commit when snapshotting, but that's a topic for another day.)
2024-02-27 06:45:25 -08:00
..
common compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
cli-reference@.md.snap cli: document that we create a new working-copy commit for abandoned one 2024-02-25 18:52:10 -08:00
runner.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_abandon_command.rs rewrite: default to not simplifying ancestor merges 2024-02-19 14:20:18 -08:00
test_alias.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_branch_command.rs cli branch list: list tracked branches 2024-02-26 01:05:07 +00:00
test_builtin_aliases.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_cat_command.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_checkout.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_chmod_command.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_commit_command.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_commit_template.rs templater: add a local() method on Timestamps (#2900) 2024-02-12 10:22:24 -08:00
test_concurrent_operations.rs op_store: add metadata flag for ops representing working-copy snapshot 2024-02-19 22:44:38 -08:00
test_config_command.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_debug_command.rs op_store: add metadata flag for ops representing working-copy snapshot 2024-02-19 22:44:38 -08:00
test_describe_command.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_diff_command.rs cli: rename --verbose to --debug to better fit what it does 2024-02-18 18:45:48 +01:00
test_diffedit_command.rs cli: rename --verbose to --debug to better fit what it does 2024-02-18 18:45:48 +01:00
test_duplicate_command.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_edit_command.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_generate_md_cli_help.rs docs, CLI reference: use include-markdown instead of a symlink 2024-02-12 10:28:09 -08:00
test_git_clone.rs cli: list new remote branches during git fetch 2024-02-18 17:36:01 +01:00
test_git_colocated.rs cli: list new remote branches during git fetch 2024-02-18 17:36:01 +01:00
test_git_fetch.rs cli: list new remote branches during git fetch 2024-02-18 17:36:01 +01:00
test_git_import_export.rs cli: list new remote branches during git fetch 2024-02-18 17:36:01 +01:00
test_git_init.rs cli: rename --colocated flag of "jj git init" to --colocate (verb) 2024-02-07 09:12:24 -08:00
test_git_push.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_git_remotes.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_git_submodule.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_gitignores.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_global_opts.rs cli: rename --verbose to --debug to better fit what it does 2024-02-18 18:45:48 +01:00
test_immutable_commits.rs cli: change default log revset to not include all tagged heads 2024-02-23 00:25:58 +09:00
test_init_command.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_interdiff_command.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_log_command.rs index: switch to persistent change id index 2024-02-18 09:44:57 +09:00
test_move_command.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_new_command.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_next_prev_commands.rs next/prev: make --edit implied when already on non-head commit 2024-02-12 10:42:26 -08:00
test_obslog_command.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_operations.rs op_store: add metadata flag for ops representing working-copy snapshot 2024-02-19 22:44:38 -08:00
test_rebase_command.rs cli: make rebase --skip-empty keep already empty commits 2024-02-25 16:39:05 -08:00
test_repo_change_report.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_resolve_command.rs cli: rename --verbose to --debug to better fit what it does 2024-02-18 18:45:48 +01:00
test_restore_command.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_revset_output.rs revset: disable parsing rules of legacy dag range operator 2024-02-14 10:04:56 +09:00
test_root.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_shell_completion.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_show_command.rs cli: make jj show accept a template to render its output 2024-02-10 21:54:52 +05:00
test_sparse_command.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_split_command.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_squash_command.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_status_command.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_tag_command.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_templater.rs templater: retain "++" in parsed tree to provide better error indication 2024-02-09 07:42:54 +09:00
test_tree_level_conflicts.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_undo.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_unsquash_command.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_untrack_command.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_util_command.rs op_store: add metadata flag for ops representing working-copy snapshot 2024-02-19 22:44:38 -08:00
test_working_copy.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_workspaces.rs workspace: make recovery commit empty instead of deleting everything 2024-02-27 06:45:25 -08:00