## jj-vcs/jj — v0.43.0…v0.44.0

_123 commits._

### Features
- **changelog: Add issue link** (fea7ceb)
- **absorb: add `--tool` support** (7eb9174)
- **absorb: add `-i` / `--interactive` flag** (9753a6a)
- **templater: add try(expr, fallback...) function to suppress runtime errors** (32bfcf3)
- **cli: add option to limit diff stat bar width** (9f9e3e9)
- **run: Add --ignore-errors option** (6671773)
- **run: Add --ignore-changes option** (dd950ab)
- **cli: create new mutable working-copy commit proactively at tx.finish()** (2932844)
- **lib: Implement TruncatedEvolutionGraph::new** (4d3bcdf)
- **lib: New converge.rs library with functionality for jj converge CLI** (c37aa26)
- **file-search: add --line-number/-n flag** (9e297fa)
- **git clone: add argument to specify object hash** (405ada3)
- **git: implement initial SHA-256 support** (d4562a4)
- **run: add --passthrough flag to pass through the terminal to the subprocess** (60e0fbf)
- **lib: add test_merge_operations_deep_criss_cross** (150f64d)
- **cli: Add workspace list root template** (fb2b974)
- **templates: Add FsPath template type** (db49e5f)
- **logging: Add trailing periods in log messages** (d6c4fa8)
- **lib: add find_dominator_value_with_value_cache method** (d091668)
- **file_util: add tests for relative_path()** (7110690)
- **meta: add Emily and Stephen to the maintainer list** (a71e46f)
- **revset: add merge_point function** (940bb25)
- **cli: add test for default command set to alias** (06b4e9e)

### Fixes
- **dependabot: Fix npm manifest directory to adjust commit messages prefix** (a3f4531)
- **cli: fix panic when passing overly-large length parameters to ID templaters** (a133ec4)
- **cargo: update dependencies to fix cargo-deny error** (393741c)
- **format: Fix stray whitespace in doc comment block** (2d4cf94)
- **cli: fix false-positives in recursive alias detection** (e81ddd5)

### Backend
- **release: 0.44.0** (af45d57)
- **cli: git: ignore explicit import/export requests in colocated workspace** (3b7e069)
- **cli: git: disable export/fetch/push --no-integrate-operation** (10a93dd)
- **cargo: downgrade gix-ignore to 0.21.0** (6b27ec8)
- **index: make heads() method async** (8e262ec)
- **github: bump the github-dependencies group with 2 updates** (91fc487)
- **local_working_copy: skip paths that aren't valid UTF-8** (54c4b49)
- **cargo: bump the cargo-dependencies group with 5 updates** (5adc319)
- **repo: move `StoreFactories::default()` etc. to separate module** (3a650c3)
- **repo: make `MutableRepo.consume()` public** (899654f)
- **templater: remove redundant inner boxing from json(if(...))** (0203636)
- **cli: tag: implement track/untrack subcommands** (72cd8f8)
- **cli: revert bookmark track/untrack hints to name@remote syntax** (50b7279)
- **cli: remove dummy git_util module, inline conditional blocks** (60b05d2)
- **cli: acquire Git import/export lock early, remove unneeded op head reloading** (6c6b572)
- **cli: move lock_git_import_export() helper to WorkspaceCommandEnvironment** (767bb22)
- **cli: leverage workspace_helper_with_status() in "util snapshot"** (4dd0fae)
- **cli: extract inner function from recover_stale_working_copy()** (28be60a)
- **cli: split workspace_helper_no_snapshot(), reuse loaded workspace if any** (8d3621e)
- **npm: bump the npm-dependencies group in /web/docs with 7 updates** (27d0bd1)
- **cargo: bump the cargo-dependencies group across 1 directory with 18 updates** (7647fad)
- **github: bump the github-dependencies group with 3 updates** (6a591f0)
- **index: make is_ancestor() async** (0611254)
- **revset: make `ContainingFn` async** (4342837)
- **iter_util: make all fallible_*() async** (2daed5c)
- **bookmarks: replace iterator chains by for loop to prepare for async** (eb1960d)
- **repo: Move the head normalization logic into View** (868df89)
- **colocation: report proper error when enabling is unsupported** (6bacc36)
- **cli: include tracked tag state in git fetch stats** (f0c8086)
- **cli: complete workspace working-copy symbols as revisions** (504187c)
- **github: bump the github-dependencies group with 5 updates** (29e2ad8)
- **cli: allow repeating arguments** (5b48bec)
- **cli: test --ignore-working-copy flag by callers of maybe_snapshot_impl()** (c12c3bc)
- **cli: manage Git colocation flag by WorkspaceCommandEnvironment** (cc6cf25)
- **cli: remove redundant repo argument from is_colocated_git_workspace()** (acf0374)
- **cli: pass may_snapshot_working_copy from CommandHelper** (57c8760)
- **run: preserve conflicts instead of panicking on conflicted commits** (732bbc0)
- **copies: keep renames detected against multiple merge parents** (b4d6348)
- **revsets: extract default log revset to `builtin_log()`** (9977ef0)
- **cli: show workspace roots in workspace list** (f296bc3)
- **git: permit pushing conflicted commits** (7283d02)
- **secure_config: don't assume config file exists when copying from old repo** (74ed795)
- **github: bump the github-dependencies group across 1 directory with 8 updates** (2e5b4be)
- **cargo: bump the cargo-dependencies group with 4 updates** (013d1a8)
- **revset: propagate error from is_empty(), replace .try_next().is_some()** (4e55a6c)
- **cli: reset Git HEAD to parent of newly created working-copy snapshot** (b51edf0)
- **store: Use NonZeroUsize instead of usize for TREE_CACHE_CAPACITY** (651f355)
- **run: avoid unnecessary wrapping of commits in Arc for run_inner()** (3fd40b8)
- **lib: Implement converge_trees** (104fab6)
- **lib: Implement converge_parents** (92231a3)
- **lib: converge.rs: implement create_value_merge** (2f45473)
- **file-search: print matched lines instead of just paths** (ce9d532)
- **git, tests: run tests with sha1 and sha256 repos** (58081dd)
- **git init: allow setting the object hash format** (40d58b9)
- **store: Use NonZeroUsize instead of usize for COMMIT_CACHE_CAPACITY** (b83dc5d)
- **transaction: move rebase_descendants() back to callers of merge_operation()** (3efc18b)
- **cli: clean up gix temporaries on SIGINT/SIGTERM/SIGHUP** (30c5071)
- **doc: Diff editors should only modify right directory** (5ad0f7d)
- **run: process oldest commits first by default** (d68ed07)
- **run: start jobs in order** (6d5e01e)
- **lib/cli: bring back cli_util start_repo_transaction** (f2acc3e)
- **lib: make RepoLoader::merge_operations non-recursive** (8bceff4)
- **lib: more versatile merge_operations, use it more broadly in CLI** (34c044d)
- **cli: move start_repo_transaction factory method from cli_util to Transaction** (fac2d7d)
- **git: use named fields for imported ref updates** (1059a90)
- **templater: make config path return Option<PathBuf> instead of String** (744a008)
- **templater: make RepoPath::absolute() return PathBuf instead of String** (09e0cd2)
- **git: remove workaround for local tags created by "git fetch"** (e50ac0b)
- **git: remove FetchTagsOverride and --fetch-tags flag** (4280652)
- **cli: push untracked tags by "jj git push --all"** (7d39d2f)
- **git: fetch tags as remote tags, disable implicit tag fetching globally** (f5dfb98)
- **templates: Return optional workspace roots** (84e70ea)
- **cli: resolve default command during alias resolution** (af0521c)
- **logging: Remove trailing periods in some log messages** (badd164)
- **cli: make print_large_file_hint use shell_quote helper** (e49fc32)
- **git init: use shlex::try_quote on remote names in bookmark hints** (8ef966f)
- **run: show colored commit summary in error message** (8eb7a6c)
- **annotate: use memchr to speed up line counting** (7b8f298)
- **remotes: suppress spurious trunk() warning** (cc95c87)
- **styleguide: Say that we prefer `collect_vec()` and `try_collect()` from Itertools over bare `.collect()` calls** (88c3cd0)
- **contributing: Make it clear that we prefer branches directly in the repo instead of the usual GitHub flow** (c475477)
- **github: disable caching of setup-uv action** (8844415)
- **file_util: reimplement relative_path() to compare common prefix from root** (4d05728)
- **paid_contributors: move martinvonz from Google to ERSC** (892c16e)
- **flake: build jujutsu against the consumer's nixpkgs in the overlay** (925c9a4)
- **cli: refactor resolve_aliases to reduce nesting** (12c420a)
- **tests: switch `bash` to `sh` in `test_run_shell_command`** (b32e4c3)

### Docs
- **docs: fix misplaced changelog entry of jj absorb -i, combine --tool** (bdfcaa7)
- **docs: Fix CLI reference TOC** (19561b3)
- **docs: fix conflict resolution error in changelog** (fd3fdb0)
- **docs: add author date / committer date entries to glossary** (c555f54)
- **docs: unhide remote tag options, update "jj git push" help** (1a071f6)
- **docs(templating): fix code blocks** (e30d00f)
- **docs: more precise documentation of reachable(srcs, domain).** (cbe9e5b)
- **docs: copy restriction on fetch-bookmarks/tags patterns from command help** (f5eff50)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/jj-vcs/jj?utm_source=github-action)._