docs/cli: update URLs to from martinvonz user to jj-vcs org

We just migrated to the jj-vcs GitHub org, so we should point to the
new GitHub URLs.
This commit is contained in:
Martin von Zweigbergk 2024-12-17 11:01:42 -08:00 committed by Martin von Zweigbergk
parent 867e204d91
commit b836e0ae95
95 changed files with 531 additions and 531 deletions

View File

@ -10,7 +10,7 @@ assignees: ''
## Description ## Description
<!-- Thanks for your report! Please describe your problem or request here. <!-- Thanks for your report! Please describe your problem or request here.
For questions, use https://github.com/martinvonz/jj/discussions/new instead. For questions, use https://github.com/jj-vcs/jj/discussions/new instead.
Feel free to remove any of the sections below if they don't seem useful. --> Feel free to remove any of the sections below if they don't seem useful. -->

View File

@ -5,7 +5,7 @@ each commit representing one logical change. Address code review comments by
rewriting the commits rather than adding commits on top. Use force-push when rewriting the commits rather than adding commits on top. Use force-push when
pushing the updated commits (`jj git push` does that automatically when you pushing the updated commits (`jj git push` does that automatically when you
rewrite commits). Merge the PR at will once it's been approved. See rewrite commits). Merge the PR at will once it's been approved. See
https://github.com/martinvonz/jj/blob/main/docs/contributing.md for details. https://github.com/jj-vcs/jj/blob/main/docs/contributing.md for details.
Note that you need to sign Google's CLA to contribute. Note that you need to sign Google's CLA to contribute.
--> -->

View File

@ -2,7 +2,7 @@
# Set up a virtual environment with the required tools, build, and deploy the docs. # Set up a virtual environment with the required tools, build, and deploy the docs.
# #
# Run from the root directory of the project as # Run from the root directory of the project as
# .github/scripts/docs-build-deploy 'https://martinvonz.github.io' prerelease main # .github/scripts/docs-build-deploy 'https://jj-vcs.github.io' prerelease main
# All arguments after the first are passed to `mike deploy`, run # All arguments after the first are passed to `mike deploy`, run
# `uv run -- mike deploy --help` for options. Note that `mike deploy` # `uv run -- mike deploy --help` for options. Note that `mike deploy`
# creates a commit directly on the `gh-pages` branch. # creates a commit directly on the `gh-pages` branch.

View File

@ -30,6 +30,6 @@ jobs:
run: | run: |
git config user.name 'jj-docs[bot]' git config user.name 'jj-docs[bot]'
git config user.email 'jj-docs[bot]@users.noreply.github.io' git config user.email 'jj-docs[bot]@users.noreply.github.io'
.github/scripts/docs-build-deploy 'https://martinvonz.github.io/jj' prerelease --push .github/scripts/docs-build-deploy 'https://jj-vcs.github.io/jj' prerelease --push
- name: "Show `git diff --stat`" - name: "Show `git diff --stat`"
run: git diff --stat gh-pages^ gh-pages || echo "(No diffs)" run: git diff --stat gh-pages^ gh-pages || echo "(No diffs)"

View File

@ -141,6 +141,6 @@ jobs:
git config user.email 'jj-docs[bot]@users.noreply.github.io' git config user.email 'jj-docs[bot]@users.noreply.github.io'
# Using the 'latest' tag below makes the website default # Using the 'latest' tag below makes the website default
# to this version. # to this version.
.github/scripts/docs-build-deploy 'https://martinvonz.github.io/jj' "${{ github.event.release.tag_name }}" latest --update-aliases --push .github/scripts/docs-build-deploy 'https://jj-vcs.github.io/jj' "${{ github.event.release.tag_name }}" latest --update-aliases --push
- name: "Show `git diff --stat`" - name: "Show `git diff --stat`"
run: git diff --stat gh-pages^ gh-pages || echo "(No diffs)" run: git diff --stat gh-pages^ gh-pages || echo "(No diffs)"

View File

@ -62,10 +62,10 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
* The `$NO_COLOR` environment variable must now be non-empty to be respected. * The `$NO_COLOR` environment variable must now be non-empty to be respected.
* Fixed incompatible rendering of empty hunks in git/unified diffs. * Fixed incompatible rendering of empty hunks in git/unified diffs.
[#5049](https://github.com/martinvonz/jj/issues/5049) [#5049](https://github.com/jj-vcs/jj/issues/5049)
* Fixed performance of progress bar rendering when fetching from Git remote. * Fixed performance of progress bar rendering when fetching from Git remote.
[#5057](https://github.com/martinvonz/jj/issues/5057) [#5057](https://github.com/jj-vcs/jj/issues/5057)
* `jj config path --user` no longer creates new file at the default config path. * `jj config path --user` no longer creates new file at the default config path.
@ -73,11 +73,11 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
### Release highlights ### Release highlights
* New [`jj absorb`](https://martinvonz.github.io/jj/latest/cli-reference/#jj-absorb) command automatically squashes changes from the current commit into relevant ancestor commits. * New [`jj absorb`](https://jj-vcs.github.io/jj/latest/cli-reference/#jj-absorb) command automatically squashes changes from the current commit into relevant ancestor commits.
* Experimental dynamic shell completions have been added; see [the docs](https://martinvonz.github.io/jj/latest/install-and-setup/#command-line-completion) for configuration. * Experimental dynamic shell completions have been added; see [the docs](https://jj-vcs.github.io/jj/latest/install-and-setup/#command-line-completion) for configuration.
* [`jj duplicate`](https://martinvonz.github.io/jj/latest/cli-reference/#jj-duplicate) now accepts `--destination`/`--insert-before`/`--insert-after`. * [`jj duplicate`](https://jj-vcs.github.io/jj/latest/cli-reference/#jj-duplicate) now accepts `--destination`/`--insert-before`/`--insert-after`.
* Some deprecated commands have been removed (`jj move`, `jj checkout`, `jj merge`). * Some deprecated commands have been removed (`jj move`, `jj checkout`, `jj merge`).
@ -95,7 +95,7 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
* Lines prefixed with "JJ:" in commit descriptions and in sparse patterns (from * Lines prefixed with "JJ:" in commit descriptions and in sparse patterns (from
`jj sparse edit`) are now stripped even if they are not immediately followed `jj sparse edit`) are now stripped even if they are not immediately followed
by a space. [#5004](https://github.com/martinvonz/jj/issues/5004) by a space. [#5004](https://github.com/jj-vcs/jj/issues/5004)
### Deprecations ### Deprecations
@ -112,7 +112,7 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
options, like `jj rebase -r` and `jj rebase -s`. options, like `jj rebase -r` and `jj rebase -s`.
* A preview of improved shell completions was added. Please refer to the * A preview of improved shell completions was added. Please refer to the
[documentation](https://martinvonz.github.io/jj/latest/install-and-setup/#command-line-completion) [documentation](https://jj-vcs.github.io/jj/latest/install-and-setup/#command-line-completion)
to activate them. They additionally complete context-dependent, dynamic values to activate them. They additionally complete context-dependent, dynamic values
like bookmarks, aliases, revisions, operations and files. like bookmarks, aliases, revisions, operations and files.
@ -192,7 +192,7 @@ Thanks to the people who made this release happen!
* Fixed path traversal by cloning/checking out crafted Git repository containing * Fixed path traversal by cloning/checking out crafted Git repository containing
`..`, `.jj`, `.git` paths. `..`, `.jj`, `.git` paths.
([GHSA-88h5-6w7m-5w56](https://github.com/martinvonz/jj/security/advisories/GHSA-88h5-6w7m-5w56);CVE-2024-51990) ([GHSA-88h5-6w7m-5w56](https://github.com/jj-vcs/jj/security/advisories/GHSA-88h5-6w7m-5w56);CVE-2024-51990)
### Breaking changes ### Breaking changes
@ -276,7 +276,7 @@ Thanks to the people who made this release happen!
### Fixed bugs ### Fixed bugs
* Error on `trunk()` revset resolution is now handled gracefully. * Error on `trunk()` revset resolution is now handled gracefully.
[#4616](https://github.com/martinvonz/jj/issues/4616) [#4616](https://github.com/jj-vcs/jj/issues/4616)
* Updated the built-in diff editor `scm-record` to version * Updated the built-in diff editor `scm-record` to version
[0.4.0](https://github.com/arxanas/scm-record/releases/tag/v0.4.0), which [0.4.0](https://github.com/arxanas/scm-record/releases/tag/v0.4.0), which
@ -320,7 +320,7 @@ Thanks to the people who made this release happen!
### Breaking changes ### Breaking changes
* Fixing [#4239](https://github.com/martinvonz/jj/issues/4239) means the * Fixing [#4239](https://github.com/jj-vcs/jj/issues/4239) means the
ordering of some messages have changed. ordering of some messages have changed.
* Invalid `ui.graph.style` configuration is now an error. * Invalid `ui.graph.style` configuration is now an error.
@ -366,7 +366,7 @@ Thanks to the people who made this release happen!
command to manually tracks path that were not automatically tracked. There is command to manually tracks path that were not automatically tracked. There is
no way to list untracked files yet. Use `git status` in a colocated workspace no way to list untracked files yet. Use `git status` in a colocated workspace
as a workaround. as a workaround.
[#323](https://github.com/martinvonz/jj/issues/323) [#323](https://github.com/jj-vcs/jj/issues/323)
* `jj fix` now allows fixing unchanged files with the `--include-unchanged-files` flag. This * `jj fix` now allows fixing unchanged files with the `--include-unchanged-files` flag. This
can be used to more easily introduce automatic formatting changes in a new can be used to more easily introduce automatic formatting changes in a new
@ -413,7 +413,7 @@ Thanks to the people who made this release happen!
from leaving the working copy in a stale state. from leaving the working copy in a stale state.
* Fixed panic when parsing invalid conflict markers of a particular form. * Fixed panic when parsing invalid conflict markers of a particular form.
([#2611](https://github.com/martinvonz/jj/pull/2611)) ([#2611](https://github.com/jj-vcs/jj/pull/2611))
* Editing a hidden commit now makes it visible. * Editing a hidden commit now makes it visible.
@ -510,7 +510,7 @@ Thanks to the people who made this release happen!
* `jj` now links `libgit2` statically by default. To use dynamic linking, you * `jj` now links `libgit2` statically by default. To use dynamic linking, you
need to set the environment variable `LIBGIT2_NO_VENDOR=1` while compiling. need to set the environment variable `LIBGIT2_NO_VENDOR=1` while compiling.
([#4163](https://github.com/martinvonz/jj/pull/4163)) ([#4163](https://github.com/jj-vcs/jj/pull/4163))
### Breaking changes ### Breaking changes
@ -673,7 +673,7 @@ Thanks to the people who made this release happen!
* `jj branch set` now creates new branch if it doesn't exist. Use `jj branch * `jj branch set` now creates new branch if it doesn't exist. Use `jj branch
move` to ensure that the target branch already exists. move` to ensure that the target branch already exists.
[#3584](https://github.com/martinvonz/jj/issues/3584) [#3584](https://github.com/jj-vcs/jj/issues/3584)
### Deprecations ### Deprecations
@ -703,7 +703,7 @@ Thanks to the people who made this release happen!
like the `ancestors()` depth argument, it limits the depth of the set. like the `ancestors()` depth argument, it limits the depth of the set.
* Revset/template aliases now support function overloading. * Revset/template aliases now support function overloading.
[#2966](https://github.com/martinvonz/jj/issues/2966) [#2966](https://github.com/jj-vcs/jj/issues/2966)
* Conflicted files are individually simplified before being materialized. * Conflicted files are individually simplified before being materialized.
@ -731,7 +731,7 @@ Thanks to the people who made this release happen!
* Author timestamp is now reset when rewriting discardable commits (empty * Author timestamp is now reset when rewriting discardable commits (empty
commits with no description) if authored by the current user. commits with no description) if authored by the current user.
[#2000](https://github.com/martinvonz/jj/issues/2000) [#2000](https://github.com/jj-vcs/jj/issues/2000)
* `jj commit` now accepts `--reset-author` option to match `jj describe`. * `jj commit` now accepts `--reset-author` option to match `jj describe`.
@ -741,11 +741,11 @@ Thanks to the people who made this release happen!
* `jj git push` now ignores immutable commits when checking whether a * `jj git push` now ignores immutable commits when checking whether a
to-be-pushed commit has conflicts, or has no description / committer / author to-be-pushed commit has conflicts, or has no description / committer / author
set. [#3029](https://github.com/martinvonz/jj/issues/3029) set. [#3029](https://github.com/jj-vcs/jj/issues/3029)
* `jj` will look for divergent changes outside the short prefix set even if it * `jj` will look for divergent changes outside the short prefix set even if it
finds the change id inside the short prefix set. finds the change id inside the short prefix set.
[#2476](https://github.com/martinvonz/jj/issues/2476) [#2476](https://github.com/jj-vcs/jj/issues/2476)
### Contributors ### Contributors
@ -794,7 +794,7 @@ Thanks to the people who made this release happen!
* If a new working-copy commit is created because the old one was abandoned, and * If a new working-copy commit is created because the old one was abandoned, and
the old commit was merge, then the new commit will now also be. the old commit was merge, then the new commit will now also be.
[#2859](https://github.com/martinvonz/jj/issues/2859) [#2859](https://github.com/jj-vcs/jj/issues/2859)
* `jj new`'s `--insert-before`/`--insert-after` options must now be set for each * `jj new`'s `--insert-before`/`--insert-after` options must now be set for each
commit the new commit will be inserted before/after. Previously, those options commit the new commit will be inserted before/after. Previously, those options
@ -834,8 +834,8 @@ Thanks to the people who made this release happen!
* New command `jj fix` that can be configured to update commits by running code * New command `jj fix` that can be configured to update commits by running code
formatters (or similar tools) on changed files. The configuration schema and formatters (or similar tools) on changed files. The configuration schema and
flags are minimal for now, with a number of improvements planned (for example, flags are minimal for now, with a number of improvements planned (for example,
[#3800](https://github.com/martinvonz/jj/issues/3800) and [#3800](https://github.com/jj-vcs/jj/issues/3800) and
[#3801](https://github.com/martinvonz/jj/issues/3801)). [#3801](https://github.com/jj-vcs/jj/issues/3801)).
* `jj new`'s `--insert-before` and `--insert-after` options can now be used * `jj new`'s `--insert-before` and `--insert-after` options can now be used
simultaneously. simultaneously.
@ -985,7 +985,7 @@ Thanks to the people who made this release happen!
* `jj squash <path>` is now a no-op if the path argument didn't match any paths * `jj squash <path>` is now a no-op if the path argument didn't match any paths
(it used to create new commits with bumped timestamp). (it used to create new commits with bumped timestamp).
[#3334](https://github.com/martinvonz/jj/issues/3334) [#3334](https://github.com/jj-vcs/jj/issues/3334)
### Contributors ### Contributors
@ -1119,7 +1119,7 @@ No code changes (fixing Rust `Cargo.toml` stuff).
* The on-disk index format changed. New index files will be created * The on-disk index format changed. New index files will be created
automatically, but it can fail if the repository is co-located and predates automatically, but it can fail if the repository is co-located and predates
Git GC issues [#815](https://github.com/martinvonz/jj/issues/815). If Git GC issues [#815](https://github.com/jj-vcs/jj/issues/815). If
reindexing failed, you'll need to clean up corrupted operation history by reindexing failed, you'll need to clean up corrupted operation history by
`jj op abandon ..<bad operation ID>`. `jj op abandon ..<bad operation ID>`.
@ -1171,8 +1171,8 @@ No code changes (fixing Rust `Cargo.toml` stuff).
* Set config `ui.log-synthetic-elided-nodes = true` to make `jj log` include * Set config `ui.log-synthetic-elided-nodes = true` to make `jj log` include
synthetic nodes in the graph where some revisions were elided synthetic nodes in the graph where some revisions were elided
([#1252](https://github.com/martinvonz/jj/issues/1252), ([#1252](https://github.com/jj-vcs/jj/issues/1252),
[#2971](https://github.com/martinvonz/jj/issues/2971)). This may become the [#2971](https://github.com/jj-vcs/jj/issues/2971)). This may become the
default depending on feedback. default depending on feedback.
* When creating a new workspace, the sparse patterns are now copied over from * When creating a new workspace, the sparse patterns are now copied over from
@ -1191,7 +1191,7 @@ No code changes (fixing Rust `Cargo.toml` stuff).
* `jj commit`/`diffedit`/`move`/`resolve`/`split`/`squash`/`unsquash` now accept * `jj commit`/`diffedit`/`move`/`resolve`/`split`/`squash`/`unsquash` now accept
`--tool=<NAME>` option to override the default. `--tool=<NAME>` option to override the default.
[#2575](https://github.com/martinvonz/jj/issues/2575) [#2575](https://github.com/jj-vcs/jj/issues/2575)
* Added completions for [Nushell](https://nushell.sh) to `jj util completion` * Added completions for [Nushell](https://nushell.sh) to `jj util completion`
@ -1212,14 +1212,14 @@ No code changes (fixing Rust `Cargo.toml` stuff).
When symlink support is unavailable, they will be materialized as regular When symlink support is unavailable, they will be materialized as regular
files in the files in the
working copy (instead of resulting in a crash). working copy (instead of resulting in a crash).
[#2](https://github.com/martinvonz/jj/issues/2) [#2](https://github.com/jj-vcs/jj/issues/2)
* On Windows, the `:builtin` pager is now used by default, rather than being * On Windows, the `:builtin` pager is now used by default, rather than being
disabled entirely. disabled entirely.
* Auto-rebase now preserves the shape of history even for merge commits where * Auto-rebase now preserves the shape of history even for merge commits where
one parent is an ancestor of another. one parent is an ancestor of another.
[#2600](https://github.com/martinvonz/jj/issues/2600) [#2600](https://github.com/jj-vcs/jj/issues/2600)
### Contributors ### Contributors
@ -1344,11 +1344,11 @@ Thanks to the people who made this release happen!
### Fixed bugs ### Fixed bugs
* Fixed snapshots of symlinks in `gitignore`-d directory. * Fixed snapshots of symlinks in `gitignore`-d directory.
[#2878](https://github.com/martinvonz/jj/issues/2878) [#2878](https://github.com/jj-vcs/jj/issues/2878)
* Fixed data loss in dirty working copy when checked-out branch is rebased or * Fixed data loss in dirty working copy when checked-out branch is rebased or
abandoned by Git. abandoned by Git.
[#2876](https://github.com/martinvonz/jj/issues/2876) [#2876](https://github.com/jj-vcs/jj/issues/2876)
### Contributors ### Contributors
@ -1391,7 +1391,7 @@ Thanks to the people who made this release happen!
* Command aliases can now be loaded from repository config relative to the * Command aliases can now be loaded from repository config relative to the
current working directory. current working directory.
[#2414](https://github.com/martinvonz/jj/issues/2414) [#2414](https://github.com/jj-vcs/jj/issues/2414)
### Contributors ### Contributors
@ -1427,7 +1427,7 @@ Thanks to the people who made this release happen!
* You can now set `git.abandon-unreachable-commits = false` to disable the * You can now set `git.abandon-unreachable-commits = false` to disable the
usual behavior where commits that became unreachable in the Git repo are usual behavior where commits that became unreachable in the Git repo are
abandoned ([#2504](https://github.com/martinvonz/jj/pull/2504)). abandoned ([#2504](https://github.com/jj-vcs/jj/pull/2504)).
* `jj new` gained a `--no-edit` option to prevent editing the newly created * `jj new` gained a `--no-edit` option to prevent editing the newly created
commit. For example, `jj new a b --no-edit -m Merge` creates a merge commit commit. For example, `jj new a b --no-edit -m Merge` creates a merge commit
@ -1444,7 +1444,7 @@ Thanks to the people who made this release happen!
* Fixed another file conflict resolution issue where `jj status` would disagree * Fixed another file conflict resolution issue where `jj status` would disagree
with the actual file content. with the actual file content.
[#2654](https://github.com/martinvonz/jj/issues/2654) [#2654](https://github.com/jj-vcs/jj/issues/2654)
### Contributors ### Contributors
@ -1543,13 +1543,13 @@ Thanks to the people who made this release happen!
* Updating the working copy to a commit where a file that's currently ignored * Updating the working copy to a commit where a file that's currently ignored
in the working copy no longer leads to a crash in the working copy no longer leads to a crash
([#976](https://github.com/martinvonz/jj/issues/976)). ([#976](https://github.com/jj-vcs/jj/issues/976)).
* Conflicts in executable files can now be resolved just like conflicts in * Conflicts in executable files can now be resolved just like conflicts in
non-executable files ([#1279](https://github.com/martinvonz/jj/issues/1279)). non-executable files ([#1279](https://github.com/jj-vcs/jj/issues/1279)).
* `jj new --insert-before` and `--insert-after` now respect immutable revisions * `jj new --insert-before` and `--insert-after` now respect immutable revisions
([#2468](https://github.com/martinvonz/jj/pull/2468)). ([#2468](https://github.com/jj-vcs/jj/pull/2468)).
### Contributors ### Contributors
@ -1682,7 +1682,7 @@ Thanks to the people who made this release happen!
* It's no longer allowed to create a Git remote named "git". Use `jj git remote * It's no longer allowed to create a Git remote named "git". Use `jj git remote
rename` to rename the existing remote. rename` to rename the existing remote.
[#1690](https://github.com/martinvonz/jj/issues/1690) [#1690](https://github.com/jj-vcs/jj/issues/1690)
* Revset expression like `origin/main` will no longer resolve to a * Revset expression like `origin/main` will no longer resolve to a
remote-tracking branch. Use `main@origin` instead. remote-tracking branch. Use `main@origin` instead.
@ -1702,7 +1702,7 @@ Thanks to the people who made this release happen!
directories. directories.
* `jj log` output is now topologically grouped. * `jj log` output is now topologically grouped.
[#242](https://github.com/martinvonz/jj/issues/242) [#242](https://github.com/jj-vcs/jj/issues/242)
* `jj git clone` now supports the `--colocate` flag to create the git repo * `jj git clone` now supports the `--colocate` flag to create the git repo
in the same directory as the jj repo. in the same directory as the jj repo.
@ -1713,7 +1713,7 @@ Thanks to the people who made this release happen!
* `jj diff`/`log` now supports `--tool <name>` option to generate diffs by * `jj diff`/`log` now supports `--tool <name>` option to generate diffs by
external program. For configuration, see [the documentation](docs/config.md). external program. For configuration, see [the documentation](docs/config.md).
[#1886](https://github.com/martinvonz/jj/issues/1886) [#1886](https://github.com/jj-vcs/jj/issues/1886)
* A new experimental diff editor `meld-3` is introduced that sets up Meld to * A new experimental diff editor `meld-3` is introduced that sets up Meld to
allow you to see both sides of the original diff while editing. This can be allow you to see both sides of the original diff while editing. This can be
@ -1755,12 +1755,12 @@ Thanks to the people who made this release happen!
* `jj next` and `jj prev` are added, these allow you to traverse the history * `jj next` and `jj prev` are added, these allow you to traverse the history
in a linear style. For people coming from Sapling and `git-branchles` in a linear style. For people coming from Sapling and `git-branchles`
see [#2126](https://github.com/martinvonz/jj/issues/2126) for see [#2126](https://github.com/jj-vcs/jj/issues/2126) for
further pending improvements. further pending improvements.
* `jj diff --stat` has been implemented. It shows a histogram of the changes, * `jj diff --stat` has been implemented. It shows a histogram of the changes,
same as `git diff --stat`. same as `git diff --stat`.
Fixes [#2066](https://github.com/martinvonz/jj/issues/2066) Fixes [#2066](https://github.com/jj-vcs/jj/issues/2066)
* `jj git fetch --all-remotes` has been implemented. It fetches all remotes * `jj git fetch --all-remotes` has been implemented. It fetches all remotes
instead of just the default remote instead of just the default remote
@ -1768,20 +1768,20 @@ Thanks to the people who made this release happen!
### Fixed bugs ### Fixed bugs
* Fix issues related to .gitignore handling of untracked directories * Fix issues related to .gitignore handling of untracked directories
[#2051](https://github.com/martinvonz/jj/issues/2051). [#2051](https://github.com/jj-vcs/jj/issues/2051).
* `jj config set --user` and `jj config edit --user` can now be used outside of * `jj config set --user` and `jj config edit --user` can now be used outside of
any repository. any repository.
* SSH authentication could hang when ssh-agent couldn't be reached * SSH authentication could hang when ssh-agent couldn't be reached
[#1970](https://github.com/martinvonz/jj/issues/1970) [#1970](https://github.com/jj-vcs/jj/issues/1970)
* SSH authentication can now use ed25519 and ed25519-sk keys. They still need * SSH authentication can now use ed25519 and ed25519-sk keys. They still need
to be password-less. to be password-less.
* Git repository managed by the repo tool can now be detected as a "colocated" * Git repository managed by the repo tool can now be detected as a "colocated"
repository. repository.
[#2011](https://github.com/martinvonz/jj/issues/2011) [#2011](https://github.com/jj-vcs/jj/issues/2011)
### Contributors ### Contributors
@ -1875,7 +1875,7 @@ Thanks to the people who made this release happen!
`jj config set --repo user.email "somebody@example.com"` `jj config set --repo user.email "somebody@example.com"`
* Added `ui.log-word-wrap` option to wrap `jj log`/`obslog`/`op log` content * Added `ui.log-word-wrap` option to wrap `jj log`/`obslog`/`op log` content
based on terminal width. [#1043](https://github.com/martinvonz/jj/issues/1043) based on terminal width. [#1043](https://github.com/jj-vcs/jj/issues/1043)
* Nodes in the (text-based) graphical log output now use a `◉` symbol instead * Nodes in the (text-based) graphical log output now use a `◉` symbol instead
of the letter `o`. The ASCII-based graph styles still use `o`. of the letter `o`. The ASCII-based graph styles still use `o`.
@ -1942,7 +1942,7 @@ Thanks to the people who made this release happen!
### Fixed bugs ### Fixed bugs
* Modify/delete conflicts now include context lines * Modify/delete conflicts now include context lines
[#1244](https://github.com/martinvonz/jj/issues/1244). [#1244](https://github.com/jj-vcs/jj/issues/1244).
* It is now possible to modify either side of a modify/delete conflict (any * It is now possible to modify either side of a modify/delete conflict (any
change used to be considered a resolution). change used to be considered a resolution).
@ -1964,27 +1964,27 @@ Thanks to the people who made this release happen!
* `git checkout` (without using `jj`) in colocated repo no longer abandons * `git checkout` (without using `jj`) in colocated repo no longer abandons
the previously checked-out anonymous branch. the previously checked-out anonymous branch.
[#1042](https://github.com/martinvonz/jj/issues/1042). [#1042](https://github.com/jj-vcs/jj/issues/1042).
* `jj git fetch` in a colocated repo now abandons branches deleted on the * `jj git fetch` in a colocated repo now abandons branches deleted on the
remote, just like in a non-colocated repo. remote, just like in a non-colocated repo.
[#864](https://github.com/martinvonz/jj/issues/864) [#864](https://github.com/jj-vcs/jj/issues/864)
* `jj git fetch` can now fetch forgotten branches even if they didn't move on * `jj git fetch` can now fetch forgotten branches even if they didn't move on
the remote. the remote.
[#1714](https://github.com/martinvonz/jj/pull/1714) [#1714](https://github.com/jj-vcs/jj/pull/1714)
[#1771](https://github.com/martinvonz/jj/pull/1771) [#1771](https://github.com/jj-vcs/jj/pull/1771)
* It is now possible to `jj branch forget` deleted branches. * It is now possible to `jj branch forget` deleted branches.
[#1537](https://github.com/martinvonz/jj/issues/1537) [#1537](https://github.com/jj-vcs/jj/issues/1537)
* Fixed race condition when assigning change id to Git commit. If you've * Fixed race condition when assigning change id to Git commit. If you've
already had unreachable change ids, run `jj debug reindex`. already had unreachable change ids, run `jj debug reindex`.
[#924](https://github.com/martinvonz/jj/issues/924) [#924](https://github.com/jj-vcs/jj/issues/924)
* Fixed false divergence on racy working-copy snapshots. * Fixed false divergence on racy working-copy snapshots.
[#697](https://github.com/martinvonz/jj/issues/697), [#697](https://github.com/jj-vcs/jj/issues/697),
[#1608](https://github.com/martinvonz/jj/issues/1608) [#1608](https://github.com/jj-vcs/jj/issues/1608)
* In colocated repos, a bug causing conflicts when undoing branch moves (#922) * In colocated repos, a bug causing conflicts when undoing branch moves (#922)
has been fixed. Some surprising behaviors related to undoing `jj git push` or has been fixed. Some surprising behaviors related to undoing `jj git push` or
@ -2199,7 +2199,7 @@ Thanks to the people who made this release happen!
* `jj duplicate` followed by `jj rebase` of a tree containing both the original * `jj duplicate` followed by `jj rebase` of a tree containing both the original
and duplicate commit no longer crashes. The fix should also resolve any and duplicate commit no longer crashes. The fix should also resolve any
remaining remaining
instances of https://github.com/martinvonz/jj/issues/27. instances of https://github.com/jj-vcs/jj/issues/27.
* Fix the output of `jj debug completion --help` by reversing fish and zsh text. * Fix the output of `jj debug completion --help` by reversing fish and zsh text.
@ -2263,7 +2263,7 @@ No changes, only changed to a released version of the `thrift` crate dependency.
### New features ### New features
* Commands with long output are paginated. * Commands with long output are paginated.
[#9](https://github.com/martinvonz/jj/issues/9) [#9](https://github.com/jj-vcs/jj/issues/9)
* The new `jj git remote rename` command allows git remotes to be renamed * The new `jj git remote rename` command allows git remotes to be renamed
in-place. in-place.
@ -2286,11 +2286,11 @@ No changes, only changed to a released version of the `thrift` crate dependency.
* `jj git` subcommands will prompt for credentials when required for HTTPS * `jj git` subcommands will prompt for credentials when required for HTTPS
remotes rather than failing. remotes rather than failing.
[#469](https://github.com/martinvonz/jj/issues/469) [#469](https://github.com/jj-vcs/jj/issues/469)
* Branches that have a different target on some remote than they do locally are * Branches that have a different target on some remote than they do locally are
now indicated by an asterisk suffix (e.g. `main*`) in `jj log`. now indicated by an asterisk suffix (e.g. `main*`) in `jj log`.
[#254](https://github.com/martinvonz/jj/issues/254) [#254](https://github.com/jj-vcs/jj/issues/254)
* The commit ID was moved from first on the line in `jj log` output to close to * The commit ID was moved from first on the line in `jj log` output to close to
the end. The goal is to encourage users to use the change ID instead, since the end. The goal is to encourage users to use the change ID instead, since
@ -2317,13 +2317,13 @@ No changes, only changed to a released version of the `thrift` crate dependency.
* A bug in the export of branches to Git caused spurious conflicted branches. * A bug in the export of branches to Git caused spurious conflicted branches.
This typically occurred when running in a working copy colocated with Git This typically occurred when running in a working copy colocated with Git
(created by running `jj init --git-dir=.`). (created by running `jj init --git-dir=.`).
[#463](https://github.com/martinvonz/jj/issues/463) [#463](https://github.com/jj-vcs/jj/issues/463)
* When exporting branches to Git, we used to fail if some branches could not be * When exporting branches to Git, we used to fail if some branches could not be
exported (e.g. because Git doesn't allow a branch called `main` and another exported (e.g. because Git doesn't allow a branch called `main` and another
branch called `main/sub`). We now print a warning about these branches branch called `main/sub`). We now print a warning about these branches
instead. instead.
[#493](https://github.com/martinvonz/jj/issues/493) [#493](https://github.com/jj-vcs/jj/issues/493)
* If you had modified branches in jj and also modified branches in conflicting * If you had modified branches in jj and also modified branches in conflicting
ways in Git, `jj git export` used to overwrite the changes you made in Git. ways in Git, `jj git export` used to overwrite the changes you made in Git.
@ -2343,7 +2343,7 @@ No changes, only changed to a released version of the `thrift` crate dependency.
* Git's GC could remove commits that were referenced from jj in some cases. We * Git's GC could remove commits that were referenced from jj in some cases. We
are now better at adding Git refs to prevent that. are now better at adding Git refs to prevent that.
[#815](https://github.com/martinvonz/jj/issues/815) [#815](https://github.com/jj-vcs/jj/issues/815)
* When the working-copy commit was a merge, `jj status` would list only the * When the working-copy commit was a merge, `jj status` would list only the
first parent, and the diff summary would be against that parent. The output first parent, and the diff summary would be against that parent. The output
@ -2389,8 +2389,8 @@ No changes (just trying to get automated GitHub release to work).
branches (plus their closest commit on the remote branch for context). This branches (plus their closest commit on the remote branch for context). This
set of commits can be overridden by setting `ui.default-revset`. Use set of commits can be overridden by setting `ui.default-revset`. Use
`jj log -r 'all()'` for the old behavior. Read more about revsets `jj log -r 'all()'` for the old behavior. Read more about revsets
[here](https://github.com/martinvonz/jj/blob/main/docs/revsets.md). [here](https://github.com/jj-vcs/jj/blob/main/docs/revsets.md).
[#250](https://github.com/martinvonz/jj/issues/250) [#250](https://github.com/jj-vcs/jj/issues/250)
* `jj new` now always checks out the new commit (used to be only if the parent * `jj new` now always checks out the new commit (used to be only if the parent
was `@`). was `@`).
@ -2404,7 +2404,7 @@ No changes (just trying to get automated GitHub release to work).
* `jj branch` now uses subcommands like `jj branch create` and * `jj branch` now uses subcommands like `jj branch create` and
`jj branch forget` instead of options like `jj branch --forget`. `jj branch forget` instead of options like `jj branch --forget`.
[#330](https://github.com/martinvonz/jj/issues/330) [#330](https://github.com/jj-vcs/jj/issues/330)
* The [`$NO_COLOR` environment variable](https://no-color.org/) no longer * The [`$NO_COLOR` environment variable](https://no-color.org/) no longer
overrides the `ui.color` configuration if explicitly set. overrides the `ui.color` configuration if explicitly set.
@ -2436,7 +2436,7 @@ No changes (just trying to get automated GitHub release to work).
* The new `jj git remotes list` command lists the configured remotes and their * The new `jj git remotes list` command lists the configured remotes and their
URLs. URLs.
[#243](https://github.com/martinvonz/jj/issues/243) [#243](https://github.com/jj-vcs/jj/issues/243)
* `jj move` and `jj squash` now lets you limit the set of changes to move by * `jj move` and `jj squash` now lets you limit the set of changes to move by
specifying paths on the command line (in addition to the `--interactive` specifying paths on the command line (in addition to the `--interactive`
@ -2604,7 +2604,7 @@ No changes (just trying to get automated GitHub release to work).
concurrent operations (so if one operation added B on top of A, and one concurrent operations (so if one operation added B on top of A, and one
operation rebased A as A', then B would be automatically rebased on top of operation rebased A as A', then B would be automatically rebased on top of
A'). See #111 for more examples. A'). See #111 for more examples.
[#111](https://github.com/martinvonz/jj/issues/111) [#111](https://github.com/jj-vcs/jj/issues/111)
* `jj log` now accepts `-p`/`--patch` option. * `jj log` now accepts `-p`/`--patch` option.
@ -2629,7 +2629,7 @@ No changes, only trying to get the automated build to work.
- Fixed crash when `core.excludesFile` pointed to nonexistent file, and made - Fixed crash when `core.excludesFile` pointed to nonexistent file, and made
leading `~/` in that config expand to `$HOME/` leading `~/` in that config expand to `$HOME/`
[#131](https://github.com/martinvonz/jj/issues/131) [#131](https://github.com/jj-vcs/jj/issues/131)
## [0.3.0] - 2022-03-12 ## [0.3.0] - 2022-03-12

View File

@ -10,9 +10,9 @@ license = "Apache-2.0"
rust-version = "1.76" # NOTE: remember to update CI, contributing.md, changelog.md, install-and-setup.md, and flake.nix rust-version = "1.76" # NOTE: remember to update CI, contributing.md, changelog.md, install-and-setup.md, and flake.nix
edition = "2021" edition = "2021"
readme = "README.md" readme = "README.md"
homepage = "https://github.com/martinvonz/jj" homepage = "https://github.com/jj-vcs/jj"
repository = "https://github.com/martinvonz/jj" repository = "https://github.com/jj-vcs/jj"
documentation = "https://martinvonz.github.io/jj/" documentation = "https://jj-vcs.github.io/jj/"
categories = ["version-control", "development-tools"] categories = ["version-control", "development-tools"]
keywords = ["VCS", "DVCS", "SCM", "Git", "Mercurial"] keywords = ["VCS", "DVCS", "SCM", "Git", "Mercurial"]

View File

@ -15,10 +15,10 @@
**[Development Roadmap] &nbsp;&nbsp;&bull;&nbsp;&nbsp;** **[Development Roadmap] &nbsp;&nbsp;&bull;&nbsp;&nbsp;**
**[Contributing](#contributing)** **[Contributing](#contributing)**
[Homepage]: https://martinvonz.github.io/jj [Homepage]: https://jj-vcs.github.io/jj
[Installation]: https://martinvonz.github.io/jj/latest/install-and-setup [Installation]: https://jj-vcs.github.io/jj/latest/install-and-setup
[Getting Started]: https://martinvonz.github.io/jj/latest/tutorial [Getting Started]: https://jj-vcs.github.io/jj/latest/tutorial
[Development Roadmap]: https://martinvonz.github.io/jj/latest/roadmap [Development Roadmap]: https://jj-vcs.github.io/jj/latest/roadmap
</div> </div>
@ -68,10 +68,10 @@ systems into a single tool. Some of those sources of inspiration include:
theory of patches, as opposed to snapshots), the effect is that many forms of theory of patches, as opposed to snapshots), the effect is that many forms of
conflict resolution can be performed and propagated automatically. conflict resolution can be performed and propagated automatically.
[perf]: https://github.com/martinvonz/jj/discussions/49 [perf]: https://github.com/jj-vcs/jj/discussions/49
[revset]: https://martinvonz.github.io/jj/latest/revsets/ [revset]: https://jj-vcs.github.io/jj/latest/revsets/
[no-index]: https://martinvonz.github.io/jj/latest/git-comparison/#the-index [no-index]: https://jj-vcs.github.io/jj/latest/git-comparison/#the-index
[conflicts]: https://martinvonz.github.io/jj/latest/conflicts/ [conflicts]: https://jj-vcs.github.io/jj/latest/conflicts/
And it adds several innovative, useful features of its own: And it adds several innovative, useful features of its own:
@ -116,9 +116,9 @@ And it adds several innovative, useful features of its own:
_should_ happen is that it will expose conflicts between the local and remote _should_ happen is that it will expose conflicts between the local and remote
state, leaving you to resolve them. state, leaving you to resolve them.
[wcc]: https://martinvonz.github.io/jj/latest/working-copy/ [wcc]: https://jj-vcs.github.io/jj/latest/working-copy/
[undo-history]: https://en.wikipedia.org/wiki/Undo#History [undo-history]: https://en.wikipedia.org/wiki/Undo#History
[conc-safety]: https://martinvonz.github.io/jj/latest/technical/concurrency/ [conc-safety]: https://jj-vcs.github.io/jj/latest/technical/concurrency/
The command-line tool is called `jj` for now because it's easy to type and easy The command-line tool is called `jj` for now because it's easy to type and easy
to replace (rare in English). The project is called "Jujutsu" because it matches to replace (rare in English). The project is called "Jujutsu" because it matches
@ -127,7 +127,7 @@ to replace (rare in English). The project is called "Jujutsu" because it matches
Jujutsu is relatively young, with lots of work to still be done. If you have any Jujutsu is relatively young, with lots of work to still be done. If you have any
questions, or want to talk about future plans, please join us on Discord questions, or want to talk about future plans, please join us on Discord
[![Discord](https://img.shields.io/discord/968932220549103686.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/dkmfj3aGQN), [![Discord](https://img.shields.io/discord/968932220549103686.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/dkmfj3aGQN),
start a [GitHub Discussion](https://github.com/martinvonz/jj/discussions), or start a [GitHub Discussion](https://github.com/jj-vcs/jj/discussions), or
send an IRC message to [`#jujutsu` on Libera send an IRC message to [`#jujutsu` on Libera
Chat](https://web.libera.chat/?channel=#jujutsu). The developers monitor all of Chat](https://web.libera.chat/?channel=#jujutsu). The developers monitor all of
these channels[^bridge]. these channels[^bridge].
@ -165,7 +165,7 @@ The wiki also contains a more extensive list of [media references][wiki-media].
[lwn]: https://lwn.net/Articles/958468/ [lwn]: https://lwn.net/Articles/958468/
[merge-talk]: https://www.youtube.com/watch?v=bx_LGilOuE4 [merge-talk]: https://www.youtube.com/watch?v=bx_LGilOuE4
[merge-slides]: https://docs.google.com/presentation/d/1F8j9_UOOSGUN9MvHxPZX_L4bQ9NMcYOp1isn17kTC_M/view [merge-slides]: https://docs.google.com/presentation/d/1F8j9_UOOSGUN9MvHxPZX_L4bQ9NMcYOp1isn17kTC_M/view
[wiki-media]: https://github.com/martinvonz/jj/wiki/Media [wiki-media]: https://github.com/jj-vcs/jj/wiki/Media
## Getting started ## Getting started
@ -176,23 +176,23 @@ The wiki also contains a more extensive list of [media references][wiki-media].
> it unusable for your particular use. > it unusable for your particular use.
Follow the [installation Follow the [installation
instructions](https://martinvonz.github.io/jj/latest/install-and-setup) to instructions](https://jj-vcs.github.io/jj/latest/install-and-setup) to
obtain and configure `jj`. obtain and configure `jj`.
The best way to get started is probably to go through [the The best way to get started is probably to go through [the
tutorial](https://martinvonz.github.io/jj/latest/tutorial). Also see the [Git tutorial](https://jj-vcs.github.io/jj/latest/tutorial). Also see the [Git
comparison](https://martinvonz.github.io/jj/latest/git-comparison), which comparison](https://jj-vcs.github.io/jj/latest/git-comparison), which
includes a table of `jj` vs. `git` commands. includes a table of `jj` vs. `git` commands.
As you become more familiar with Jujutsu, the following resources may be helpful: As you become more familiar with Jujutsu, the following resources may be helpful:
- The [FAQ](https://martinvonz.github.io/jj/latest/FAQ). - The [FAQ](https://jj-vcs.github.io/jj/latest/FAQ).
- The [Glossary](https://martinvonz.github.io/jj/latest/glossary). - The [Glossary](https://jj-vcs.github.io/jj/latest/glossary).
- The `jj help` command (e.g. `jj help rebase`). - The `jj help` command (e.g. `jj help rebase`).
If you are using a **prerelease** version of `jj`, you would want to consult If you are using a **prerelease** version of `jj`, you would want to consult
[the docs for the prerelease (main branch) [the docs for the prerelease (main branch)
version](https://martinvonz.github.io/jj/prerelease/). You can also get there version](https://jj-vcs.github.io/jj/prerelease/). You can also get there
from the docs for the latest release by using the website's version switcher. The version switcher is visible in from the docs for the latest release by using the website's version switcher. The version switcher is visible in
the header of the website when you scroll to the top of any page. the header of the website when you scroll to the top of any page.
@ -206,7 +206,7 @@ while the other is a native storage backend[^native-backend]. The Git backend
uses the [libgit2](https://libgit2.org/) C library and the uses the [libgit2](https://libgit2.org/) C library and the
[gitoxide](https://github.com/Byron/gitoxide) Rust library. [gitoxide](https://github.com/Byron/gitoxide) Rust library.
[backends]: https://martinvonz.github.io/jj/latest/glossary#backend [backends]: https://jj-vcs.github.io/jj/latest/glossary#backend
[^native-backend]: At this time, there's practically no reason to use the native [^native-backend]: At this time, there's practically no reason to use the native
backend. The backend exists mainly to make sure that it's possible to eventually backend. The backend exists mainly to make sure that it's possible to eventually
@ -222,7 +222,7 @@ Here is how you can explore a GitHub repository with `jj`.
<img src="demos/git_compat.png" /> <img src="demos/git_compat.png" />
You can even have a ["co-located" local You can even have a ["co-located" local
repository](https://martinvonz.github.io/jj/latest/git-compatibility#co-located-jujutsugit-repos) repository](https://jj-vcs.github.io/jj/latest/git-compatibility#co-located-jujutsugit-repos)
where you can use both `jj` and `git` commands interchangeably. where you can use both `jj` and `git` commands interchangeably.
### The working copy is automatically committed ### The working copy is automatically committed
@ -263,7 +263,7 @@ necessarily have to be the most recent operation).
### Conflicts can be recorded in commits ### Conflicts can be recorded in commits
If an operation results in If an operation results in
[conflicts](https://martinvonz.github.io/jj/latest/glossary#conflict), [conflicts](https://jj-vcs.github.io/jj/latest/glossary#conflict),
information about those conflicts will be recorded in the commit(s). The information about those conflicts will be recorded in the commit(s). The
operation will succeed. You can then resolve the conflicts later. One operation will succeed. You can then resolve the conflicts later. One
consequence of this design is that there's no need to continue interrupted consequence of this design is that there's no need to continue interrupted
@ -316,7 +316,7 @@ scripts if requested.
## Related work ## Related work
There are several tools trying to solve similar problems as Jujutsu. See There are several tools trying to solve similar problems as Jujutsu. See
[related work](https://martinvonz.github.io/jj/latest/related-work) for details. [related work](https://jj-vcs.github.io/jj/latest/related-work) for details.
## Contributing ## Contributing
@ -325,7 +325,7 @@ don't be shy. Please ask if you want a pointer on something you can help with,
and hopefully we can all figure something out. and hopefully we can all figure something out.
We do have [a few policies and We do have [a few policies and
suggestions](https://martinvonz.github.io/jj/prerelease/contributing/) suggestions](https://jj-vcs.github.io/jj/prerelease/contributing/)
for contributors. The broad TL;DR: for contributors. The broad TL;DR:
- Bug reports are very welcome! - Bug reports are very welcome!

View File

@ -1786,7 +1786,7 @@ to the current parents may contain changes from multiple commits.
short_operation_hash(&old_op_id) short_operation_hash(&old_op_id)
), ),
"Run `jj workspace update-stale` to update it. "Run `jj workspace update-stale` to update it.
See https://martinvonz.github.io/jj/latest/working-copy/#stale-working-copy \ See https://jj-vcs.github.io/jj/latest/working-copy/#stale-working-copy \
for more information.", for more information.",
), ),
)); ));
@ -1806,7 +1806,7 @@ See https://martinvonz.github.io/jj/latest/working-copy/#stale-working-copy \
user_error_with_hint( user_error_with_hint(
"Could not read working copy's operation.", "Could not read working copy's operation.",
"Run `jj workspace update-stale` to recover. "Run `jj workspace update-stale` to recover.
See https://martinvonz.github.io/jj/latest/working-copy/#stale-working-copy \ See https://jj-vcs.github.io/jj/latest/working-copy/#stale-working-copy \
for more information.", for more information.",
), ),
)); ));
@ -2506,7 +2506,7 @@ pub fn print_conflicted_paths(
); );
} }
// TODO: We might decide it's OK for `jj resolve` to ignore special files in the // TODO: We might decide it's OK for `jj resolve` to ignore special files in the
// `removes` of a conflict (see e.g. https://github.com/martinvonz/jj/pull/978). In // `removes` of a conflict (see e.g. https://github.com/jj-vcs/jj/pull/978). In
// that case, `conflict.removes` should be removed below. // that case, `conflict.removes` should be removed below.
for term in itertools::chain(conflict.removes(), conflict.adds()).flatten() { for term in itertools::chain(conflict.removes(), conflict.adds()).flatten() {
seen_objects.insert( seen_objects.insert(
@ -2830,7 +2830,7 @@ impl LogContentFormat {
pub fn run_ui_editor(settings: &UserSettings, edit_path: &Path) -> Result<(), CommandError> { pub fn run_ui_editor(settings: &UserSettings, edit_path: &Path) -> Result<(), CommandError> {
// Work around UNC paths not being well supported on Windows (no-op for // Work around UNC paths not being well supported on Windows (no-op for
// non-Windows): https://github.com/martinvonz/jj/issues/3986 // non-Windows): https://github.com/jj-vcs/jj/issues/3986
let edit_path = dunce::simplified(edit_path); let edit_path = dunce::simplified(edit_path);
let editor: CommandNameAndArgs = settings.get("ui.editor")?; let editor: CommandNameAndArgs = settings.get("ui.editor")?;
let mut cmd = editor.to_command(); let mut cmd = editor.to_command();
@ -3003,7 +3003,7 @@ impl fmt::Display for RemoteBookmarkNamePattern {
/// Jujutsu (An experimental VCS) /// Jujutsu (An experimental VCS)
/// ///
/// To get started, see the tutorial at https://martinvonz.github.io/jj/latest/tutorial/. /// To get started, see the tutorial at https://jj-vcs.github.io/jj/latest/tutorial/.
#[allow(rustdoc::bare_urls)] #[allow(rustdoc::bare_urls)]
#[derive(clap::Parser, Clone, Debug)] #[derive(clap::Parser, Clone, Debug)]
#[command(name = "jj")] #[command(name = "jj")]

View File

@ -638,8 +638,8 @@ fn file_pattern_parse_error_hint(err: &FilePatternParseError) -> Option<String>
fn fileset_parse_error_hint(err: &FilesetParseError) -> Option<String> { fn fileset_parse_error_hint(err: &FilesetParseError) -> Option<String> {
match err.kind() { match err.kind() {
FilesetParseErrorKind::SyntaxError => Some(String::from( FilesetParseErrorKind::SyntaxError => Some(String::from(
"See https://martinvonz.github.io/jj/latest/filesets/ for filesets syntax, or for how \ "See https://jj-vcs.github.io/jj/latest/filesets/ for filesets syntax, or for how to \
to match file paths.", match file paths.",
)), )),
FilesetParseErrorKind::NoSuchFunction { FilesetParseErrorKind::NoSuchFunction {
name: _, name: _,
@ -760,7 +760,7 @@ fn try_handle_command_result(
print_error(ui, "Config error: ", err, hints)?; print_error(ui, "Config error: ", err, hints)?;
writeln!( writeln!(
ui.stderr_formatter().labeled("hint"), ui.stderr_formatter().labeled("hint"),
"For help, see https://martinvonz.github.io/jj/latest/config/." "For help, see https://jj-vcs.github.io/jj/latest/config/."
)?; )?;
Ok(ExitCode::from(1)) Ok(ExitCode::from(1))
} }

View File

@ -31,7 +31,7 @@ pub struct BookmarkDeleteArgs {
/// ///
/// By default, the specified name matches exactly. Use `glob:` prefix to /// By default, the specified name matches exactly. Use `glob:` prefix to
/// select bookmarks by wildcard pattern. For details, see /// select bookmarks by wildcard pattern. For details, see
/// https://martinvonz.github.io/jj/latest/revsets/#string-patterns. /// https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.
#[arg( #[arg(
required = true, required = true,
value_parser = StringPattern::parse, value_parser = StringPattern::parse,

View File

@ -37,7 +37,7 @@ pub struct BookmarkForgetArgs {
/// ///
/// By default, the specified name matches exactly. Use `glob:` prefix to /// By default, the specified name matches exactly. Use `glob:` prefix to
/// select bookmarks by wildcard pattern. For details, see /// select bookmarks by wildcard pattern. For details, see
/// https://martinvonz.github.io/jj/latest/revsets/#string-patterns. /// https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.
#[arg( #[arg(
required = true, required = true,
value_parser = StringPattern::parse, value_parser = StringPattern::parse,

View File

@ -37,7 +37,7 @@ use crate::ui::Ui;
/// "+". /// "+".
/// ///
/// For information about bookmarks, see /// For information about bookmarks, see
/// https://martinvonz.github.io/jj/latest/bookmarks/. /// https://jj-vcs.github.io/jj/latest/bookmarks/.
#[derive(clap::Args, Clone, Debug)] #[derive(clap::Args, Clone, Debug)]
pub struct BookmarkListArgs { pub struct BookmarkListArgs {
/// Show all tracking and non-tracking remote bookmarks including the ones /// Show all tracking and non-tracking remote bookmarks including the ones
@ -53,7 +53,7 @@ pub struct BookmarkListArgs {
/// ///
/// By default, the specified remote name matches exactly. Use `glob:` /// By default, the specified remote name matches exactly. Use `glob:`
/// prefix to select remotes by wildcard pattern. For details, see /// prefix to select remotes by wildcard pattern. For details, see
/// https://martinvonz.github.io/jj/latest/revsets/#string-patterns. /// https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.
#[arg( #[arg(
long = "remote", long = "remote",
value_name = "REMOTE", value_name = "REMOTE",
@ -76,7 +76,7 @@ pub struct BookmarkListArgs {
/// ///
/// By default, the specified name matches exactly. Use `glob:` prefix to /// By default, the specified name matches exactly. Use `glob:` prefix to
/// select bookmarks by wildcard pattern. For details, see /// select bookmarks by wildcard pattern. For details, see
/// https://martinvonz.github.io/jj/latest/revsets/#string-patterns. /// https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.
#[arg(value_parser = StringPattern::parse, add = ArgValueCandidates::new(complete::bookmarks))] #[arg(value_parser = StringPattern::parse, add = ArgValueCandidates::new(complete::bookmarks))]
names: Option<Vec<StringPattern>>, names: Option<Vec<StringPattern>>,
@ -91,7 +91,7 @@ pub struct BookmarkListArgs {
/// ///
/// All 0-argument methods of the `RefName` type are available as keywords. /// All 0-argument methods of the `RefName` type are available as keywords.
/// ///
/// For the syntax, see https://martinvonz.github.io/jj/latest/templates/ /// For the syntax, see https://jj-vcs.github.io/jj/latest/templates/
#[arg(long, short = 'T')] #[arg(long, short = 'T')]
template: Option<String>, template: Option<String>,
} }

View File

@ -62,7 +62,7 @@ use crate::ui::Ui;
/// Manage bookmarks [default alias: b] /// Manage bookmarks [default alias: b]
/// ///
/// For information about bookmarks, see /// For information about bookmarks, see
/// https://martinvonz.github.io/jj/latest/bookmarks. /// https://jj-vcs.github.io/jj/latest/bookmarks.
#[derive(clap::Subcommand, Clone, Debug)] #[derive(clap::Subcommand, Clone, Debug)]
pub enum BookmarkCommand { pub enum BookmarkCommand {
#[command(visible_alias("c"))] #[command(visible_alias("c"))]

View File

@ -73,7 +73,7 @@ pub struct BookmarkMoveArgs {
/// ///
/// By default, the specified name matches exactly. Use `glob:` prefix to /// By default, the specified name matches exactly. Use `glob:` prefix to
/// select bookmarks by wildcard pattern. For details, see /// select bookmarks by wildcard pattern. For details, see
/// https://martinvonz.github.io/jj/latest/revsets/#string-patterns. /// https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.
#[arg( #[arg(
group = "source", group = "source",
value_parser = StringPattern::parse, value_parser = StringPattern::parse,

View File

@ -37,7 +37,7 @@ pub struct BookmarkTrackArgs {
/// ///
/// By default, the specified name matches exactly. Use `glob:` prefix to /// By default, the specified name matches exactly. Use `glob:` prefix to
/// select bookmarks by wildcard pattern. For details, see /// select bookmarks by wildcard pattern. For details, see
/// https://martinvonz.github.io/jj/latest/revsets/#string-patterns. /// https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.
/// ///
/// Examples: bookmark@remote, glob:main@*, glob:jjfan-*@upstream /// Examples: bookmark@remote, glob:main@*, glob:jjfan-*@upstream
#[arg( #[arg(

View File

@ -33,7 +33,7 @@ pub struct BookmarkUntrackArgs {
/// ///
/// By default, the specified name matches exactly. Use `glob:` prefix to /// By default, the specified name matches exactly. Use `glob:` prefix to
/// select bookmarks by wildcard pattern. For details, see /// select bookmarks by wildcard pattern. For details, see
/// https://martinvonz.github.io/jj/latest/revsets/#string-patterns. /// https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.
/// ///
/// Examples: bookmark@remote, glob:main@*, glob:jjfan-*@upstream /// Examples: bookmark@remote, glob:main@*, glob:jjfan-*@upstream
#[arg( #[arg(

View File

@ -52,7 +52,7 @@ pub struct ConfigListArgs {
/// * `value: String`: Serialized value in TOML syntax. /// * `value: String`: Serialized value in TOML syntax.
/// * `overridden: Boolean`: True if the value is shadowed by other. /// * `overridden: Boolean`: True if the value is shadowed by other.
/// ///
/// For the syntax, see https://martinvonz.github.io/jj/latest/templates/ /// For the syntax, see https://jj-vcs.github.io/jj/latest/templates/
#[arg(long, short = 'T', verbatim_doc_comment)] #[arg(long, short = 'T', verbatim_doc_comment)]
template: Option<String>, template: Option<String>,
} }

View File

@ -119,7 +119,7 @@ impl ConfigLevelArgs {
/// environment variables. /// environment variables.
/// ///
/// For file locations, supported config options, and other details about jj /// For file locations, supported config options, and other details about jj
/// config, see https://martinvonz.github.io/jj/latest/config/. /// config, see https://jj-vcs.github.io/jj/latest/config/.
#[derive(clap::Subcommand, Clone, Debug)] #[derive(clap::Subcommand, Clone, Debug)]
pub(crate) enum ConfigCommand { pub(crate) enum ConfigCommand {
#[command(visible_alias("e"))] #[command(visible_alias("e"))]

View File

@ -36,7 +36,7 @@ use crate::ui::Ui;
/// the "from" revision to the "to" revision. /// the "from" revision to the "to" revision.
/// ///
/// [diff editor]: /// [diff editor]:
/// https://martinvonz.github.io/jj/latest/config/#editing-diffs /// https://jj-vcs.github.io/jj/latest/config/#editing-diffs
/// ///
/// Edit the right side of the diff until it looks the way you want. Once you /// Edit the right side of the diff until it looks the way you want. Once you
/// close the editor, the revision specified with `-r` or `--to` will be /// close the editor, the revision specified with `-r` or `--to` will be

View File

@ -29,7 +29,7 @@ use crate::ui::Ui;
/// Note: it is generally recommended to instead use `jj new` and `jj /// Note: it is generally recommended to instead use `jj new` and `jj
/// squash`. /// squash`.
/// ///
/// For more information, see https://martinvonz.github.io/jj/latest/FAQ#how-do-i-resume-working-on-an-existing-change /// For more information, see https://jj-vcs.github.io/jj/latest/FAQ#how-do-i-resume-working-on-an-existing-change
#[derive(clap::Args, Clone, Debug)] #[derive(clap::Args, Clone, Debug)]
pub(crate) struct EditArgs { pub(crate) struct EditArgs {
/// The commit to edit /// The commit to edit

View File

@ -61,7 +61,7 @@ pub(crate) struct EvologArgs {
no_graph: bool, no_graph: bool,
/// Render each revision using the given template /// Render each revision using the given template
/// ///
/// For the syntax, see https://martinvonz.github.io/jj/latest/templates/ /// For the syntax, see https://jj-vcs.github.io/jj/latest/templates/
#[arg(long, short = 'T')] #[arg(long, short = 'T')]
template: Option<String>, template: Option<String>,
/// Show patch compared to the previous version of this change /// Show patch compared to the previous version of this change

View File

@ -52,7 +52,7 @@ use crate::ui::Ui;
/// Commands for working with Git remotes and the underlying Git repo /// Commands for working with Git remotes and the underlying Git repo
/// ///
/// For a comparison with Git, including a table of commands, see /// For a comparison with Git, including a table of commands, see
/// https://martinvonz.github.io/jj/latest/git-comparison/. /// https://jj-vcs.github.io/jj/latest/git-comparison/.
#[derive(Subcommand, Clone, Debug)] #[derive(Subcommand, Clone, Debug)]
pub enum GitCommand { pub enum GitCommand {
Clone(GitCloneArgs), Clone(GitCloneArgs),

View File

@ -68,10 +68,10 @@ use crate::ui::Ui;
/// conflicts]. /// conflicts].
/// ///
/// [safety checks]: /// [safety checks]:
/// https://martinvonz.github.io/jj/latest/bookmarks/#pushing-bookmarks-safety-checks /// https://jj-vcs.github.io/jj/latest/bookmarks/#pushing-bookmarks-safety-checks
/// ///
/// [bookmark conflicts]: /// [bookmark conflicts]:
/// https://martinvonz.github.io/jj/latest/bookmarks/#conflicts /// https://jj-vcs.github.io/jj/latest/bookmarks/#conflicts
#[derive(clap::Args, Clone, Debug)] #[derive(clap::Args, Clone, Debug)]
#[command(group(ArgGroup::new("specific").args(&["bookmark", "change", "revisions"]).multiple(true)))] #[command(group(ArgGroup::new("specific").args(&["bookmark", "change", "revisions"]).multiple(true)))]
@ -90,7 +90,7 @@ pub struct GitPushArgs {
/// ///
/// By default, the specified name matches exactly. Use `glob:` prefix to /// By default, the specified name matches exactly. Use `glob:` prefix to
/// select bookmarks by wildcard pattern. For details, see /// select bookmarks by wildcard pattern. For details, see
/// https://martinvonz.github.io/jj/latest/revsets#string-patterns. /// https://jj-vcs.github.io/jj/latest/revsets#string-patterns.
#[arg( #[arg(
long, short, long, short,
alias = "branch", alias = "branch",
@ -105,7 +105,7 @@ pub struct GitPushArgs {
/// ///
/// This usually means that the bookmark was already pushed to or fetched /// This usually means that the bookmark was already pushed to or fetched
/// from the relevant remote. For details, see /// from the relevant remote. For details, see
/// https://martinvonz.github.io/jj/latest/bookmarks#remotes-and-tracked-bookmarks /// https://jj-vcs.github.io/jj/latest/bookmarks#remotes-and-tracked-bookmarks
#[arg(long)] #[arg(long)]
tracked: bool, tracked: bool,
/// Push all deleted bookmarks /// Push all deleted bookmarks

View File

@ -93,7 +93,7 @@ struct Keyword {
// //
// TODO: Find a way to render markdown using ANSI escape codes. // TODO: Find a way to render markdown using ANSI escape codes.
// //
// Maybe we can steal some ideas from https://github.com/martinvonz/jj/pull/3130 // Maybe we can steal some ideas from https://github.com/jj-vcs/jj/pull/3130
const KEYWORDS: &[Keyword] = &[ const KEYWORDS: &[Keyword] = &[
Keyword { Keyword {
name: "bookmarks", name: "bookmarks",

View File

@ -47,16 +47,16 @@ use crate::ui::Ui;
/// before parents. By default, the output only includes mutable revisions, /// before parents. By default, the output only includes mutable revisions,
/// along with some additional revisions for context. Use `jj log -r ::` to see /// along with some additional revisions for context. Use `jj log -r ::` to see
/// all revisions. See `jj help -k revsets` (or /// all revisions. See `jj help -k revsets` (or
/// https://martinvonz.github.io/jj/latest/revsets/) for information about the /// https://jj-vcs.github.io/jj/latest/revsets/) for information about the
/// syntax. /// syntax.
/// ///
/// Spans of revisions that are not included in the graph per `--revisions` are /// Spans of revisions that are not included in the graph per `--revisions` are
/// rendered as a synthetic node labeled "(elided revisions)". /// rendered as a synthetic node labeled "(elided revisions)".
/// ///
/// The working-copy commit is indicated by a `@` symbol in the graph. Immutable /// The working-copy commit is indicated by a `@` symbol in the graph. Immutable
/// revisions (https://martinvonz.github.io/jj/latest/config/#set-of-immutable-commits) /// revisions (https://jj-vcs.github.io/jj/latest/config/#set-of-immutable-commits)
/// have a `◆` symbol. Other commits have a `○` symbol. To customize these /// have a `◆` symbol. Other commits have a `○` symbol. To customize these
/// symbols, see https://martinvonz.github.io/jj/latest/config/#node-style. /// symbols, see https://jj-vcs.github.io/jj/latest/config/#node-style.
#[derive(clap::Args, Clone, Debug)] #[derive(clap::Args, Clone, Debug)]
pub(crate) struct LogArgs { pub(crate) struct LogArgs {
/// Which revisions to show /// Which revisions to show
@ -95,7 +95,7 @@ pub(crate) struct LogArgs {
/// Run `jj log -T` to list the built-in templates. /// Run `jj log -T` to list the built-in templates.
/// ///
/// You can also specify arbitrary template expressions. For the syntax, /// You can also specify arbitrary template expressions. For the syntax,
/// see https://martinvonz.github.io/jj/latest/templates/. /// see https://jj-vcs.github.io/jj/latest/templates/.
/// ///
/// If not specified, this defaults to the `templates.log` setting. /// If not specified, this defaults to the `templates.log` setting.
#[arg(long, short = 'T')] #[arg(long, short = 'T')]

View File

@ -48,7 +48,7 @@ use crate::ui::Ui;
/// working copy and the `main` bookmark as parents. /// working copy and the `main` bookmark as parents.
/// ///
/// For more information, see /// For more information, see
/// https://martinvonz.github.io/jj/latest/working-copy/. /// https://jj-vcs.github.io/jj/latest/working-copy/.
#[derive(clap::Args, Clone, Debug)] #[derive(clap::Args, Clone, Debug)]
pub(crate) struct NewArgs { pub(crate) struct NewArgs {
/// Parent(s) of the new change /// Parent(s) of the new change

View File

@ -62,7 +62,7 @@ pub struct OperationLogArgs {
no_graph: bool, no_graph: bool,
/// Render each operation using the given template /// Render each operation using the given template
/// ///
/// For the syntax, see https://martinvonz.github.io/jj/latest/templates/ /// For the syntax, see https://jj-vcs.github.io/jj/latest/templates/
#[arg(long, short = 'T')] #[arg(long, short = 'T')]
template: Option<String>, template: Option<String>,
/// Show changes to the repository at each operation /// Show changes to the repository at each operation

View File

@ -40,7 +40,7 @@ use crate::ui::Ui;
/// Commands for working with the operation log /// Commands for working with the operation log
/// ///
/// For information about the operation log, see /// For information about the operation log, see
/// https://martinvonz.github.io/jj/latest/operation-log/. /// https://jj-vcs.github.io/jj/latest/operation-log/.
#[derive(Subcommand, Clone, Debug)] #[derive(Subcommand, Clone, Debug)]
pub enum OperationCommand { pub enum OperationCommand {
Abandon(OperationAbandonArgs), Abandon(OperationAbandonArgs),

View File

@ -34,7 +34,7 @@ pub(crate) struct ShowArgs {
unused_revision: bool, unused_revision: bool,
/// Render a revision using the given template /// Render a revision using the given template
/// ///
/// For the syntax, see https://martinvonz.github.io/jj/latest/templates/ /// For the syntax, see https://jj-vcs.github.io/jj/latest/templates/
#[arg(long, short = 'T')] #[arg(long, short = 'T')]
template: Option<String>, template: Option<String>,
#[command(flatten)] #[command(flatten)]

View File

@ -36,7 +36,7 @@ use crate::ui::Ui;
/// revision. The remaining changes will be put in a new revision on top. /// revision. The remaining changes will be put in a new revision on top.
/// ///
/// [diff editor]: /// [diff editor]:
/// https://martinvonz.github.io/jj/latest/config/#editing-diffs /// https://jj-vcs.github.io/jj/latest/config/#editing-diffs
/// ///
/// If the change you split had a description, you will be asked to enter a /// If the change you split had a description, you will be asked to enter a
/// change description for each commit. If the change did not have a /// change description for each commit. If the change did not have a

View File

@ -32,7 +32,7 @@ use crate::ui::Ui;
/// ///
/// * The working copy commit and its (first) parent, and a summary of the /// * The working copy commit and its (first) parent, and a summary of the
/// changes between them /// changes between them
/// * Conflicted bookmarks (see https://martinvonz.github.io/jj/latest/bookmarks/) /// * Conflicted bookmarks (see https://jj-vcs.github.io/jj/latest/bookmarks/)
#[derive(clap::Args, Clone, Debug)] #[derive(clap::Args, Clone, Debug)]
#[command(visible_alias = "st")] #[command(visible_alias = "st")]
pub(crate) struct StatusArgs { pub(crate) struct StatusArgs {

View File

@ -34,14 +34,14 @@ pub struct TagListArgs {
/// ///
/// By default, the specified name matches exactly. Use `glob:` prefix to /// By default, the specified name matches exactly. Use `glob:` prefix to
/// select tags by wildcard pattern. For details, see /// select tags by wildcard pattern. For details, see
/// https://martinvonz.github.io/jj/latest/revsets/#string-patterns. /// https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.
#[arg(value_parser = StringPattern::parse)] #[arg(value_parser = StringPattern::parse)]
pub names: Vec<StringPattern>, pub names: Vec<StringPattern>,
/// Render each tag using the given template /// Render each tag using the given template
/// ///
/// All 0-argument methods of the `RefName` type are available as keywords. /// All 0-argument methods of the `RefName` type are available as keywords.
/// ///
/// For the syntax, see https://martinvonz.github.io/jj/latest/templates/ /// For the syntax, see https://jj-vcs.github.io/jj/latest/templates/
#[arg(long, short = 'T')] #[arg(long, short = 'T')]
template: Option<String>, template: Option<String>,
} }

View File

@ -21,7 +21,7 @@ use crate::ui::Ui;
/// Update a workspace that has become stale /// Update a workspace that has become stale
/// ///
/// For information about stale working copies, see /// For information about stale working copies, see
/// https://martinvonz.github.io/jj/latest/working-copy/. /// https://jj-vcs.github.io/jj/latest/working-copy/.
#[derive(clap::Args, Clone, Debug)] #[derive(clap::Args, Clone, Debug)]
pub struct WorkspaceUpdateStaleArgs {} pub struct WorkspaceUpdateStaleArgs {}

View File

@ -831,7 +831,7 @@ fn builtin_commit_methods<'repo>() -> CommitTemplateBuildMethodFnMap<'repo, Comm
expect_fileset_literal(diagnostics, node, language.path_converter)? expect_fileset_literal(diagnostics, node, language.path_converter)?
} else { } else {
// TODO: defaults to CLI path arguments? // TODO: defaults to CLI path arguments?
// https://github.com/martinvonz/jj/issues/2933#issuecomment-1925870731 // https://github.com/jj-vcs/jj/issues/2933#issuecomment-1925870731
FilesetExpression::all() FilesetExpression::all()
}; };
let repo = language.repo; let repo = language.repo;

View File

@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema", "$schema": "http://json-schema.org/draft-07/schema",
"title": "Jujutsu config", "title": "Jujutsu config",
"type": "object", "type": "object",
"description": "User configuration for Jujutsu VCS. See https://martinvonz.github.io/jj/latest/config/ for details", "description": "User configuration for Jujutsu VCS. See https://jj-vcs.github.io/jj/latest/config/ for details",
"properties": { "properties": {
"user": { "user": {
"type": "object", "type": "object",
@ -137,7 +137,7 @@
"description": "Options for rendering revision graphs from jj log etc", "description": "Options for rendering revision graphs from jj log etc",
"properties": { "properties": {
"style": { "style": {
"description": "Style of connectors/markings used to render the graph. See https://martinvonz.github.io/jj/latest/config/#graph-style", "description": "Style of connectors/markings used to render the graph. See https://jj-vcs.github.io/jj/latest/config/#graph-style",
"enum": [ "enum": [
"curved", "curved",
"square", "square",
@ -330,7 +330,7 @@
"properties": { "properties": {
"auto-local-bookmark": { "auto-local-bookmark": {
"type": "boolean", "type": "boolean",
"description": "Whether jj creates a local bookmark with the same name when it imports a remote-tracking branch from git. See https://martinvonz.github.io/jj/latest/config/#automatic-local-bookmark-creation", "description": "Whether jj creates a local bookmark with the same name when it imports a remote-tracking branch from git. See https://jj-vcs.github.io/jj/latest/config/#automatic-local-bookmark-creation",
"default": false "default": false
}, },
"abandon-unreachable-commits": { "abandon-unreachable-commits": {
@ -405,12 +405,12 @@
"items": { "items": {
"type": "number" "type": "number"
}, },
"description": "Array of exit codes to indicate that the conflict was only partially resolved. See https://martinvonz.github.io/jj/latest/config/#editing-conflict-markers-with-a-tool-or-a-text-editor", "description": "Array of exit codes to indicate that the conflict was only partially resolved. See https://jj-vcs.github.io/jj/latest/config/#editing-conflict-markers-with-a-tool-or-a-text-editor",
"default": [] "default": []
}, },
"merge-tool-edits-conflict-markers": { "merge-tool-edits-conflict-markers": {
"type": "boolean", "type": "boolean",
"description": "Whether to populate the output file with conflict markers before starting the merge tool. See https://martinvonz.github.io/jj/latest/config/#editing-conflict-markers-with-a-tool-or-a-text-editor", "description": "Whether to populate the output file with conflict markers before starting the merge tool. See https://jj-vcs.github.io/jj/latest/config/#editing-conflict-markers-with-a-tool-or-a-text-editor",
"default": false "default": false
}, },
"conflict-marker-style": { "conflict-marker-style": {
@ -490,7 +490,7 @@
}, },
"auto-update-stale": { "auto-update-stale": {
"type": "boolean", "type": "boolean",
"description": "Whether to automatically update the working copy if it is stale. See https://martinvonz.github.io/jj/latest/working-copy/#stale-working-copy", "description": "Whether to automatically update the working copy if it is stale. See https://jj-vcs.github.io/jj/latest/working-copy/#stale-working-copy",
"default": "false" "default": "false"
}, },
"max-new-file-size": { "max-new-file-size": {

View File

@ -376,7 +376,7 @@ fn config_files_for(
/// Sources from the lowest precedence: /// Sources from the lowest precedence:
/// 1. Default /// 1. Default
/// 2. Base environment variables /// 2. Base environment variables
/// 3. [User config](https://martinvonz.github.io/jj/latest/config/) /// 3. [User config](https://jj-vcs.github.io/jj/latest/config/)
/// 4. Repo config `.jj/repo/config.toml` /// 4. Repo config `.jj/repo/config.toml`
/// 5. TODO: Workspace config `.jj/config.toml` /// 5. TODO: Workspace config `.jj/config.toml`
/// 6. Override environment variables /// 6. Override environment variables

View File

@ -53,7 +53,7 @@
"working_copy commit_id" = "bright blue" "working_copy commit_id" = "bright blue"
"working_copy change_id" = "bright magenta" "working_copy change_id" = "bright magenta"
# We do not use bright yellow because of how it looks on xterm's default theme. # We do not use bright yellow because of how it looks on xterm's default theme.
# https://github.com/martinvonz/jj/issues/528 # https://github.com/jj-vcs/jj/issues/528
"working_copy author" = "yellow" "working_copy author" = "yellow"
"working_copy committer" = "yellow" "working_copy committer" = "yellow"
"working_copy timestamp" = "bright cyan" "working_copy timestamp" = "bright cyan"

View File

@ -183,7 +183,7 @@ impl UiOutput {
Possible workarounds: Possible workarounds:
- Use `jj --no-pager` - Use `jj --no-pager`
- Configure a different pager, see https://martinvonz.github.io/jj/latest/windows/#pagination for Git Bash on Windows - Configure a different pager, see https://jj-vcs.github.io/jj/latest/windows/#pagination for Git Bash on Windows
- Use a different terminal (e.g. Windows Terminal or the Command Prompt) - Use a different terminal (e.g. Windows Terminal or the Command Prompt)
- Use `winpty jj ...`; `winpty` comes with Git Bash or Cygwin."# - Use `winpty jj ...`; `winpty` comes with Git Bash or Cygwin."#
} }

View File

@ -111,7 +111,7 @@ This document contains the help content for the `jj` command-line program.
Jujutsu (An experimental VCS) Jujutsu (An experimental VCS)
To get started, see the tutorial at https://martinvonz.github.io/jj/latest/tutorial/. To get started, see the tutorial at https://jj-vcs.github.io/jj/latest/tutorial/.
**Usage:** `jj [OPTIONS] [COMMAND]` **Usage:** `jj [OPTIONS] [COMMAND]`
@ -272,7 +272,7 @@ Apply the reverse of a revision on top of another revision
Manage bookmarks [default alias: b] Manage bookmarks [default alias: b]
For information about bookmarks, see https://martinvonz.github.io/jj/latest/bookmarks. For information about bookmarks, see https://jj-vcs.github.io/jj/latest/bookmarks.
**Usage:** `jj bookmark <COMMAND>` **Usage:** `jj bookmark <COMMAND>`
@ -316,7 +316,7 @@ Delete an existing bookmark and propagate the deletion to remotes on the next pu
* `<NAMES>` — The bookmarks to delete * `<NAMES>` — The bookmarks to delete
By default, the specified name matches exactly. Use `glob:` prefix to select bookmarks by wildcard pattern. For details, see https://martinvonz.github.io/jj/latest/revsets/#string-patterns. By default, the specified name matches exactly. Use `glob:` prefix to select bookmarks by wildcard pattern. For details, see https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.
@ -332,7 +332,7 @@ A forgotten bookmark will not impact remotes on future pushes. It will be recrea
* `<NAMES>` — The bookmarks to forget * `<NAMES>` — The bookmarks to forget
By default, the specified name matches exactly. Use `glob:` prefix to select bookmarks by wildcard pattern. For details, see https://martinvonz.github.io/jj/latest/revsets/#string-patterns. By default, the specified name matches exactly. Use `glob:` prefix to select bookmarks by wildcard pattern. For details, see https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.
@ -342,7 +342,7 @@ List bookmarks and their targets
By default, a tracking remote bookmark will be included only if its target is different from the local target. A non-tracking remote bookmark won't be listed. For a conflicted bookmark (both local and remote), old target revisions are preceded by a "-" and new target revisions are preceded by a "+". By default, a tracking remote bookmark will be included only if its target is different from the local target. A non-tracking remote bookmark won't be listed. For a conflicted bookmark (both local and remote), old target revisions are preceded by a "-" and new target revisions are preceded by a "+".
For information about bookmarks, see https://martinvonz.github.io/jj/latest/bookmarks/. For information about bookmarks, see https://jj-vcs.github.io/jj/latest/bookmarks/.
**Usage:** `jj bookmark list [OPTIONS] [NAMES]...` **Usage:** `jj bookmark list [OPTIONS] [NAMES]...`
@ -350,7 +350,7 @@ For information about bookmarks, see https://martinvonz.github.io/jj/latest/book
* `<NAMES>` — Show bookmarks whose local name matches * `<NAMES>` — Show bookmarks whose local name matches
By default, the specified name matches exactly. Use `glob:` prefix to select bookmarks by wildcard pattern. For details, see https://martinvonz.github.io/jj/latest/revsets/#string-patterns. By default, the specified name matches exactly. Use `glob:` prefix to select bookmarks by wildcard pattern. For details, see https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.
###### **Options:** ###### **Options:**
@ -359,7 +359,7 @@ For information about bookmarks, see https://martinvonz.github.io/jj/latest/book
Can be combined with `--tracked` or `--conflicted` to filter the bookmarks shown (can be repeated.) Can be combined with `--tracked` or `--conflicted` to filter the bookmarks shown (can be repeated.)
By default, the specified remote name matches exactly. Use `glob:` prefix to select remotes by wildcard pattern. For details, see https://martinvonz.github.io/jj/latest/revsets/#string-patterns. By default, the specified remote name matches exactly. Use `glob:` prefix to select remotes by wildcard pattern. For details, see https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.
* `-t`, `--tracked` — Show remote tracked bookmarks only. Omits local Git-tracking bookmarks by default * `-t`, `--tracked` — Show remote tracked bookmarks only. Omits local Git-tracking bookmarks by default
* `-c`, `--conflicted` — Show conflicted bookmarks only * `-c`, `--conflicted` — Show conflicted bookmarks only
* `-r`, `--revisions <REVISIONS>` — Show bookmarks whose local targets are in the given revisions * `-r`, `--revisions <REVISIONS>` — Show bookmarks whose local targets are in the given revisions
@ -369,7 +369,7 @@ For information about bookmarks, see https://martinvonz.github.io/jj/latest/book
All 0-argument methods of the `RefName` type are available as keywords. All 0-argument methods of the `RefName` type are available as keywords.
For the syntax, see https://martinvonz.github.io/jj/latest/templates/ For the syntax, see https://jj-vcs.github.io/jj/latest/templates/
@ -391,7 +391,7 @@ $ jj bookmark move --from 'heads(::@- & bookmarks())' --to @-
* `<NAMES>` — Move bookmarks matching the given name patterns * `<NAMES>` — Move bookmarks matching the given name patterns
By default, the specified name matches exactly. Use `glob:` prefix to select bookmarks by wildcard pattern. For details, see https://martinvonz.github.io/jj/latest/revsets/#string-patterns. By default, the specified name matches exactly. Use `glob:` prefix to select bookmarks by wildcard pattern. For details, see https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.
###### **Options:** ###### **Options:**
@ -447,7 +447,7 @@ A tracking remote bookmark will be imported as a local bookmark of the same name
* `<BOOKMARK@REMOTE>` — Remote bookmarks to track * `<BOOKMARK@REMOTE>` — Remote bookmarks to track
By default, the specified name matches exactly. Use `glob:` prefix to select bookmarks by wildcard pattern. For details, see https://martinvonz.github.io/jj/latest/revsets/#string-patterns. By default, the specified name matches exactly. Use `glob:` prefix to select bookmarks by wildcard pattern. For details, see https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.
Examples: bookmark@remote, glob:main@*, glob:jjfan-*@upstream Examples: bookmark@remote, glob:main@*, glob:jjfan-*@upstream
@ -465,7 +465,7 @@ A non-tracking remote bookmark is just a pointer to the last-fetched remote book
* `<BOOKMARK@REMOTE>` — Remote bookmarks to untrack * `<BOOKMARK@REMOTE>` — Remote bookmarks to untrack
By default, the specified name matches exactly. Use `glob:` prefix to select bookmarks by wildcard pattern. For details, see https://martinvonz.github.io/jj/latest/revsets/#string-patterns. By default, the specified name matches exactly. Use `glob:` prefix to select bookmarks by wildcard pattern. For details, see https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.
Examples: bookmark@remote, glob:main@*, glob:jjfan-*@upstream Examples: bookmark@remote, glob:main@*, glob:jjfan-*@upstream
@ -505,7 +505,7 @@ Manage config options
Operates on jj configuration, which comes from the config file and environment variables. Operates on jj configuration, which comes from the config file and environment variables.
For file locations, supported config options, and other details about jj config, see https://martinvonz.github.io/jj/latest/config/. For file locations, supported config options, and other details about jj config, see https://jj-vcs.github.io/jj/latest/config/.
**Usage:** `jj config <COMMAND>` **Usage:** `jj config <COMMAND>`
@ -579,7 +579,7 @@ List variables set in config file, along with their values
* `value: String`: Serialized value in TOML syntax. * `value: String`: Serialized value in TOML syntax.
* `overridden: Boolean`: True if the value is shadowed by other. * `overridden: Boolean`: True if the value is shadowed by other.
For the syntax, see https://martinvonz.github.io/jj/latest/templates/ For the syntax, see https://jj-vcs.github.io/jj/latest/templates/
@ -721,7 +721,7 @@ With the `-r` option, which is the default, starts a [diff editor] on the change
With the `--from` and/or `--to` options, starts a [diff editor] comparing the "from" revision to the "to" revision. With the `--from` and/or `--to` options, starts a [diff editor] comparing the "from" revision to the "to" revision.
[diff editor]: https://martinvonz.github.io/jj/latest/config/#editing-diffs [diff editor]: https://jj-vcs.github.io/jj/latest/config/#editing-diffs
Edit the right side of the diff until it looks the way you want. Once you close the editor, the revision specified with `-r` or `--to` will be updated. Unless `--restore-descendants` is used, descendants will be rebased on top as usual, which may result in conflicts. Edit the right side of the diff until it looks the way you want. Once you close the editor, the revision specified with `-r` or `--to` will be updated. Unless `--restore-descendants` is used, descendants will be rebased on top as usual, which may result in conflicts.
@ -775,7 +775,7 @@ Sets the specified revision as the working-copy revision
Note: it is generally recommended to instead use `jj new` and `jj squash`. Note: it is generally recommended to instead use `jj new` and `jj squash`.
For more information, see https://martinvonz.github.io/jj/latest/FAQ#how-do-i-resume-working-on-an-existing-change For more information, see https://jj-vcs.github.io/jj/latest/FAQ#how-do-i-resume-working-on-an-existing-change
**Usage:** `jj edit <REVISION>` **Usage:** `jj edit <REVISION>`
@ -802,7 +802,7 @@ Lists the previous commits which a change has pointed to. The current commit of
* `--no-graph` — Don't show the graph, show a flat list of revisions * `--no-graph` — Don't show the graph, show a flat list of revisions
* `-T`, `--template <TEMPLATE>` — Render each revision using the given template * `-T`, `--template <TEMPLATE>` — Render each revision using the given template
For the syntax, see https://martinvonz.github.io/jj/latest/templates/ For the syntax, see https://jj-vcs.github.io/jj/latest/templates/
* `-p`, `--patch` — Show patch compared to the previous version of this change * `-p`, `--patch` — Show patch compared to the previous version of this change
If the previous version has different parents, it will be temporarily rebased to the parents of the new version, so the diff is not contaminated by unrelated changes. If the previous version has different parents, it will be temporarily rebased to the parents of the new version, so the diff is not contaminated by unrelated changes.
@ -1039,7 +1039,7 @@ will be removed in a future version.
Commands for working with Git remotes and the underlying Git repo Commands for working with Git remotes and the underlying Git repo
For a comparison with Git, including a table of commands, see https://martinvonz.github.io/jj/latest/git-comparison/. For a comparison with Git, including a table of commands, see https://jj-vcs.github.io/jj/latest/git-comparison/.
**Usage:** `jj git <COMMAND>` **Usage:** `jj git <COMMAND>`
@ -1155,9 +1155,9 @@ By default, pushes tracking bookmarks pointing to `remote_bookmarks(remote=<remo
Before the command actually moves, creates, or deletes a remote bookmark, it makes several [safety checks]. If there is a problem, you may need to run `jj git fetch --remote <remote name>` and/or resolve some [bookmark conflicts]. Before the command actually moves, creates, or deletes a remote bookmark, it makes several [safety checks]. If there is a problem, you may need to run `jj git fetch --remote <remote name>` and/or resolve some [bookmark conflicts].
[safety checks]: https://martinvonz.github.io/jj/latest/bookmarks/#pushing-bookmarks-safety-checks [safety checks]: https://jj-vcs.github.io/jj/latest/bookmarks/#pushing-bookmarks-safety-checks
[bookmark conflicts]: https://martinvonz.github.io/jj/latest/bookmarks/#conflicts [bookmark conflicts]: https://jj-vcs.github.io/jj/latest/bookmarks/#conflicts
**Usage:** `jj git push [OPTIONS]` **Usage:** `jj git push [OPTIONS]`
@ -1168,11 +1168,11 @@ Before the command actually moves, creates, or deletes a remote bookmark, it mak
This defaults to the `git.push` setting. If that is not configured, and if there are multiple remotes, the remote named "origin" will be used. Unlike in Git, the default remote is not derived from the tracked remote bookmarks. This defaults to the `git.push` setting. If that is not configured, and if there are multiple remotes, the remote named "origin" will be used. Unlike in Git, the default remote is not derived from the tracked remote bookmarks.
* `-b`, `--bookmark <BOOKMARK>` — Push only this bookmark, or bookmarks matching a pattern (can be repeated) * `-b`, `--bookmark <BOOKMARK>` — Push only this bookmark, or bookmarks matching a pattern (can be repeated)
By default, the specified name matches exactly. Use `glob:` prefix to select bookmarks by wildcard pattern. For details, see https://martinvonz.github.io/jj/latest/revsets#string-patterns. By default, the specified name matches exactly. Use `glob:` prefix to select bookmarks by wildcard pattern. For details, see https://jj-vcs.github.io/jj/latest/revsets#string-patterns.
* `--all` — Push all bookmarks (including new and deleted bookmarks) * `--all` — Push all bookmarks (including new and deleted bookmarks)
* `--tracked` — Push all tracked bookmarks (including deleted bookmarks) * `--tracked` — Push all tracked bookmarks (including deleted bookmarks)
This usually means that the bookmark was already pushed to or fetched from the relevant remote. For details, see https://martinvonz.github.io/jj/latest/bookmarks#remotes-and-tracked-bookmarks This usually means that the bookmark was already pushed to or fetched from the relevant remote. For details, see https://jj-vcs.github.io/jj/latest/bookmarks#remotes-and-tracked-bookmarks
* `--deleted` — Push all deleted bookmarks * `--deleted` — Push all deleted bookmarks
Only tracked bookmarks can be successfully deleted on the remote. A warning will be printed if any untracked bookmarks on the remote correspond to missing local bookmarks. Only tracked bookmarks can be successfully deleted on the remote. A warning will be printed if any untracked bookmarks on the remote correspond to missing local bookmarks.
@ -1352,11 +1352,11 @@ This excludes changes from other commits by temporarily rebasing `--from` onto `
Show revision history Show revision history
Renders a graphical view of the project's history, ordered with children before parents. By default, the output only includes mutable revisions, along with some additional revisions for context. Use `jj log -r ::` to see all revisions. See `jj help -k revsets` (or https://martinvonz.github.io/jj/latest/revsets/) for information about the syntax. Renders a graphical view of the project's history, ordered with children before parents. By default, the output only includes mutable revisions, along with some additional revisions for context. Use `jj log -r ::` to see all revisions. See `jj help -k revsets` (or https://jj-vcs.github.io/jj/latest/revsets/) for information about the syntax.
Spans of revisions that are not included in the graph per `--revisions` are rendered as a synthetic node labeled "(elided revisions)". Spans of revisions that are not included in the graph per `--revisions` are rendered as a synthetic node labeled "(elided revisions)".
The working-copy commit is indicated by a `@` symbol in the graph. Immutable revisions (https://martinvonz.github.io/jj/latest/config/#set-of-immutable-commits) have a `◆` symbol. Other commits have a `○` symbol. To customize these symbols, see https://martinvonz.github.io/jj/latest/config/#node-style. The working-copy commit is indicated by a `@` symbol in the graph. Immutable revisions (https://jj-vcs.github.io/jj/latest/config/#set-of-immutable-commits) have a `◆` symbol. Other commits have a `○` symbol. To customize these symbols, see https://jj-vcs.github.io/jj/latest/config/#node-style.
**Usage:** `jj log [OPTIONS] [PATHS]...` **Usage:** `jj log [OPTIONS] [PATHS]...`
@ -1378,7 +1378,7 @@ The working-copy commit is indicated by a `@` symbol in the graph. Immutable rev
Run `jj log -T` to list the built-in templates. Run `jj log -T` to list the built-in templates.
You can also specify arbitrary template expressions. For the syntax, see https://martinvonz.github.io/jj/latest/templates/. You can also specify arbitrary template expressions. For the syntax, see https://jj-vcs.github.io/jj/latest/templates/.
If not specified, this defaults to the `templates.log` setting. If not specified, this defaults to the `templates.log` setting.
* `-p`, `--patch` — Show patch * `-p`, `--patch` — Show patch
@ -1407,7 +1407,7 @@ By default, `jj` will edit the new change, making the working copy represent the
Note that you can create a merge commit by specifying multiple revisions as argument. For example, `jj new @ main` will create a new commit with the working copy and the `main` bookmark as parents. Note that you can create a merge commit by specifying multiple revisions as argument. For example, `jj new @ main` will create a new commit with the working copy and the `main` bookmark as parents.
For more information, see https://martinvonz.github.io/jj/latest/working-copy/. For more information, see https://jj-vcs.github.io/jj/latest/working-copy/.
**Usage:** `jj new [OPTIONS] [REVISIONS]...` **Usage:** `jj new [OPTIONS] [REVISIONS]...`
@ -1481,7 +1481,7 @@ B => @
Commands for working with the operation log Commands for working with the operation log
For information about the operation log, see https://martinvonz.github.io/jj/latest/operation-log/. For information about the operation log, see https://jj-vcs.github.io/jj/latest/operation-log/.
**Usage:** `jj operation <COMMAND>` **Usage:** `jj operation <COMMAND>`
@ -1560,7 +1560,7 @@ Like other commands, `jj op log` snapshots the current working-copy changes and
* `--no-graph` — Don't show the graph, show a flat list of operations * `--no-graph` — Don't show the graph, show a flat list of operations
* `-T`, `--template <TEMPLATE>` — Render each operation using the given template * `-T`, `--template <TEMPLATE>` — Render each operation using the given template
For the syntax, see https://martinvonz.github.io/jj/latest/templates/ For the syntax, see https://jj-vcs.github.io/jj/latest/templates/
* `--op-diff` — Show changes to the repository at each operation * `--op-diff` — Show changes to the repository at each operation
* `-p`, `--patch` — Show patch of modifications to changes (implies --op-diff) * `-p`, `--patch` — Show patch of modifications to changes (implies --op-diff)
@ -1961,7 +1961,7 @@ Show commit description and changes in a revision
* `-T`, `--template <TEMPLATE>` — Render a revision using the given template * `-T`, `--template <TEMPLATE>` — Render a revision using the given template
For the syntax, see https://martinvonz.github.io/jj/latest/templates/ For the syntax, see https://jj-vcs.github.io/jj/latest/templates/
* `-s`, `--summary` — For each path, show only whether it was modified, added, or deleted * `-s`, `--summary` — For each path, show only whether it was modified, added, or deleted
* `--stat` — Show a histogram of the changes * `--stat` — Show a histogram of the changes
* `--types` — For each path, show only its type before and after * `--types` — For each path, show only its type before and after
@ -2061,7 +2061,7 @@ Split a revision in two
Starts a [diff editor] on the changes in the revision. Edit the right side of the diff until it has the content you want in the first revision. Once you close the editor, your edited content will replace the previous revision. The remaining changes will be put in a new revision on top. Starts a [diff editor] on the changes in the revision. Edit the right side of the diff until it has the content you want in the first revision. Once you close the editor, your edited content will replace the previous revision. The remaining changes will be put in a new revision on top.
[diff editor]: https://martinvonz.github.io/jj/latest/config/#editing-diffs [diff editor]: https://jj-vcs.github.io/jj/latest/config/#editing-diffs
If the change you split had a description, you will be asked to enter a change description for each commit. If the change did not have a description, the second part will not get a description, and you will be asked for a description only for the first part. If the change you split had a description, you will be asked to enter a change description for each commit. If the change did not have a description, the second part will not get a description, and you will be asked for a description only for the first part.
@ -2125,7 +2125,7 @@ Show high-level repo status
This includes: This includes:
* The working copy commit and its (first) parent, and a summary of the changes between them * Conflicted bookmarks (see https://martinvonz.github.io/jj/latest/bookmarks/) * The working copy commit and its (first) parent, and a summary of the changes between them * Conflicted bookmarks (see https://jj-vcs.github.io/jj/latest/bookmarks/)
**Usage:** `jj status [PATHS]...` **Usage:** `jj status [PATHS]...`
@ -2157,7 +2157,7 @@ List tags
* `<NAMES>` — Show tags whose local name matches * `<NAMES>` — Show tags whose local name matches
By default, the specified name matches exactly. Use `glob:` prefix to select tags by wildcard pattern. For details, see https://martinvonz.github.io/jj/latest/revsets/#string-patterns. By default, the specified name matches exactly. Use `glob:` prefix to select tags by wildcard pattern. For details, see https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.
###### **Options:** ###### **Options:**
@ -2165,7 +2165,7 @@ List tags
All 0-argument methods of the `RefName` type are available as keywords. All 0-argument methods of the `RefName` type are available as keywords.
For the syntax, see https://martinvonz.github.io/jj/latest/templates/ For the syntax, see https://jj-vcs.github.io/jj/latest/templates/
@ -2459,7 +2459,7 @@ Show the current workspace root directory
Update a workspace that has become stale Update a workspace that has become stale
For information about stale working copies, see https://martinvonz.github.io/jj/latest/working-copy/. For information about stale working copies, see https://jj-vcs.github.io/jj/latest/working-copy/.
**Usage:** `jj workspace update-stale` **Usage:** `jj workspace update-stale`

View File

@ -165,7 +165,7 @@ fn test_basics() {
"###); "###);
} }
// This behavior illustrates https://github.com/martinvonz/jj/issues/2600. // This behavior illustrates https://github.com/jj-vcs/jj/issues/2600.
// See also the corresponding test in `test_rebase_command` // See also the corresponding test in `test_rebase_command`
#[test] #[test]
fn test_bug_2600() { fn test_bug_2600() {

View File

@ -156,24 +156,24 @@ fn test_absorb_replace_single_line_hunk() {
test_env.jj_cmd_ok(&repo_path, &["new"]); test_env.jj_cmd_ok(&repo_path, &["new"]);
std::fs::write(repo_path.join("file1"), "2a\n1A\n2b\n").unwrap(); std::fs::write(repo_path.join("file1"), "2a\n1A\n2b\n").unwrap();
let (_stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["absorb"]); let (_stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["absorb"]);
insta::assert_snapshot!(stderr, @r" insta::assert_snapshot!(stderr, @r###"
Absorbed changes into these revisions: Absorbed changes into these revisions:
qpvuntsm 9661b868 (conflict) 1 qpvuntsm 7e885236 (conflict) 1
Rebased 2 descendant commits. Rebased 2 descendant commits.
Working copy now at: zsuskuln f10b6e4e (empty) (no description set) Working copy now at: zsuskuln e9c3b95b (empty) (no description set)
Parent commit : kkmpptxz bed2d032 2 Parent commit : kkmpptxz 7c36845c 2
New conflicts appeared in these commits: New conflicts appeared in these commits:
qpvuntsm 9661b868 (conflict) 1 qpvuntsm 7e885236 (conflict) 1
To resolve the conflicts, start by updating to it: To resolve the conflicts, start by updating to it:
jj new qpvuntsm jj new qpvuntsm
Then use `jj resolve`, or edit the conflict markers in the file directly. Then use `jj resolve`, or edit the conflict markers in the file directly.
Once the conflicts are resolved, you may want to inspect the result with `jj diff`. Once the conflicts are resolved, you may want to inspect the result with `jj diff`.
Then run `jj squash` to move the resolution into the conflicted commit. Then run `jj squash` to move the resolution into the conflicted commit.
"); "###);
insta::assert_snapshot!(get_diffs(&test_env, &repo_path, "mutable()"), @r" insta::assert_snapshot!(get_diffs(&test_env, &repo_path, "mutable()"), @r###"
@ zsuskuln f10b6e4e (empty) (no description set) @ zsuskuln e9c3b95b (empty) (no description set)
kkmpptxz bed2d032 2 kkmpptxz 7c36845c 2
diff --git a/file1 b/file1 diff --git a/file1 b/file1
index 0000000000..2f87e8e465 100644 index 0000000000..2f87e8e465 100644
--- a/file1 --- a/file1
@ -189,7 +189,7 @@ fn test_absorb_replace_single_line_hunk() {
1A 1A
2b 2b
->>>>>>> Conflict 1 of 1 ends ->>>>>>> Conflict 1 of 1 ends
× qpvuntsm 9661b868 (conflict) 1 × qpvuntsm 7e885236 (conflict) 1
diff --git a/file1 b/file1 diff --git a/file1 b/file1
~ new file mode 100644 ~ new file mode 100644
index 0000000000..0000000000 index 0000000000..0000000000
@ -206,7 +206,7 @@ fn test_absorb_replace_single_line_hunk() {
+1A +1A
+2b +2b
+>>>>>>> Conflict 1 of 1 ends +>>>>>>> Conflict 1 of 1 ends
"); "###);
} }
#[test] #[test]
@ -314,21 +314,21 @@ fn test_absorb_conflict() {
test_env.jj_cmd_ok(&repo_path, &["new", "root()"]); test_env.jj_cmd_ok(&repo_path, &["new", "root()"]);
std::fs::write(repo_path.join("file1"), "2a\n2b\n").unwrap(); std::fs::write(repo_path.join("file1"), "2a\n2b\n").unwrap();
let (_stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["rebase", "-r@", "-ddescription(1)"]); let (_stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["rebase", "-r@", "-ddescription(1)"]);
insta::assert_snapshot!(stderr, @r" insta::assert_snapshot!(stderr, @r###"
Rebased 1 commits onto destination Rebased 1 commits onto destination
Working copy now at: kkmpptxz 24d6d0f8 (conflict) (no description set) Working copy now at: kkmpptxz 74405a07 (conflict) (no description set)
Parent commit : qpvuntsm 3619e4e5 1 Parent commit : qpvuntsm 3619e4e5 1
Added 0 files, modified 1 files, removed 0 files Added 0 files, modified 1 files, removed 0 files
There are unresolved conflicts at these paths: There are unresolved conflicts at these paths:
file1 2-sided conflict file1 2-sided conflict
New conflicts appeared in these commits: New conflicts appeared in these commits:
kkmpptxz 24d6d0f8 (conflict) (no description set) kkmpptxz 74405a07 (conflict) (no description set)
To resolve the conflicts, start by updating to it: To resolve the conflicts, start by updating to it:
jj new kkmpptxz jj new kkmpptxz
Then use `jj resolve`, or edit the conflict markers in the file directly. Then use `jj resolve`, or edit the conflict markers in the file directly.
Once the conflicts are resolved, you may want to inspect the result with `jj diff`. Once the conflicts are resolved, you may want to inspect the result with `jj diff`.
Then run `jj squash` to move the resolution into the conflicted commit. Then run `jj squash` to move the resolution into the conflicted commit.
"); "###);
let conflict_content = let conflict_content =
String::from_utf8(std::fs::read(repo_path.join("file1")).unwrap()).unwrap(); String::from_utf8(std::fs::read(repo_path.join("file1")).unwrap()).unwrap();

View File

@ -126,7 +126,7 @@ fn test_alias_calls_help() {
insta::assert_snapshot!(stdout.lines().take(5).join("\n"), @r###" insta::assert_snapshot!(stdout.lines().take(5).join("\n"), @r###"
Jujutsu (An experimental VCS) Jujutsu (An experimental VCS)
To get started, see the tutorial at https://martinvonz.github.io/jj/latest/tutorial/. To get started, see the tutorial at https://jj-vcs.github.io/jj/latest/tutorial/.
Usage: jj [OPTIONS] <COMMAND> Usage: jj [OPTIONS] <COMMAND>
"###); "###);
@ -239,7 +239,7 @@ fn test_alias_invalid_definition() {
Caused by: invalid type: integer `5`, expected a sequence Caused by: invalid type: integer `5`, expected a sequence
Hint: Check the config file: $TEST_ENV/config/config0002.toml Hint: Check the config file: $TEST_ENV/config/config0002.toml
For help, see https://martinvonz.github.io/jj/latest/config/. For help, see https://jj-vcs.github.io/jj/latest/config/.
"); ");
let stderr = test_env.jj_cmd_failure(test_env.env_root(), &["non-string-list"]); let stderr = test_env.jj_cmd_failure(test_env.env_root(), &["non-string-list"]);
insta::assert_snapshot!(stderr, @r" insta::assert_snapshot!(stderr, @r"
@ -247,7 +247,7 @@ fn test_alias_invalid_definition() {
Caused by: invalid type: integer `0`, expected a string Caused by: invalid type: integer `0`, expected a string
Hint: Check the config file: $TEST_ENV/config/config0002.toml Hint: Check the config file: $TEST_ENV/config/config0002.toml
For help, see https://martinvonz.github.io/jj/latest/config/. For help, see https://jj-vcs.github.io/jj/latest/config/.
"); ");
} }

View File

@ -807,7 +807,7 @@ fn test_log_immutable() {
| ^--------^ | ^--------^
| |
= Function "unknown_fn" doesn't exist = Function "unknown_fn" doesn't exist
For help, see https://martinvonz.github.io/jj/latest/config/. For help, see https://jj-vcs.github.io/jj/latest/config/.
"#); "#);
test_env.add_config("revset-aliases.'immutable_heads()' = 'unknown_symbol'"); test_env.add_config("revset-aliases.'immutable_heads()' = 'unknown_symbol'");

View File

@ -652,7 +652,7 @@ fn test_files() {
); );
let stdout = test_env.jj_cmd_success(&repo_path, &["log", "-r", "all()", "--summary"]); let stdout = test_env.jj_cmd_success(&repo_path, &["log", "-r", "all()", "--summary"]);
insta::assert_snapshot!(stdout.replace('\\', "/"), @r" insta::assert_snapshot!(stdout.replace('\\', "/"), @r###"
@ wqnwkozp test.user@example.com 2001-02-03 08:05:20 working_copy 45c3a621 @ wqnwkozp test.user@example.com 2001-02-03 08:05:20 working_copy 45c3a621
working_copy working_copy
A f_added_2 A f_added_2
@ -666,7 +666,7 @@ fn test_files() {
A f_dir/dir_file_3 A f_dir/dir_file_3
M f_modified M f_modified
A f_renamed A f_renamed
× royxmykx test.user@example.com 2001-02-03 08:05:14 conflicted 23eb154d conflict × royxmykx test.user@example.com 2001-02-03 08:05:14 conflicted 0ba6786b conflict
conflicted conflicted
A f_added_2 A f_added_2
A f_dir/dir_file_1 A f_dir/dir_file_1
@ -688,7 +688,7 @@ fn test_files() {
A f_interdiff_only_from A f_interdiff_only_from
A f_interdiff_same A f_interdiff_same
zzzzzzzz root() 00000000 zzzzzzzz root() 00000000
"); "###);
let mut test_env = test_env; let mut test_env = test_env;
test_env.add_env_var("COMPLETE", "fish"); test_env.add_env_var("COMPLETE", "fish");

View File

@ -908,7 +908,7 @@ fn test_config_get() {
let stdout = test_env.jj_cmd_failure(test_env.env_root(), &["config", "get", "nonexistent"]); let stdout = test_env.jj_cmd_failure(test_env.env_root(), &["config", "get", "nonexistent"]);
insta::assert_snapshot!(stdout, @r" insta::assert_snapshot!(stdout, @r"
Config error: Value not found for nonexistent Config error: Value not found for nonexistent
For help, see https://martinvonz.github.io/jj/latest/config/. For help, see https://jj-vcs.github.io/jj/latest/config/.
"); ");
let stdout = test_env.jj_cmd_success(test_env.env_root(), &["config", "get", "table.string"]); let stdout = test_env.jj_cmd_success(test_env.env_root(), &["config", "get", "table.string"]);
@ -926,7 +926,7 @@ fn test_config_get() {
Config error: Invalid type or value for table.list Config error: Invalid type or value for table.list
Caused by: Expected a value convertible to a string, but is an array Caused by: Expected a value convertible to a string, but is an array
Hint: Check the config file: $TEST_ENV/config/config0002.toml Hint: Check the config file: $TEST_ENV/config/config0002.toml
For help, see https://martinvonz.github.io/jj/latest/config/. For help, see https://jj-vcs.github.io/jj/latest/config/.
"); ");
let stdout = test_env.jj_cmd_failure(test_env.env_root(), &["config", "get", "table"]); let stdout = test_env.jj_cmd_failure(test_env.env_root(), &["config", "get", "table"]);
@ -934,7 +934,7 @@ fn test_config_get() {
Config error: Invalid type or value for table Config error: Invalid type or value for table
Caused by: Expected a value convertible to a string, but is a table Caused by: Expected a value convertible to a string, but is a table
Hint: Check the config file: $TEST_ENV/config/config0003.toml Hint: Check the config file: $TEST_ENV/config/config0003.toml
For help, see https://martinvonz.github.io/jj/latest/config/. For help, see https://jj-vcs.github.io/jj/latest/config/.
"); ");
let stdout = let stdout =
@ -988,7 +988,7 @@ fn test_config_path_syntax() {
let stderr = test_env.jj_cmd_failure(test_env.env_root(), &["config", "get", "a.'b()'.x"]); let stderr = test_env.jj_cmd_failure(test_env.env_root(), &["config", "get", "a.'b()'.x"]);
insta::assert_snapshot!(stderr, @r" insta::assert_snapshot!(stderr, @r"
Config error: Value not found for a.'b()'.x Config error: Value not found for a.'b()'.x
For help, see https://martinvonz.github.io/jj/latest/config/. For help, see https://jj-vcs.github.io/jj/latest/config/.
"); ");
// "-" and "_" are valid TOML keys // "-" and "_" are valid TOML keys
@ -1063,7 +1063,7 @@ fn test_config_show_paths() {
Caused by: unknown variant `:builtin`, expected `never` or `auto` Caused by: unknown variant `:builtin`, expected `never` or `auto`
Hint: Check the config file: $TEST_ENV/config/config0001.toml Hint: Check the config file: $TEST_ENV/config/config0001.toml
For help, see https://martinvonz.github.io/jj/latest/config/. For help, see https://jj-vcs.github.io/jj/latest/config/.
"); ");
} }

View File

@ -330,17 +330,17 @@ fn test_diffedit_external_tool_conflict_marker_style() {
.unwrap(); .unwrap();
let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["diffedit"]); let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["diffedit"]);
insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Created mzvwutvl 7b92839f (conflict) (empty) (no description set) Created mzvwutvl fb39e804 (conflict) (empty) (no description set)
Working copy now at: mzvwutvl 7b92839f (conflict) (empty) (no description set) Working copy now at: mzvwutvl fb39e804 (conflict) (empty) (no description set)
Parent commit : rlvkpnrz 3765cc27 side-a Parent commit : rlvkpnrz 3765cc27 side-a
Parent commit : zsuskuln 8b3de837 side-b Parent commit : zsuskuln 8b3de837 side-b
Added 0 files, modified 1 files, removed 0 files Added 0 files, modified 1 files, removed 0 files
There are unresolved conflicts at these paths: There are unresolved conflicts at these paths:
file 2-sided conflict file 2-sided conflict
Existing conflicts were resolved or abandoned from these commits: Existing conflicts were resolved or abandoned from these commits:
mzvwutvl hidden fae32b29 (conflict) (no description set) mzvwutvl hidden a813239f (conflict) (no description set)
"#); "###);
// Conflicts should render using "snapshot" format in diff editor // Conflicts should render using "snapshot" format in diff editor
insta::assert_snapshot!( insta::assert_snapshot!(
std::fs::read_to_string(test_env.env_root().join("before-file")).unwrap(), @r##" std::fs::read_to_string(test_env.env_root().join("before-file")).unwrap(), @r##"
@ -410,14 +410,14 @@ fn test_diffedit_external_tool_conflict_marker_style() {
// File should be conflicted with no changes // File should be conflicted with no changes
let stdout = test_env.jj_cmd_success(&repo_path, &["st"]); let stdout = test_env.jj_cmd_success(&repo_path, &["st"]);
insta::assert_snapshot!(stdout, @r#" insta::assert_snapshot!(stdout, @r###"
The working copy is clean The working copy is clean
There are unresolved conflicts at these paths: There are unresolved conflicts at these paths:
file 2-sided conflict file 2-sided conflict
Working copy : mzvwutvl 7b92839f (conflict) (empty) (no description set) Working copy : mzvwutvl fb39e804 (conflict) (empty) (no description set)
Parent commit: rlvkpnrz 3765cc27 side-a Parent commit: rlvkpnrz 3765cc27 side-a
Parent commit: zsuskuln 8b3de837 side-b Parent commit: zsuskuln 8b3de837 side-b
"#); "###);
} }
#[test] #[test]
@ -580,10 +580,10 @@ fn test_diffedit_merge() {
let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["diffedit", "-r", "@-"]); let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["diffedit", "-r", "@-"]);
insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @r###" insta::assert_snapshot!(stderr, @r###"
Created royxmykx 263b3c63 (conflict) merge Created royxmykx 0105de4a (conflict) merge
Rebased 1 descendant commits Rebased 1 descendant commits
Working copy now at: yqosqzyt 5771c919 (conflict) (empty) (no description set) Working copy now at: yqosqzyt abbb78c1 (conflict) (empty) (no description set)
Parent commit : royxmykx 263b3c63 (conflict) merge Parent commit : royxmykx 0105de4a (conflict) merge
Added 0 files, modified 0 files, removed 1 files Added 0 files, modified 0 files, removed 1 files
There are unresolved conflicts at these paths: There are unresolved conflicts at these paths:
file2 2-sided conflict file2 2-sided conflict

View File

@ -2300,7 +2300,7 @@ fn test_duplicate_insert_after_before() {
"#); "#);
} }
// https://github.com/martinvonz/jj/issues/1050 // https://github.com/jj-vcs/jj/issues/1050
#[test] #[test]
fn test_undo_after_duplicate() { fn test_undo_after_duplicate() {
let test_env = TestEnvironment::default(); let test_env = TestEnvironment::default();
@ -2336,7 +2336,7 @@ fn test_undo_after_duplicate() {
"###); "###);
} }
// https://github.com/martinvonz/jj/issues/694 // https://github.com/jj-vcs/jj/issues/694
#[test] #[test]
fn test_rebase_duplicates() { fn test_rebase_duplicates() {
let test_env = TestEnvironment::default(); let test_env = TestEnvironment::default();

View File

@ -32,7 +32,7 @@ fn test_evolog_with_or_without_diff() {
insta::assert_snapshot!(stdout, @r###" insta::assert_snapshot!(stdout, @r###"
@ rlvkpnrz test.user@example.com 2001-02-03 08:05:10 66b42ad3 @ rlvkpnrz test.user@example.com 2001-02-03 08:05:10 66b42ad3
my description my description
× rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 cf73917d conflict × rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 07b18245 conflict
my description my description
rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 068224a7 rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 068224a7
my description my description
@ -45,7 +45,7 @@ fn test_evolog_with_or_without_diff() {
insta::assert_snapshot!(stdout, @r###" insta::assert_snapshot!(stdout, @r###"
@ rlvkpnrz test.user@example.com 2001-02-03 08:05:10 66b42ad3 @ rlvkpnrz test.user@example.com 2001-02-03 08:05:10 66b42ad3
my description my description
× rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 cf73917d conflict × rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 07b18245 conflict
my description my description
rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 068224a7 rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 068224a7
my description my description
@ -67,7 +67,7 @@ fn test_evolog_with_or_without_diff() {
5 : foo 5 : foo
6 : bar 6 : bar
7 1: >>>>>>> Conflict 1 of 1 endsresolved 7 1: >>>>>>> Conflict 1 of 1 endsresolved
× rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 cf73917d conflict × rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 07b18245 conflict
my description my description
rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 068224a7 rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 068224a7
my description my description
@ -85,7 +85,7 @@ fn test_evolog_with_or_without_diff() {
insta::assert_snapshot!(stdout, @r###" insta::assert_snapshot!(stdout, @r###"
@ rlvkpnrz test.user@example.com 2001-02-03 08:05:10 66b42ad3 @ rlvkpnrz test.user@example.com 2001-02-03 08:05:10 66b42ad3
my description my description
× rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 cf73917d conflict × rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 07b18245 conflict
my description my description
"###); "###);
@ -94,7 +94,7 @@ fn test_evolog_with_or_without_diff() {
insta::assert_snapshot!(stdout, @r###" insta::assert_snapshot!(stdout, @r###"
rlvkpnrz test.user@example.com 2001-02-03 08:05:10 66b42ad3 rlvkpnrz test.user@example.com 2001-02-03 08:05:10 66b42ad3
my description my description
rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 cf73917d conflict rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 07b18245 conflict
my description my description
rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 068224a7 rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 068224a7
my description my description
@ -104,7 +104,7 @@ fn test_evolog_with_or_without_diff() {
// Test `--git` format, and that it implies `-p` // Test `--git` format, and that it implies `-p`
let stdout = test_env.jj_cmd_success(&repo_path, &["evolog", "--no-graph", "--git"]); let stdout = test_env.jj_cmd_success(&repo_path, &["evolog", "--no-graph", "--git"]);
insta::assert_snapshot!(stdout, @r" insta::assert_snapshot!(stdout, @r###"
rlvkpnrz test.user@example.com 2001-02-03 08:05:10 66b42ad3 rlvkpnrz test.user@example.com 2001-02-03 08:05:10 66b42ad3
my description my description
diff --git a/file1 b/file1 diff --git a/file1 b/file1
@ -120,7 +120,7 @@ fn test_evolog_with_or_without_diff() {
-bar -bar
->>>>>>> Conflict 1 of 1 ends ->>>>>>> Conflict 1 of 1 ends
+resolved +resolved
rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 cf73917d conflict rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 07b18245 conflict
my description my description
rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 068224a7 rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 068224a7
my description my description
@ -140,7 +140,7 @@ fn test_evolog_with_or_without_diff() {
+foo +foo
rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:08 2b023b5f rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:08 2b023b5f
(empty) my description (empty) my description
"); "###);
} }
#[test] #[test]
@ -162,7 +162,7 @@ fn test_evolog_with_custom_symbols() {
insta::assert_snapshot!(stdout, @r###" insta::assert_snapshot!(stdout, @r###"
$ rlvkpnrz test.user@example.com 2001-02-03 08:05:10 66b42ad3 $ rlvkpnrz test.user@example.com 2001-02-03 08:05:10 66b42ad3
my description my description
rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 cf73917d conflict rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 07b18245 conflict
my description my description
rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 068224a7 rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 068224a7
my description my description

View File

@ -121,7 +121,7 @@ fn test_chmod_regular_conflict() {
test_env.jj_cmd_ok(&repo_path, &["file", "chmod", "x", "nonexistent", "file"]); 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 2b11d002 conflict | (conflict) conflict
Parent commit : royxmykx 427fbd2f x | x Parent commit : royxmykx 427fbd2f x | x
Parent commit : zsuskuln 3f83a26d n | n Parent commit : zsuskuln 3f83a26d n | n
Added 0 files, modified 1 files, removed 0 files Added 0 files, modified 1 files, removed 0 files
@ -216,14 +216,14 @@ fn test_chmod_file_dir_deletion_conflicts() {
); );
insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @r###" insta::assert_snapshot!(stderr, @r###"
Working copy now at: kmkuslsw 1b2ef84c file_deletion | (conflict) file_deletion Working copy now at: kmkuslsw 139dee15 file_deletion | (conflict) file_deletion
Parent commit : zsuskuln c51c9c55 file | file Parent commit : zsuskuln c51c9c55 file | file
Parent commit : royxmykx 6b18b3c1 deletion | deletion Parent commit : royxmykx 6b18b3c1 deletion | deletion
Added 0 files, modified 1 files, removed 0 files Added 0 files, modified 1 files, removed 0 files
There are unresolved conflicts at these paths: There are unresolved conflicts at these paths:
file 2-sided conflict including 1 deletion and an executable file 2-sided conflict including 1 deletion and an executable
New conflicts appeared in these commits: New conflicts appeared in these commits:
kmkuslsw 1b2ef84c file_deletion | (conflict) file_deletion kmkuslsw 139dee15 file_deletion | (conflict) file_deletion
To resolve the conflicts, start by updating to it: To resolve the conflicts, start by updating to it:
jj new kmkuslsw jj new kmkuslsw
Then use `jj resolve`, or edit the conflict markers in the file directly. Then use `jj resolve`, or edit the conflict markers in the file directly.

View File

@ -61,7 +61,7 @@ fn test_config_no_tools() {
let stderr = test_env.jj_cmd_failure(&repo_path, &["fix"]); let stderr = test_env.jj_cmd_failure(&repo_path, &["fix"]);
insta::assert_snapshot!(stderr, @r###" insta::assert_snapshot!(stderr, @r###"
Config error: At least one entry of `fix.tools` or `fix.tool-command` is required. Config error: At least one entry of `fix.tools` or `fix.tool-command` is required.
For help, see https://martinvonz.github.io/jj/latest/config/. For help, see https://jj-vcs.github.io/jj/latest/config/.
"###); "###);
let content = test_env.jj_cmd_success(&repo_path, &["file", "show", "file", "-r", "@"]); let content = test_env.jj_cmd_success(&repo_path, &["file", "show", "file", "-r", "@"]);
@ -180,7 +180,7 @@ fn test_config_multiple_tools_with_same_name() {
duplicate key `my-tool` in table `fix.tools` duplicate key `my-tool` in table `fix.tools`
Hint: Check the config file: $TEST_ENV/config/config0002.toml Hint: Check the config file: $TEST_ENV/config/config0002.toml
For help, see https://martinvonz.github.io/jj/latest/config/. For help, see https://jj-vcs.github.io/jj/latest/config/.
"); ");
test_env.set_config_path("/dev/null".into()); test_env.set_config_path("/dev/null".into());
@ -259,7 +259,7 @@ fn test_config_tables_all_commands_missing() {
Caused by: missing field `command` Caused by: missing field `command`
Hint: Check the config file: $TEST_ENV/config/config0002.toml Hint: Check the config file: $TEST_ENV/config/config0002.toml
For help, see https://martinvonz.github.io/jj/latest/config/. For help, see https://jj-vcs.github.io/jj/latest/config/.
"); ");
let content = test_env.jj_cmd_success(&repo_path, &["file", "show", "foo", "-r", "@"]); let content = test_env.jj_cmd_success(&repo_path, &["file", "show", "foo", "-r", "@"]);
@ -294,7 +294,7 @@ fn test_config_tables_some_commands_missing() {
Caused by: missing field `command` Caused by: missing field `command`
Hint: Check the config file: $TEST_ENV/config/config0002.toml Hint: Check the config file: $TEST_ENV/config/config0002.toml
For help, see https://martinvonz.github.io/jj/latest/config/. For help, see https://jj-vcs.github.io/jj/latest/config/.
"); ");
let content = test_env.jj_cmd_success(&repo_path, &["file", "show", "foo", "-r", "@"]); let content = test_env.jj_cmd_success(&repo_path, &["file", "show", "foo", "-r", "@"]);
@ -1060,7 +1060,7 @@ fn test_fix_both_sides_of_conflict() {
// fixed if we didn't fix the parents also. // fixed if we didn't fix the parents also.
let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["fix", "-s", "a", "-s", "b"]); let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["fix", "-s", "a", "-s", "b"]);
insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(redact(&stderr), @r#" insta::assert_snapshot!(redact(&stderr), @r###"
Warning: The `fix.tool-command` config option is deprecated and will be removed in a future version. Warning: The `fix.tool-command` config option is deprecated and will be removed in a future version.
Hint: Replace it with the following: Hint: Replace it with the following:
[fix.tools.legacy-tool-command] [fix.tools.legacy-tool-command]
@ -1068,13 +1068,13 @@ fn test_fix_both_sides_of_conflict() {
patterns = ["all()"] patterns = ["all()"]
Fixed 3 commits of 3 checked. Fixed 3 commits of 3 checked.
Working copy now at: mzvwutvl 88866235 (conflict) (empty) (no description set) Working copy now at: mzvwutvl a55c6ec2 (conflict) (empty) (no description set)
Parent commit : qpvuntsm 8e8aad69 a | (no description set) Parent commit : qpvuntsm 8e8aad69 a | (no description set)
Parent commit : kkmpptxz 91f9b284 b | (no description set) Parent commit : kkmpptxz 91f9b284 b | (no description set)
Added 0 files, modified 1 files, removed 0 files Added 0 files, modified 1 files, removed 0 files
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, &["file", "show", "file", "-r", "a"]); let content = test_env.jj_cmd_success(&repo_path, &["file", "show", "file", "-r", "a"]);
insta::assert_snapshot!(content, @r###" insta::assert_snapshot!(content, @r###"
CONTENT A CONTENT A

View File

@ -482,7 +482,7 @@ fn test_git_clone_ignore_working_copy() {
insta::assert_snapshot!(stderr, @r##" insta::assert_snapshot!(stderr, @r##"
Error: The working copy is stale (not updated since operation eac759b9ab75). Error: The working copy is stale (not updated since operation eac759b9ab75).
Hint: Run `jj workspace update-stale` to update it. Hint: Run `jj workspace update-stale` to update it.
See https://martinvonz.github.io/jj/latest/working-copy/#stale-working-copy for more information. See https://jj-vcs.github.io/jj/latest/working-copy/#stale-working-copy for more information.
"##); "##);
} }
@ -607,7 +607,7 @@ fn test_git_clone_invalid_immutable_heads() {
bookmark: main@origin [new] untracked bookmark: main@origin [new] untracked
Config error: Invalid `revset-aliases.immutable_heads()` Config error: Invalid `revset-aliases.immutable_heads()`
Caused by: Revision "unknown" doesn't exist Caused by: Revision "unknown" doesn't exist
For help, see https://martinvonz.github.io/jj/latest/config/. For help, see https://jj-vcs.github.io/jj/latest/config/.
"#); "#);
} }
@ -637,7 +637,7 @@ fn test_git_clone_malformed() {
insta::assert_snapshot!(stderr, @r##" insta::assert_snapshot!(stderr, @r##"
Error: The working copy is stale (not updated since operation 4a8ddda0ff63). Error: The working copy is stale (not updated since operation 4a8ddda0ff63).
Hint: Run `jj workspace update-stale` to update it. Hint: Run `jj workspace update-stale` to update it.
See https://martinvonz.github.io/jj/latest/working-copy/#stale-working-copy for more information. See https://jj-vcs.github.io/jj/latest/working-copy/#stale-working-copy for more information.
"##); "##);
// The error can be somehow recovered. // The error can be somehow recovered.

View File

@ -184,7 +184,7 @@ fn test_git_colocated_unborn_bookmark() {
test_env.jj_cmd_ok(&workspace_root, &["bookmark", "create", "-r@-", "master"]); test_env.jj_cmd_ok(&workspace_root, &["bookmark", "create", "-r@-", "master"]);
// Stage some change, and check out root again. This should unset the HEAD. // Stage some change, and check out root again. This should unset the HEAD.
// https://github.com/martinvonz/jj/issues/1495 // https://github.com/jj-vcs/jj/issues/1495
add_file_to_index("file2", ""); add_file_to_index("file2", "");
let (stdout, stderr) = test_env.jj_cmd_ok(&workspace_root, &["new", "root()"]); let (stdout, stderr) = test_env.jj_cmd_ok(&workspace_root, &["new", "root()"]);
insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(stdout, @"");

View File

@ -388,7 +388,7 @@ fn test_git_fetch_conflicting_bookmarks_colocated() {
&["git", "fetch", "--remote", "rem1", "--branch", "rem1"], &["git", "fetch", "--remote", "rem1", "--branch", "rem1"],
); );
// This should result in a CONFLICTED bookmark // This should result in a CONFLICTED bookmark
// See https://github.com/martinvonz/jj/pull/1146#discussion_r1112372340 for the bug this tests for. // See https://github.com/jj-vcs/jj/pull/1146#discussion_r1112372340 for the bug this tests for.
insta::assert_snapshot!(get_bookmark_output(&test_env, &repo_path), @r###" insta::assert_snapshot!(get_bookmark_output(&test_env, &repo_path), @r###"
rem1 (conflicted): rem1 (conflicted):
+ zsuskuln f652c321 (empty) (no description set) + zsuskuln f652c321 (empty) (no description set)

View File

@ -892,10 +892,10 @@ fn test_git_push_conflict() {
test_env.jj_cmd_ok(&workspace_root, &["bookmark", "create", "my-bookmark"]); test_env.jj_cmd_ok(&workspace_root, &["bookmark", "create", "my-bookmark"]);
test_env.jj_cmd_ok(&workspace_root, &["describe", "-m", "third"]); test_env.jj_cmd_ok(&workspace_root, &["describe", "-m", "third"]);
let stderr = test_env.jj_cmd_failure(&workspace_root, &["git", "push", "--all"]); let stderr = test_env.jj_cmd_failure(&workspace_root, &["git", "push", "--all"]);
insta::assert_snapshot!(stderr, @r" insta::assert_snapshot!(stderr, @r###"
Error: Won't push commit 73c265a92cfd since it has conflicts Error: Won't push commit e2221a796300 since it has conflicts
Hint: Rejected commit: yostqsxw 73c265a9 my-bookmark | (conflict) third Hint: Rejected commit: yostqsxw e2221a79 my-bookmark | (conflict) third
"); "###);
} }
#[test] #[test]

View File

@ -308,7 +308,7 @@ fn test_invalid_filesets_looking_like_filepaths() {
| ^--- | ^---
| |
= expected `~` or <primary> = expected `~` or <primary>
Hint: See https://martinvonz.github.io/jj/latest/filesets/ for filesets syntax, or for how to match file paths. Hint: See https://jj-vcs.github.io/jj/latest/filesets/ for filesets syntax, or for how to match file paths.
"#); "#);
test_env.add_config(r#"ui.allow-filesets=false"#); test_env.add_config(r#"ui.allow-filesets=false"#);
@ -464,7 +464,7 @@ fn test_color_config() {
Config error: Invalid type or value for ui.color Config error: Invalid type or value for ui.color
Caused by: wanted string or table Caused by: wanted string or table
For help, see https://martinvonz.github.io/jj/latest/config/. For help, see https://jj-vcs.github.io/jj/latest/config/.
"); ");
} }
@ -663,7 +663,7 @@ fn test_config_args() {
let stderr = test_env.jj_cmd_failure(test_env.env_root(), &["config", "list", "--config=foo"]); let stderr = test_env.jj_cmd_failure(test_env.env_root(), &["config", "list", "--config=foo"]);
insta::assert_snapshot!(stderr, @r" insta::assert_snapshot!(stderr, @r"
Config error: --config must be specified as NAME=VALUE Config error: --config must be specified as NAME=VALUE
For help, see https://martinvonz.github.io/jj/latest/config/. For help, see https://jj-vcs.github.io/jj/latest/config/.
"); ");
let stderr = test_env.jj_cmd_failure( let stderr = test_env.jj_cmd_failure(
@ -678,7 +678,7 @@ fn test_config_args() {
Caused by: Caused by:
1: Cannot access unknown.toml 1: Cannot access unknown.toml
2: <redacted> 2: <redacted>
For help, see https://martinvonz.github.io/jj/latest/config/. For help, see https://jj-vcs.github.io/jj/latest/config/.
"); ");
}); });
} }
@ -700,7 +700,7 @@ fn test_invalid_config() {
expected newline, `#` expected newline, `#`
Hint: Check the config file: $TEST_ENV/config/config0002.toml Hint: Check the config file: $TEST_ENV/config/config0002.toml
For help, see https://martinvonz.github.io/jj/latest/config/. For help, see https://jj-vcs.github.io/jj/latest/config/.
"); ");
} }
@ -717,7 +717,7 @@ fn test_invalid_config_value() {
Config error: Invalid type or value for snapshot.auto-track Config error: Invalid type or value for snapshot.auto-track
Caused by: invalid type: sequence, expected a string Caused by: invalid type: sequence, expected a string
For help, see https://martinvonz.github.io/jj/latest/config/. For help, see https://jj-vcs.github.io/jj/latest/config/.
"); ");
} }

View File

@ -68,7 +68,7 @@ fn test_rewrite_immutable_generic() {
insta::assert_snapshot!(stderr, @r###" insta::assert_snapshot!(stderr, @r###"
Config error: Invalid `revset-aliases.immutable_heads()` Config error: Invalid `revset-aliases.immutable_heads()`
Caused by: Revision "bookmark_that_does_not_exist" doesn't exist Caused by: Revision "bookmark_that_does_not_exist" doesn't exist
For help, see https://martinvonz.github.io/jj/latest/config/. For help, see https://jj-vcs.github.io/jj/latest/config/.
"###); "###);
// Can use --ignore-immutable to override // Can use --ignore-immutable to override
@ -192,10 +192,10 @@ fn test_rewrite_immutable_commands() {
// Log shows mutable commits, their parents, and trunk() by default // Log shows mutable commits, their parents, and trunk() by default
let (stdout, _stderr) = test_env.jj_cmd_ok(&repo_path, &["log"]); let (stdout, _stderr) = test_env.jj_cmd_ok(&repo_path, &["log"]);
insta::assert_snapshot!(stdout, @r" insta::assert_snapshot!(stdout, @r###"
@ yqosqzyt test.user@example.com 2001-02-03 08:05:14 55641cc5 @ yqosqzyt test.user@example.com 2001-02-03 08:05:14 55641cc5
(no description set) (no description set)
mzvwutvl test.user@example.com 2001-02-03 08:05:12 main 1d5af877 conflict mzvwutvl test.user@example.com 2001-02-03 08:05:12 main bcab555f conflict
merge merge
~ ~
@ -203,15 +203,15 @@ fn test_rewrite_immutable_commands() {
kkmpptxz test.user@example.com 2001-02-03 08:05:10 72e1b68c kkmpptxz test.user@example.com 2001-02-03 08:05:10 72e1b68c
b b
~ ~
"); "###);
// abandon // abandon
let stderr = test_env.jj_cmd_failure(&repo_path, &["abandon", "main"]); let stderr = test_env.jj_cmd_failure(&repo_path, &["abandon", "main"]);
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Error: Commit 1d5af877b8bb is immutable Error: Commit bcab555fc80e is immutable
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge Hint: Could not modify commit: mzvwutvl bcab555f main | (conflict) merge
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()`.
"#); "###);
// absorb // absorb
let stderr = test_env.jj_cmd_failure(&repo_path, &["absorb", "--into=::@-"]); let stderr = test_env.jj_cmd_failure(&repo_path, &["absorb", "--into=::@-"]);
insta::assert_snapshot!(stderr, @r" insta::assert_snapshot!(stderr, @r"
@ -221,60 +221,60 @@ fn test_rewrite_immutable_commands() {
"); ");
// chmod // chmod
let stderr = test_env.jj_cmd_failure(&repo_path, &["file", "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 1d5af877b8bb is immutable Error: Commit bcab555fc80e is immutable
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge Hint: Could not modify commit: mzvwutvl bcab555f main | (conflict) merge
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()`.
"#); "###);
// describe // describe
let stderr = test_env.jj_cmd_failure(&repo_path, &["describe", "main"]); let stderr = test_env.jj_cmd_failure(&repo_path, &["describe", "main"]);
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Error: Commit 1d5af877b8bb is immutable Error: Commit bcab555fc80e is immutable
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge Hint: Could not modify commit: mzvwutvl bcab555f main | (conflict) merge
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()`.
"#); "###);
// diffedit // diffedit
let stderr = test_env.jj_cmd_failure(&repo_path, &["diffedit", "-r=main"]); let stderr = test_env.jj_cmd_failure(&repo_path, &["diffedit", "-r=main"]);
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Error: Commit 1d5af877b8bb is immutable Error: Commit bcab555fc80e is immutable
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge Hint: Could not modify commit: mzvwutvl bcab555f main | (conflict) merge
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()`.
"#); "###);
// edit // edit
let stderr = test_env.jj_cmd_failure(&repo_path, &["edit", "main"]); let stderr = test_env.jj_cmd_failure(&repo_path, &["edit", "main"]);
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Error: Commit 1d5af877b8bb is immutable Error: Commit bcab555fc80e is immutable
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge Hint: Could not modify commit: mzvwutvl bcab555f main | (conflict) merge
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()`.
"#); "###);
// new --insert-before // new --insert-before
let stderr = test_env.jj_cmd_failure(&repo_path, &["new", "--insert-before", "main"]); let stderr = test_env.jj_cmd_failure(&repo_path, &["new", "--insert-before", "main"]);
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Error: Commit 1d5af877b8bb is immutable Error: Commit bcab555fc80e is immutable
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge Hint: Could not modify commit: mzvwutvl bcab555f main | (conflict) merge
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()`.
"#); "###);
// new --insert-after parent_of_main // new --insert-after parent_of_main
let stderr = test_env.jj_cmd_failure(&repo_path, &["new", "--insert-after", "description(b)"]); let stderr = test_env.jj_cmd_failure(&repo_path, &["new", "--insert-after", "description(b)"]);
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Error: Commit 1d5af877b8bb is immutable Error: Commit bcab555fc80e is immutable
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge Hint: Could not modify commit: mzvwutvl bcab555f main | (conflict) merge
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()`.
"#); "###);
// parallelize // parallelize
let stderr = test_env.jj_cmd_failure(&repo_path, &["parallelize", "description(b)", "main"]); let stderr = test_env.jj_cmd_failure(&repo_path, &["parallelize", "description(b)", "main"]);
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Error: Commit 1d5af877b8bb is immutable Error: Commit bcab555fc80e is immutable
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge Hint: Could not modify commit: mzvwutvl bcab555f main | (conflict) merge
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()`.
"#); "###);
// rebase -s // rebase -s
let stderr = test_env.jj_cmd_failure(&repo_path, &["rebase", "-s=main", "-d=@"]); let stderr = test_env.jj_cmd_failure(&repo_path, &["rebase", "-s=main", "-d=@"]);
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Error: Commit 1d5af877b8bb is immutable Error: Commit bcab555fc80e is immutable
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge Hint: Could not modify commit: mzvwutvl bcab555f main | (conflict) merge
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()`.
"#); "###);
// rebase -b // rebase -b
let stderr = test_env.jj_cmd_failure(&repo_path, &["rebase", "-b=main", "-d=@"]); let stderr = test_env.jj_cmd_failure(&repo_path, &["rebase", "-b=main", "-d=@"]);
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r#"
@ -284,39 +284,39 @@ fn test_rewrite_immutable_commands() {
"#); "#);
// rebase -r // rebase -r
let stderr = test_env.jj_cmd_failure(&repo_path, &["rebase", "-r=main", "-d=@"]); let stderr = test_env.jj_cmd_failure(&repo_path, &["rebase", "-r=main", "-d=@"]);
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Error: Commit 1d5af877b8bb is immutable Error: Commit bcab555fc80e is immutable
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge Hint: Could not modify commit: mzvwutvl bcab555f main | (conflict) merge
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()`.
"#); "###);
// resolve // resolve
let stderr = test_env.jj_cmd_failure(&repo_path, &["resolve", "-r=description(merge)", "file"]); let stderr = test_env.jj_cmd_failure(&repo_path, &["resolve", "-r=description(merge)", "file"]);
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Error: Commit 1d5af877b8bb is immutable Error: Commit bcab555fc80e is immutable
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge Hint: Could not modify commit: mzvwutvl bcab555f main | (conflict) merge
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()`.
"#); "###);
// restore -c // restore -c
let stderr = test_env.jj_cmd_failure(&repo_path, &["restore", "-c=main"]); let stderr = test_env.jj_cmd_failure(&repo_path, &["restore", "-c=main"]);
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Error: Commit 1d5af877b8bb is immutable Error: Commit bcab555fc80e is immutable
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge Hint: Could not modify commit: mzvwutvl bcab555f main | (conflict) merge
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()`.
"#); "###);
// restore --to // restore --to
let stderr = test_env.jj_cmd_failure(&repo_path, &["restore", "--to=main"]); let stderr = test_env.jj_cmd_failure(&repo_path, &["restore", "--to=main"]);
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Error: Commit 1d5af877b8bb is immutable Error: Commit bcab555fc80e is immutable
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge Hint: Could not modify commit: mzvwutvl bcab555f main | (conflict) merge
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()`.
"#); "###);
// split // split
let stderr = test_env.jj_cmd_failure(&repo_path, &["split", "-r=main"]); let stderr = test_env.jj_cmd_failure(&repo_path, &["split", "-r=main"]);
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Error: Commit 1d5af877b8bb is immutable Error: Commit bcab555fc80e is immutable
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge Hint: Could not modify commit: mzvwutvl bcab555f main | (conflict) merge
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()`.
"#); "###);
// squash -r // squash -r
let stderr = test_env.jj_cmd_failure(&repo_path, &["squash", "-r=description(b)"]); let stderr = test_env.jj_cmd_failure(&repo_path, &["squash", "-r=description(b)"]);
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r#"
@ -326,25 +326,25 @@ fn test_rewrite_immutable_commands() {
"#); "#);
// squash --from // squash --from
let stderr = test_env.jj_cmd_failure(&repo_path, &["squash", "--from=main"]); let stderr = test_env.jj_cmd_failure(&repo_path, &["squash", "--from=main"]);
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Error: Commit 1d5af877b8bb is immutable Error: Commit bcab555fc80e is immutable
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge Hint: Could not modify commit: mzvwutvl bcab555f main | (conflict) merge
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()`.
"#); "###);
// squash --into // squash --into
let stderr = test_env.jj_cmd_failure(&repo_path, &["squash", "--into=main"]); let stderr = test_env.jj_cmd_failure(&repo_path, &["squash", "--into=main"]);
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Error: Commit 1d5af877b8bb is immutable Error: Commit bcab555fc80e is immutable
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge Hint: Could not modify commit: mzvwutvl bcab555f main | (conflict) merge
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()`.
"#); "###);
// unsquash // unsquash
let stderr = test_env.jj_cmd_failure(&repo_path, &["unsquash", "-r=main"]); let stderr = test_env.jj_cmd_failure(&repo_path, &["unsquash", "-r=main"]);
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Warning: `jj unsquash` is deprecated; use `jj diffedit --restore-descendants` or `jj squash` instead Warning: `jj unsquash` is deprecated; use `jj diffedit --restore-descendants` or `jj squash` instead
Warning: `jj unsquash` will be removed in a future version, and this will be a hard error Warning: `jj unsquash` will be removed in a future version, and this will be a hard error
Error: Commit 1d5af877b8bb is immutable Error: Commit bcab555fc80e is immutable
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge Hint: Could not modify commit: mzvwutvl bcab555f main | (conflict) merge
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()`.
"#); "###);
} }

View File

@ -461,7 +461,7 @@ fn test_log_bad_short_prefixes() {
| ^--- | ^---
| |
= expected <identifier> or <expression> = expected <identifier> or <expression>
For help, see https://martinvonz.github.io/jj/latest/config/. For help, see https://jj-vcs.github.io/jj/latest/config/.
"###); "###);
// Warn on resolution of short prefixes // Warn on resolution of short prefixes
@ -1325,7 +1325,7 @@ fn test_graph_styles() {
Config error: Invalid type or value for ui.graph.style Config error: Invalid type or value for ui.graph.style
Caused by: unknown variant `unknown`, expected one of `ascii`, `ascii-large`, `curved`, `square` Caused by: unknown variant `unknown`, expected one of `ascii`, `ascii-large`, `curved`, `square`
For help, see https://martinvonz.github.io/jj/latest/config/. For help, see https://jj-vcs.github.io/jj/latest/config/.
"); ");
} }

View File

@ -870,7 +870,7 @@ fn test_next_conflict_head() {
let stderr = test_env.jj_cmd_failure(&repo_path, &["next", "--conflict", "--edit"]); let stderr = test_env.jj_cmd_failure(&repo_path, &["next", "--conflict", "--edit"]);
insta::assert_snapshot!(stderr, @r###" insta::assert_snapshot!(stderr, @r###"
Error: The working copy has no descendants with conflicts Error: The working copy has no descendants with conflicts
Hint: Working copy: rlvkpnrz da992bf2 (conflict) (no description set) Hint: Working copy: rlvkpnrz 0273eeab (conflict) (no description set)
"###); "###);
} }

View File

@ -920,7 +920,7 @@ fn test_rebase_error_revision_does_not_exist() {
"###); "###);
} }
// This behavior illustrates https://github.com/martinvonz/jj/issues/2600 // This behavior illustrates https://github.com/jj-vcs/jj/issues/2600
#[test] #[test]
fn test_rebase_with_child_and_descendant_bug_2600() { fn test_rebase_with_child_and_descendant_bug_2600() {
let test_env = TestEnvironment::default(); let test_env = TestEnvironment::default();

View File

@ -30,34 +30,34 @@ fn test_report_conflicts() {
let (stdout, stderr) = let (stdout, stderr) =
test_env.jj_cmd_ok(&repo_path, &["rebase", "-s=description(B)", "-d=root()"]); test_env.jj_cmd_ok(&repo_path, &["rebase", "-s=description(B)", "-d=root()"]);
insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Rebased 3 commits onto destination Rebased 3 commits onto destination
Working copy now at: zsuskuln aa73e2ae (conflict) (empty) (no description set) Working copy now at: zsuskuln f8a2c4e0 (conflict) (empty) (no description set)
Parent commit : kkmpptxz 64bdec0c (conflict) C Parent commit : kkmpptxz 2271a49e (conflict) C
Added 0 files, modified 1 files, removed 0 files Added 0 files, modified 1 files, removed 0 files
There are unresolved conflicts at these paths: There are unresolved conflicts at these paths:
file 2-sided conflict including 1 deletion file 2-sided conflict including 1 deletion
New conflicts appeared in these commits: New conflicts appeared in these commits:
kkmpptxz 64bdec0c (conflict) C kkmpptxz 2271a49e (conflict) C
rlvkpnrz 10a5fd45 (conflict) B rlvkpnrz b7d83633 (conflict) B
To resolve the conflicts, start by updating to the first one: To resolve the conflicts, start by updating to the first one:
jj new rlvkpnrz jj new rlvkpnrz
Then use `jj resolve`, or edit the conflict markers in the file directly. Then use `jj resolve`, or edit the conflict markers in the file directly.
Once the conflicts are resolved, you may want to inspect the result with `jj diff`. Once the conflicts are resolved, you may want to inspect the result with `jj diff`.
Then run `jj squash` to move the resolution into the conflicted commit. Then run `jj squash` to move the resolution into the conflicted commit.
"#); "###);
let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["rebase", "-d=description(A)"]); let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["rebase", "-d=description(A)"]);
insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Rebased 3 commits onto destination Rebased 3 commits onto destination
Working copy now at: zsuskuln d70c003d (empty) (no description set) Working copy now at: zsuskuln d70c003d (empty) (no description set)
Parent commit : kkmpptxz 43e94449 C Parent commit : kkmpptxz 43e94449 C
Added 0 files, modified 1 files, removed 0 files Added 0 files, modified 1 files, removed 0 files
Existing conflicts were resolved or abandoned from these commits: Existing conflicts were resolved or abandoned from these commits:
kkmpptxz hidden 64bdec0c (conflict) C kkmpptxz hidden 2271a49e (conflict) C
rlvkpnrz hidden 10a5fd45 (conflict) B rlvkpnrz hidden b7d83633 (conflict) B
"#); "###);
// Can get hint about multiple root commits // Can get hint about multiple root commits
let (stdout, stderr) = let (stdout, stderr) =
@ -66,14 +66,14 @@ fn test_report_conflicts() {
insta::assert_snapshot!(stderr, @r###" insta::assert_snapshot!(stderr, @r###"
Rebased 1 commits onto destination Rebased 1 commits onto destination
Rebased 2 descendant commits Rebased 2 descendant commits
Working copy now at: zsuskuln 99fb9018 (conflict) (empty) (no description set) Working copy now at: zsuskuln 588bd15c (conflict) (empty) (no description set)
Parent commit : kkmpptxz 17c72220 (conflict) C Parent commit : kkmpptxz 331a2fce (conflict) C
Added 0 files, modified 1 files, removed 0 files Added 0 files, modified 1 files, removed 0 files
There are unresolved conflicts at these paths: There are unresolved conflicts at these paths:
file 2-sided conflict file 2-sided conflict
New conflicts appeared in these commits: New conflicts appeared in these commits:
kkmpptxz 17c72220 (conflict) C kkmpptxz 331a2fce (conflict) C
rlvkpnrz eb93a73d (conflict) B rlvkpnrz b42f84eb (conflict) B
To resolve the conflicts, start by updating to one of the first ones: To resolve the conflicts, start by updating to one of the first ones:
jj new kkmpptxz jj new kkmpptxz
jj new rlvkpnrz jj new rlvkpnrz
@ -86,8 +86,8 @@ fn test_report_conflicts() {
let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["new", "rlvkpnrzqnoo"]); let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["new", "rlvkpnrzqnoo"]);
insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @r###" insta::assert_snapshot!(stderr, @r###"
Working copy now at: vruxwmqv 1d87c702 (conflict) (empty) (no description set) Working copy now at: vruxwmqv 0485e30f (conflict) (empty) (no description set)
Parent commit : rlvkpnrz eb93a73d (conflict) B Parent commit : rlvkpnrz b42f84eb (conflict) B
Added 0 files, modified 1 files, removed 0 files Added 0 files, modified 1 files, removed 0 files
There are unresolved conflicts at these paths: There are unresolved conflicts at these paths:
file 2-sided conflict including 1 deletion file 2-sided conflict including 1 deletion
@ -99,7 +99,7 @@ fn test_report_conflicts() {
Working copy now at: yostqsxw f5a0cf8c (empty) (no description set) Working copy now at: yostqsxw f5a0cf8c (empty) (no description set)
Parent commit : rlvkpnrz 87370844 B Parent commit : rlvkpnrz 87370844 B
Existing conflicts were resolved or abandoned from these commits: Existing conflicts were resolved or abandoned from these commits:
rlvkpnrz hidden eb93a73d (conflict) B rlvkpnrz hidden b42f84eb (conflict) B
"###); "###);
} }
@ -121,94 +121,94 @@ fn test_report_conflicts_with_divergent_commits() {
let (stdout, stderr) = let (stdout, stderr) =
test_env.jj_cmd_ok(&repo_path, &["rebase", "-s=description(B)", "-d=root()"]); test_env.jj_cmd_ok(&repo_path, &["rebase", "-s=description(B)", "-d=root()"]);
insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Concurrent modification detected, resolving automatically. Concurrent modification detected, resolving automatically.
Rebased 3 commits onto destination Rebased 3 commits onto destination
Working copy now at: zsuskuln?? 97ce1783 (conflict) C2 Working copy now at: zsuskuln?? 4ca807ad (conflict) C2
Parent commit : kkmpptxz eb93a73d (conflict) B Parent commit : kkmpptxz b42f84eb (conflict) B
Added 0 files, modified 1 files, removed 0 files Added 0 files, modified 1 files, removed 0 files
There are unresolved conflicts at these paths: There are unresolved conflicts at these paths:
file 2-sided conflict including 1 deletion file 2-sided conflict including 1 deletion
New conflicts appeared in these commits: New conflicts appeared in these commits:
zsuskuln?? b535189c (conflict) C3 zsuskuln?? 1db43f23 (conflict) C3
zsuskuln?? 97ce1783 (conflict) C2 zsuskuln?? 4ca807ad (conflict) C2
kkmpptxz eb93a73d (conflict) B kkmpptxz b42f84eb (conflict) B
To resolve the conflicts, start by updating to the first one: To resolve the conflicts, start by updating to the first one:
jj new kkmpptxz jj new kkmpptxz
Then use `jj resolve`, or edit the conflict markers in the file directly. Then use `jj resolve`, or edit the conflict markers in the file directly.
Once the conflicts are resolved, you may want to inspect the result with `jj diff`. Once the conflicts are resolved, you may want to inspect the result with `jj diff`.
Then run `jj squash` to move the resolution into the conflicted commit. Then run `jj squash` to move the resolution into the conflicted commit.
"#); "###);
let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["rebase", "-d=description(A)"]); let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["rebase", "-d=description(A)"]);
insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Rebased 3 commits onto destination Rebased 3 commits onto destination
Working copy now at: zsuskuln?? f2d7a228 C2 Working copy now at: zsuskuln?? f2d7a228 C2
Parent commit : kkmpptxz db069a22 B Parent commit : kkmpptxz db069a22 B
Added 0 files, modified 1 files, removed 0 files Added 0 files, modified 1 files, removed 0 files
Existing conflicts were resolved or abandoned from these commits: Existing conflicts were resolved or abandoned from these commits:
zsuskuln hidden b535189c (conflict) C3 zsuskuln hidden 1db43f23 (conflict) C3
zsuskuln hidden 97ce1783 (conflict) C2 zsuskuln hidden 4ca807ad (conflict) C2
kkmpptxz hidden eb93a73d (conflict) B kkmpptxz hidden b42f84eb (conflict) B
"#); "###);
// Same thing when rebasing the divergent commits one at a time // Same thing when rebasing the divergent commits one at a time
let (stdout, stderr) = let (stdout, stderr) =
test_env.jj_cmd_ok(&repo_path, &["rebase", "-s=description(C2)", "-d=root()"]); test_env.jj_cmd_ok(&repo_path, &["rebase", "-s=description(C2)", "-d=root()"]);
insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Rebased 1 commits onto destination Rebased 1 commits onto destination
Working copy now at: zsuskuln?? b15416ac (conflict) C2 Working copy now at: zsuskuln?? 3c36afc9 (conflict) C2
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
There are unresolved conflicts at these paths: There are unresolved conflicts at these paths:
file 2-sided conflict including 1 deletion file 2-sided conflict including 1 deletion
New conflicts appeared in these commits: New conflicts appeared in these commits:
zsuskuln?? b15416ac (conflict) C2 zsuskuln?? 3c36afc9 (conflict) C2
To resolve the conflicts, start by updating to it: To resolve the conflicts, start by updating to it:
jj new zsuskuln jj new zsuskuln
Then use `jj resolve`, or edit the conflict markers in the file directly. Then use `jj resolve`, or edit the conflict markers in the file directly.
Once the conflicts are resolved, you may want to inspect the result with `jj diff`. Once the conflicts are resolved, you may want to inspect the result with `jj diff`.
Then run `jj squash` to move the resolution into the conflicted commit. Then run `jj squash` to move the resolution into the conflicted commit.
"#); "###);
let (stdout, stderr) = let (stdout, stderr) =
test_env.jj_cmd_ok(&repo_path, &["rebase", "-s=description(C3)", "-d=root()"]); test_env.jj_cmd_ok(&repo_path, &["rebase", "-s=description(C3)", "-d=root()"]);
insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Rebased 1 commits onto destination Rebased 1 commits onto destination
New conflicts appeared in these commits: New conflicts appeared in these commits:
zsuskuln?? 8cc7fde6 (conflict) C3 zsuskuln?? e3ff827e (conflict) C3
To resolve the conflicts, start by updating to it: To resolve the conflicts, start by updating to it:
jj new zsuskuln jj new zsuskuln
Then use `jj resolve`, or edit the conflict markers in the file directly. Then use `jj resolve`, or edit the conflict markers in the file directly.
Once the conflicts are resolved, you may want to inspect the result with `jj diff`. Once the conflicts are resolved, you may want to inspect the result with `jj diff`.
Then run `jj squash` to move the resolution into the conflicted commit. Then run `jj squash` to move the resolution into the conflicted commit.
"#); "###);
let (stdout, stderr) = test_env.jj_cmd_ok( let (stdout, stderr) = test_env.jj_cmd_ok(
&repo_path, &repo_path,
&["rebase", "-s=description(C2)", "-d=description(B)"], &["rebase", "-s=description(C2)", "-d=description(B)"],
); );
insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Rebased 1 commits onto destination Rebased 1 commits onto destination
Working copy now at: zsuskuln?? 1f9680bd C2 Working copy now at: zsuskuln?? 1f9680bd C2
Parent commit : kkmpptxz db069a22 B Parent commit : kkmpptxz db069a22 B
Added 0 files, modified 1 files, removed 0 files Added 0 files, modified 1 files, removed 0 files
Existing conflicts were resolved or abandoned from these commits: Existing conflicts were resolved or abandoned from these commits:
zsuskuln hidden b15416ac (conflict) C2 zsuskuln hidden 3c36afc9 (conflict) C2
"#); "###);
let (stdout, stderr) = test_env.jj_cmd_ok( let (stdout, stderr) = test_env.jj_cmd_ok(
&repo_path, &repo_path,
&["rebase", "-s=description(C3)", "-d=description(B)"], &["rebase", "-s=description(C3)", "-d=description(B)"],
); );
insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Rebased 1 commits onto destination Rebased 1 commits onto destination
Existing conflicts were resolved or abandoned from these commits: Existing conflicts were resolved or abandoned from these commits:
zsuskuln hidden 8cc7fde6 (conflict) C3 zsuskuln hidden e3ff827e (conflict) C3
"#); "###);
} }

View File

@ -235,14 +235,14 @@ fn test_resolution() {
insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @r###" insta::assert_snapshot!(stderr, @r###"
Resolving conflicts in: file Resolving conflicts in: file
Working copy now at: vruxwmqv 7699b9c3 conflict | (conflict) conflict Working copy now at: vruxwmqv 608a2310 conflict | (conflict) conflict
Parent commit : zsuskuln aa493daf a | a Parent commit : zsuskuln aa493daf a | a
Parent commit : royxmykx db6a4daf b | b Parent commit : royxmykx db6a4daf b | b
Added 0 files, modified 1 files, removed 0 files Added 0 files, modified 1 files, removed 0 files
There are unresolved conflicts at these paths: There are unresolved conflicts at these paths:
file 2-sided conflict file 2-sided conflict
New conflicts appeared in these commits: New conflicts appeared in these commits:
vruxwmqv 7699b9c3 conflict | (conflict) conflict vruxwmqv 608a2310 conflict | (conflict) conflict
To resolve the conflicts, start by updating to it: To resolve the conflicts, start by updating to it:
jj new vruxwmqv jj new vruxwmqv
Then use `jj resolve`, or edit the conflict markers in the file directly. Then use `jj resolve`, or edit the conflict markers in the file directly.
@ -378,22 +378,22 @@ fn test_resolution() {
], ],
); );
insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Resolving conflicts in: file Resolving conflicts in: file
Working copy now at: vruxwmqv 6701dfd3 conflict | (conflict) conflict Working copy now at: vruxwmqv 8e03fefa conflict | (conflict) conflict
Parent commit : zsuskuln aa493daf a | a Parent commit : zsuskuln aa493daf a | a
Parent commit : royxmykx db6a4daf b | b Parent commit : royxmykx db6a4daf b | b
Added 0 files, modified 1 files, removed 0 files Added 0 files, modified 1 files, removed 0 files
There are unresolved conflicts at these paths: There are unresolved conflicts at these paths:
file 2-sided conflict file 2-sided conflict
New conflicts appeared in these commits: New conflicts appeared in these commits:
vruxwmqv 6701dfd3 conflict | (conflict) conflict vruxwmqv 8e03fefa conflict | (conflict) conflict
To resolve the conflicts, start by updating to it: To resolve the conflicts, start by updating to it:
jj new vruxwmqv jj new vruxwmqv
Then use `jj resolve`, or edit the conflict markers in the file directly. Then use `jj resolve`, or edit the conflict markers in the file directly.
Once the conflicts are resolved, you may want to inspect the result with `jj diff`. Once the conflicts are resolved, you may want to inspect the result with `jj diff`.
Then run `jj squash` to move the resolution into the conflicted commit. Then run `jj squash` to move the resolution into the conflicted commit.
"#); "###);
insta::assert_snapshot!( insta::assert_snapshot!(
std::fs::read_to_string(test_env.env_root().join("editor4")).unwrap(), @r##" std::fs::read_to_string(test_env.env_root().join("editor4")).unwrap(), @r##"
<<<<<<< Side #1 (Conflict 1 of 1) <<<<<<< Side #1 (Conflict 1 of 1)
@ -459,22 +459,22 @@ fn test_resolution() {
], ],
); );
insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @r#" insta::assert_snapshot!(stderr, @r###"
Resolving conflicts in: file Resolving conflicts in: file
Working copy now at: vruxwmqv 6690cdf4 conflict | (conflict) conflict Working copy now at: vruxwmqv a786ac2f conflict | (conflict) conflict
Parent commit : zsuskuln aa493daf a | a Parent commit : zsuskuln aa493daf a | a
Parent commit : royxmykx db6a4daf b | b Parent commit : royxmykx db6a4daf b | b
Added 0 files, modified 1 files, removed 0 files Added 0 files, modified 1 files, removed 0 files
There are unresolved conflicts at these paths: There are unresolved conflicts at these paths:
file 2-sided conflict file 2-sided conflict
New conflicts appeared in these commits: New conflicts appeared in these commits:
vruxwmqv 6690cdf4 conflict | (conflict) conflict vruxwmqv a786ac2f conflict | (conflict) conflict
To resolve the conflicts, start by updating to it: To resolve the conflicts, start by updating to it:
jj new vruxwmqv jj new vruxwmqv
Then use `jj resolve`, or edit the conflict markers in the file directly. Then use `jj resolve`, or edit the conflict markers in the file directly.
Once the conflicts are resolved, you may want to inspect the result with `jj diff`. Once the conflicts are resolved, you may want to inspect the result with `jj diff`.
Then run `jj squash` to move the resolution into the conflicted commit. Then run `jj squash` to move the resolution into the conflicted commit.
"#); "###);
insta::assert_snapshot!( insta::assert_snapshot!(
std::fs::read_to_string(test_env.env_root().join("editor5")).unwrap(), @""); std::fs::read_to_string(test_env.env_root().join("editor5")).unwrap(), @"");
insta::assert_snapshot!(test_env.jj_cmd_success(&repo_path, &["diff", "--git"]), insta::assert_snapshot!(test_env.jj_cmd_success(&repo_path, &["diff", "--git"]),
@ -777,15 +777,15 @@ fn test_simplify_conflict_sides() {
insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @r###" insta::assert_snapshot!(stderr, @r###"
Resolving conflicts in: fileB Resolving conflicts in: fileB
Working copy now at: nkmrtpmo 4b14662a conflict | (conflict) conflict Working copy now at: nkmrtpmo 69cc0c2d conflict | (conflict) conflict
Parent commit : kmkuslsw 18c1fb00 conflictA | (conflict) (empty) conflictA Parent commit : kmkuslsw 4601566f conflictA | (conflict) (empty) conflictA
Parent commit : lylxulpl d11c92eb conflictB | (conflict) (empty) conflictB Parent commit : lylxulpl 6f8d8381 conflictB | (conflict) (empty) conflictB
Added 0 files, modified 1 files, removed 0 files Added 0 files, modified 1 files, removed 0 files
There are unresolved conflicts at these paths: There are unresolved conflicts at these paths:
fileA 2-sided conflict fileA 2-sided conflict
fileB 2-sided conflict fileB 2-sided conflict
New conflicts appeared in these commits: New conflicts appeared in these commits:
nkmrtpmo 4b14662a conflict | (conflict) conflict nkmrtpmo 69cc0c2d conflict | (conflict) conflict
To resolve the conflicts, start by updating to it: To resolve the conflicts, start by updating to it:
jj new nkmrtpmo jj new nkmrtpmo
Then use `jj resolve`, or edit the conflict markers in the file directly. Then use `jj resolve`, or edit the conflict markers in the file directly.
@ -1047,14 +1047,14 @@ fn test_multiple_conflicts() {
insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @r###" insta::assert_snapshot!(stderr, @r###"
Resolving conflicts in: another_file Resolving conflicts in: another_file
Working copy now at: vruxwmqv 6a90e546 conflict | (conflict) conflict Working copy now at: vruxwmqv 309e981c conflict | (conflict) conflict
Parent commit : zsuskuln de7553ef a | a Parent commit : zsuskuln de7553ef a | a
Parent commit : royxmykx f68bc2f0 b | b Parent commit : royxmykx f68bc2f0 b | b
Added 0 files, modified 1 files, removed 0 files Added 0 files, modified 1 files, removed 0 files
There are unresolved conflicts at these paths: There are unresolved conflicts at these paths:
this_file_has_a_very_long_name_to_test_padding 2-sided conflict this_file_has_a_very_long_name_to_test_padding 2-sided conflict
New conflicts appeared in these commits: New conflicts appeared in these commits:
vruxwmqv 6a90e546 conflict | (conflict) conflict vruxwmqv 309e981c conflict | (conflict) conflict
To resolve the conflicts, start by updating to it: To resolve the conflicts, start by updating to it:
jj new vruxwmqv jj new vruxwmqv
Then use `jj resolve`, or edit the conflict markers in the file directly. Then use `jj resolve`, or edit the conflict markers in the file directly.

View File

@ -61,13 +61,13 @@ fn test_restore() {
insta::assert_snapshot!(stderr, @r###" insta::assert_snapshot!(stderr, @r###"
Created rlvkpnrz b9b6011e (empty) (no description set) Created rlvkpnrz b9b6011e (empty) (no description set)
Rebased 1 descendant commits Rebased 1 descendant commits
Working copy now at: kkmpptxz d05c4d2a (conflict) (no description set) Working copy now at: kkmpptxz 5b361547 (conflict) (no description set)
Parent commit : rlvkpnrz b9b6011e (empty) (no description set) Parent commit : rlvkpnrz b9b6011e (empty) (no description set)
Added 0 files, modified 1 files, removed 0 files Added 0 files, modified 1 files, removed 0 files
There are unresolved conflicts at these paths: There are unresolved conflicts at these paths:
file2 2-sided conflict including 1 deletion file2 2-sided conflict including 1 deletion
New conflicts appeared in these commits: New conflicts appeared in these commits:
kkmpptxz d05c4d2a (conflict) (no description set) kkmpptxz 5b361547 (conflict) (no description set)
To resolve the conflicts, start by updating to it: To resolve the conflicts, start by updating to it:
jj new kkmpptxz jj new kkmpptxz
Then use `jj resolve`, or edit the conflict markers in the file directly. Then use `jj resolve`, or edit the conflict markers in the file directly.
@ -199,8 +199,8 @@ fn test_restore_conflicted_merge() {
let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["restore", "file"]); let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["restore", "file"]);
insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @r###" insta::assert_snapshot!(stderr, @r###"
Created vruxwmqv 126facb5 conflict | (conflict) (empty) conflict Created vruxwmqv 25a37060 conflict | (conflict) (empty) conflict
Working copy now at: vruxwmqv 126facb5 conflict | (conflict) (empty) conflict Working copy now at: vruxwmqv 25a37060 conflict | (conflict) (empty) conflict
Parent commit : zsuskuln aa493daf a | a Parent commit : zsuskuln aa493daf a | a
Parent commit : royxmykx db6a4daf b | b Parent commit : royxmykx db6a4daf b | b
Added 0 files, modified 1 files, removed 0 files Added 0 files, modified 1 files, removed 0 files
@ -240,8 +240,8 @@ fn test_restore_conflicted_merge() {
let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["restore"]); let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["restore"]);
insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @r###" insta::assert_snapshot!(stderr, @r###"
Created vruxwmqv b553ebcf conflict | (conflict) (empty) conflict Created vruxwmqv f2c82b9c conflict | (conflict) (empty) conflict
Working copy now at: vruxwmqv b553ebcf conflict | (conflict) (empty) conflict Working copy now at: vruxwmqv f2c82b9c conflict | (conflict) (empty) conflict
Parent commit : zsuskuln aa493daf a | a Parent commit : zsuskuln aa493daf a | a
Parent commit : royxmykx db6a4daf b | b Parent commit : royxmykx db6a4daf b | b
Added 0 files, modified 1 files, removed 0 files Added 0 files, modified 1 files, removed 0 files

View File

@ -156,7 +156,7 @@ fn test_bad_function_call() {
| ^--- | ^---
| |
= expected <identifier>, <string_literal>, or <raw_string_literal> = expected <identifier>, <string_literal>, or <raw_string_literal>
Hint: See https://martinvonz.github.io/jj/latest/filesets/ for filesets syntax, or for how to match file paths. Hint: See https://jj-vcs.github.io/jj/latest/filesets/ for filesets syntax, or for how to match file paths.
"#); "#);
let stderr = test_env.jj_cmd_failure(&repo_path, &["log", "-r", r#"files(foo:"bar")"#]); let stderr = test_env.jj_cmd_failure(&repo_path, &["log", "-r", r#"files(foo:"bar")"#]);
@ -717,7 +717,7 @@ fn test_all_modifier() {
| ^-^ | ^-^
| |
= Modifier "all:" is not allowed in sub expression = Modifier "all:" is not allowed in sub expression
For help, see https://martinvonz.github.io/jj/latest/config/. For help, see https://jj-vcs.github.io/jj/latest/config/.
"###); "###);
} }

View File

@ -688,10 +688,10 @@ fn test_squash_from_multiple() {
insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @r###" insta::assert_snapshot!(stderr, @r###"
Rebased 2 descendant commits Rebased 2 descendant commits
Working copy now at: kpqxywon 3e25ee21 f | (no description set) Working copy now at: kpqxywon 7ea39167 f | (no description set)
Parent commit : yostqsxw abb5a4ea e | (no description set) Parent commit : yostqsxw acfbf2a0 e | (no description set)
New conflicts appeared in these commits: New conflicts appeared in these commits:
yqosqzyt 98759deb d | (conflict) (no description set) yqosqzyt 4df3b215 d | (conflict) (no description set)
To resolve the conflicts, start by updating to it: To resolve the conflicts, start by updating to it:
jj new yqosqzyt jj new yqosqzyt
Then use `jj resolve`, or edit the conflict markers in the file directly. Then use `jj resolve`, or edit the conflict markers in the file directly.
@ -699,10 +699,10 @@ fn test_squash_from_multiple() {
Then run `jj squash` to move the resolution into the conflicted commit. Then run `jj squash` to move the resolution into the conflicted commit.
"###); "###);
insta::assert_snapshot!(get_log_output(&test_env, &repo_path), @r###" insta::assert_snapshot!(get_log_output(&test_env, &repo_path), @r###"
@ 3e25ee211f3f f @ 7ea391676d52 f
abb5a4ea1222 e acfbf2a0600d e
× 98759debcee5 d × 4df3b2156c3d d
3b1673b6370c a b c 3b1673b6370c a b c
000000000000 (empty) 000000000000 (empty)
@ -813,10 +813,10 @@ fn test_squash_from_multiple_partial() {
insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @r###" insta::assert_snapshot!(stderr, @r###"
Rebased 2 descendant commits Rebased 2 descendant commits
Working copy now at: kpqxywon 056dc38b f | (no description set) Working copy now at: kpqxywon a8530305 f | (no description set)
Parent commit : yostqsxw 45069475 e | (no description set) Parent commit : yostqsxw 0a3637fc e | (no description set)
New conflicts appeared in these commits: New conflicts appeared in these commits:
yqosqzyt b91b1157 d | (conflict) (no description set) yqosqzyt 05a3ab3d d | (conflict) (no description set)
To resolve the conflicts, start by updating to it: To resolve the conflicts, start by updating to it:
jj new yqosqzyt jj new yqosqzyt
Then use `jj resolve`, or edit the conflict markers in the file directly. Then use `jj resolve`, or edit the conflict markers in the file directly.
@ -824,13 +824,13 @@ fn test_squash_from_multiple_partial() {
Then run `jj squash` to move the resolution into the conflicted commit. Then run `jj squash` to move the resolution into the conflicted commit.
"###); "###);
insta::assert_snapshot!(get_log_output(&test_env, &repo_path), @r###" insta::assert_snapshot!(get_log_output(&test_env, &repo_path), @r###"
@ 056dc38bf286 f @ a8530305127c f
450694753699 e 0a3637fca632 e
450d1499c1ae b 450d1499c1ae b
14b44bf0473c c 14b44bf0473c c
× b91b11575906 d × 05a3ab3dffc8 d
54d3c1c0e9fd a 54d3c1c0e9fd a
000000000000 (empty) 000000000000 (empty)

View File

@ -93,7 +93,7 @@ fn test_status_merge() {
"###); "###);
} }
// See https://github.com/martinvonz/jj/issues/2051. // See https://github.com/jj-vcs/jj/issues/2051.
#[test] #[test]
fn test_status_ignored_gitignore() { fn test_status_ignored_gitignore() {
let test_env = TestEnvironment::default(); let test_env = TestEnvironment::default();
@ -137,8 +137,8 @@ fn test_status_filtered() {
"###); "###);
} }
// See <https://github.com/martinvonz/jj/issues/3108> // See <https://github.com/jj-vcs/jj/issues/3108>
// See <https://github.com/martinvonz/jj/issues/4147> // See <https://github.com/jj-vcs/jj/issues/4147>
#[test] #[test]
fn test_status_display_relevant_working_commit_conflict_hints() { fn test_status_display_relevant_working_commit_conflict_hints() {
let test_env = TestEnvironment::default(); let test_env = TestEnvironment::default();
@ -180,11 +180,11 @@ fn test_status_display_relevant_working_commit_conflict_hints() {
let stdout = test_env.jj_cmd_success(&repo_path, &["log", "-r", "::"]); let stdout = test_env.jj_cmd_success(&repo_path, &["log", "-r", "::"]);
insta::assert_snapshot!(stdout, @r###" insta::assert_snapshot!(stdout, @r###"
@ yqosqzyt test.user@example.com 2001-02-03 08:05:13 65143fef conflict @ yqosqzyt test.user@example.com 2001-02-03 08:05:13 dcb25635 conflict
(empty) boom-cont-2 (empty) boom-cont-2
× royxmykx test.user@example.com 2001-02-03 08:05:12 a4e88714 conflict × royxmykx test.user@example.com 2001-02-03 08:05:12 664a4c6c conflict
(empty) boom-cont (empty) boom-cont
× mzvwutvl test.user@example.com 2001-02-03 08:05:11 538415e7 conflict × mzvwutvl test.user@example.com 2001-02-03 08:05:11 c5a4e9cb conflict
(empty) boom (empty) boom
kkmpptxz test.user@example.com 2001-02-03 08:05:10 1e8c2956 kkmpptxz test.user@example.com 2001-02-03 08:05:10 1e8c2956
First part of conflicting change First part of conflicting change
@ -197,18 +197,18 @@ fn test_status_display_relevant_working_commit_conflict_hints() {
let stdout = test_env.jj_cmd_success(&repo_path, &["status"]); let stdout = test_env.jj_cmd_success(&repo_path, &["status"]);
insta::assert_snapshot!(stdout, @r#" insta::assert_snapshot!(stdout, @r###"
The working copy is clean The working copy is clean
There are unresolved conflicts at these paths: There are unresolved conflicts at these paths:
conflicted.txt 2-sided conflict conflicted.txt 2-sided conflict
Working copy : yqosqzyt 65143fef (conflict) (empty) boom-cont-2 Working copy : yqosqzyt dcb25635 (conflict) (empty) boom-cont-2
Parent commit: royxmykx a4e88714 (conflict) (empty) boom-cont Parent commit: royxmykx 664a4c6c (conflict) (empty) boom-cont
To resolve the conflicts, start by updating to the first one: To resolve the conflicts, start by updating to the first one:
jj new mzvwutvl jj new mzvwutvl
Then use `jj resolve`, or edit the conflict markers in the file directly. Then use `jj resolve`, or edit the conflict markers in the file directly.
Once the conflicts are resolved, you may want to inspect the result with `jj diff`. Once the conflicts are resolved, you may want to inspect the result with `jj diff`.
Then run `jj squash` to move the resolution into the conflicted commit. Then run `jj squash` to move the resolution into the conflicted commit.
"#); "###);
// Resolve conflict // Resolve conflict
test_env.jj_cmd_ok(&repo_path, &["new", "--message", "fixed 1"]); test_env.jj_cmd_ok(&repo_path, &["new", "--message", "fixed 1"]);
@ -222,15 +222,15 @@ fn test_status_display_relevant_working_commit_conflict_hints() {
let stdout = test_env.jj_cmd_success(&repo_path, &["log", "-r", "::"]); let stdout = test_env.jj_cmd_success(&repo_path, &["log", "-r", "::"]);
insta::assert_snapshot!(stdout, @r###" insta::assert_snapshot!(stdout, @r###"
@ kpqxywon test.user@example.com 2001-02-03 08:05:18 3432159f @ kpqxywon test.user@example.com 2001-02-03 08:05:18 d313f2e1
fixed 2 fixed 2
znkkpsqq test.user@example.com 2001-02-03 08:05:17 897d589f znkkpsqq test.user@example.com 2001-02-03 08:05:17 23e58975
fixed 1 fixed 1
× yqosqzyt test.user@example.com 2001-02-03 08:05:13 65143fef conflict × yqosqzyt test.user@example.com 2001-02-03 08:05:13 dcb25635 conflict
(empty) boom-cont-2 (empty) boom-cont-2
× royxmykx test.user@example.com 2001-02-03 08:05:12 a4e88714 conflict × royxmykx test.user@example.com 2001-02-03 08:05:12 664a4c6c conflict
(empty) boom-cont (empty) boom-cont
× mzvwutvl test.user@example.com 2001-02-03 08:05:11 538415e7 conflict × mzvwutvl test.user@example.com 2001-02-03 08:05:11 c5a4e9cb conflict
(empty) boom (empty) boom
kkmpptxz test.user@example.com 2001-02-03 08:05:10 1e8c2956 kkmpptxz test.user@example.com 2001-02-03 08:05:10 1e8c2956
First part of conflicting change First part of conflicting change
@ -246,8 +246,8 @@ fn test_status_display_relevant_working_commit_conflict_hints() {
insta::assert_snapshot!(stdout, @r###" insta::assert_snapshot!(stdout, @r###"
Working copy changes: Working copy changes:
M conflicted.txt M conflicted.txt
Working copy : kpqxywon 3432159f fixed 2 Working copy : kpqxywon d313f2e1 fixed 2
Parent commit: znkkpsqq 897d589f fixed 1 Parent commit: znkkpsqq 23e58975 fixed 1
"###); "###);
// Step back one. // Step back one.
@ -256,15 +256,15 @@ fn test_status_display_relevant_working_commit_conflict_hints() {
let stdout = test_env.jj_cmd_success(&repo_path, &["log", "-r", "::"]); let stdout = test_env.jj_cmd_success(&repo_path, &["log", "-r", "::"]);
insta::assert_snapshot!(stdout, @r###" insta::assert_snapshot!(stdout, @r###"
kpqxywon test.user@example.com 2001-02-03 08:05:18 3432159f kpqxywon test.user@example.com 2001-02-03 08:05:18 d313f2e1
fixed 2 fixed 2
@ znkkpsqq test.user@example.com 2001-02-03 08:05:17 897d589f @ znkkpsqq test.user@example.com 2001-02-03 08:05:17 23e58975
fixed 1 fixed 1
× yqosqzyt test.user@example.com 2001-02-03 08:05:13 65143fef conflict × yqosqzyt test.user@example.com 2001-02-03 08:05:13 dcb25635 conflict
(empty) boom-cont-2 (empty) boom-cont-2
× royxmykx test.user@example.com 2001-02-03 08:05:12 a4e88714 conflict × royxmykx test.user@example.com 2001-02-03 08:05:12 664a4c6c conflict
(empty) boom-cont (empty) boom-cont
× mzvwutvl test.user@example.com 2001-02-03 08:05:11 538415e7 conflict × mzvwutvl test.user@example.com 2001-02-03 08:05:11 c5a4e9cb conflict
(empty) boom (empty) boom
kkmpptxz test.user@example.com 2001-02-03 08:05:10 1e8c2956 kkmpptxz test.user@example.com 2001-02-03 08:05:10 1e8c2956
First part of conflicting change First part of conflicting change
@ -280,8 +280,8 @@ fn test_status_display_relevant_working_commit_conflict_hints() {
insta::assert_snapshot!(stdout, @r###" insta::assert_snapshot!(stdout, @r###"
Working copy changes: Working copy changes:
M conflicted.txt M conflicted.txt
Working copy : znkkpsqq 897d589f fixed 1 Working copy : znkkpsqq 23e58975 fixed 1
Parent commit: yqosqzyt 65143fef (conflict) (empty) boom-cont-2 Parent commit: yqosqzyt dcb25635 (conflict) (empty) boom-cont-2
Conflict in parent commit has been resolved in working copy Conflict in parent commit has been resolved in working copy
"###); "###);
@ -292,15 +292,15 @@ fn test_status_display_relevant_working_commit_conflict_hints() {
let stdout = test_env.jj_cmd_success(&repo_path, &["log", "-r", "::"]); let stdout = test_env.jj_cmd_success(&repo_path, &["log", "-r", "::"]);
insta::assert_snapshot!(stdout, @r###" insta::assert_snapshot!(stdout, @r###"
kpqxywon test.user@example.com 2001-02-03 08:05:18 3432159f kpqxywon test.user@example.com 2001-02-03 08:05:18 d313f2e1
fixed 2 fixed 2
znkkpsqq test.user@example.com 2001-02-03 08:05:17 897d589f znkkpsqq test.user@example.com 2001-02-03 08:05:17 23e58975
fixed 1 fixed 1
× yqosqzyt test.user@example.com 2001-02-03 08:05:13 65143fef conflict × yqosqzyt test.user@example.com 2001-02-03 08:05:13 dcb25635 conflict
(empty) boom-cont-2 (empty) boom-cont-2
× royxmykx test.user@example.com 2001-02-03 08:05:12 a4e88714 conflict × royxmykx test.user@example.com 2001-02-03 08:05:12 664a4c6c conflict
(empty) boom-cont (empty) boom-cont
× mzvwutvl test.user@example.com 2001-02-03 08:05:11 538415e7 conflict × mzvwutvl test.user@example.com 2001-02-03 08:05:11 c5a4e9cb conflict
(empty) boom (empty) boom
kkmpptxz test.user@example.com 2001-02-03 08:05:10 1e8c2956 kkmpptxz test.user@example.com 2001-02-03 08:05:10 1e8c2956
First part of conflicting change First part of conflicting change
@ -352,19 +352,19 @@ fn test_status_simplify_conflict_sides() {
); );
insta::assert_snapshot!(test_env.jj_cmd_success(&repo_path, &["status"]), insta::assert_snapshot!(test_env.jj_cmd_success(&repo_path, &["status"]),
@r#" @r###"
The working copy is clean The working copy is clean
There are unresolved conflicts at these paths: There are unresolved conflicts at these paths:
fileA 2-sided conflict fileA 2-sided conflict
fileB 2-sided conflict fileB 2-sided conflict
Working copy : nkmrtpmo 7b1cdcaa conflict | (conflict) (empty) conflict Working copy : nkmrtpmo 83c4b9e7 conflict | (conflict) (empty) conflict
Parent commit: kmkuslsw 18c1fb00 conflictA | (conflict) (empty) conflictA Parent commit: kmkuslsw 4601566f conflictA | (conflict) (empty) conflictA
Parent commit: lylxulpl d11c92eb conflictB | (conflict) (empty) conflictB Parent commit: lylxulpl 6f8d8381 conflictB | (conflict) (empty) conflictB
To resolve the conflicts, start by updating to one of the first ones: To resolve the conflicts, start by updating to one of the first ones:
jj new lylxulpl jj new lylxulpl
jj new kmkuslsw jj new kmkuslsw
Then use `jj resolve`, or edit the conflict markers in the file directly. Then use `jj resolve`, or edit the conflict markers in the file directly.
Once the conflicts are resolved, you may want to inspect the result with `jj diff`. Once the conflicts are resolved, you may want to inspect the result with `jj diff`.
Then run `jj squash` to move the resolution into the conflicted commit. Then run `jj squash` to move the resolution into the conflicted commit.
"#); "###);
} }

View File

@ -28,7 +28,7 @@ fn test_util_config_schema() {
"$schema": "http://json-schema.org/draft-07/schema", "$schema": "http://json-schema.org/draft-07/schema",
"title": "Jujutsu config", "title": "Jujutsu config",
"type": "object", "type": "object",
"description": "User configuration for Jujutsu VCS. See https://martinvonz.github.io/jj/latest/config/ for details", "description": "User configuration for Jujutsu VCS. See https://jj-vcs.github.io/jj/latest/config/ for details",
"properties": { "properties": {
[...] [...]
"fix": { "fix": {

View File

@ -65,7 +65,7 @@ fn test_snapshot_large_file() {
insta::assert_snapshot!(stderr, @r" insta::assert_snapshot!(stderr, @r"
Config error: Invalid type or value for snapshot.max-new-file-size Config error: Invalid type or value for snapshot.max-new-file-size
Caused by: Expected a positive integer or a string in '<number><unit>' form Caused by: Expected a positive integer or a string in '<number><unit>' form
For help, see https://martinvonz.github.io/jj/latest/config/. For help, see https://jj-vcs.github.io/jj/latest/config/.
"); ");
// No error if we disable auto-tracking of the path // No error if we disable auto-tracking of the path

View File

@ -504,14 +504,14 @@ fn test_workspaces_conflicting_edits() {
insta::assert_snapshot!(stderr, @r##" insta::assert_snapshot!(stderr, @r##"
Error: The working copy is stale (not updated since operation c81af45155a2). Error: The working copy is stale (not updated since operation c81af45155a2).
Hint: Run `jj workspace update-stale` to update it. Hint: Run `jj workspace update-stale` to update it.
See https://martinvonz.github.io/jj/latest/working-copy/#stale-working-copy for more information. See https://jj-vcs.github.io/jj/latest/working-copy/#stale-working-copy for more information.
"##); "##);
// Same error on second run, and from another command // Same error on second run, and from another command
let stderr = test_env.jj_cmd_failure(&secondary_path, &["log"]); let stderr = test_env.jj_cmd_failure(&secondary_path, &["log"]);
insta::assert_snapshot!(stderr, @r##" insta::assert_snapshot!(stderr, @r##"
Error: The working copy is stale (not updated since operation c81af45155a2). Error: The working copy is stale (not updated since operation c81af45155a2).
Hint: Run `jj workspace update-stale` to update it. Hint: Run `jj workspace update-stale` to update it.
See https://martinvonz.github.io/jj/latest/working-copy/#stale-working-copy for more information. See https://jj-vcs.github.io/jj/latest/working-copy/#stale-working-copy for more information.
"##); "##);
let (stdout, stderr) = test_env.jj_cmd_ok(&secondary_path, &["workspace", "update-stale"]); let (stdout, stderr) = test_env.jj_cmd_ok(&secondary_path, &["workspace", "update-stale"]);
// It was detected that the working copy is now stale. // It was detected that the working copy is now stale.
@ -526,27 +526,27 @@ fn test_workspaces_conflicting_edits() {
Updated working copy to fresh commit e82cd4ee8faa Updated working copy to fresh commit e82cd4ee8faa
"###); "###);
insta::assert_snapshot!(get_log_output(&test_env, &secondary_path), insta::assert_snapshot!(get_log_output(&test_env, &secondary_path),
@r" @r###"
@ e82cd4ee8faa secondary@ (divergent) @ e82cd4ee8faa secondary@ (divergent)
× a28c85ce128b (divergent) × 30816012e0da (divergent)
a58c9a9b19ce default@ a58c9a9b19ce default@
d41244767d45 d41244767d45
000000000000 000000000000
"); "###);
// The stale working copy should have been resolved by the previous command // The stale working copy should have been resolved by the previous command
let stdout = get_log_output(&test_env, &secondary_path); let stdout = get_log_output(&test_env, &secondary_path);
assert!(!stdout.starts_with("The working copy is stale")); assert!(!stdout.starts_with("The working copy is stale"));
insta::assert_snapshot!(stdout, @r" insta::assert_snapshot!(stdout, @r###"
@ e82cd4ee8faa secondary@ (divergent) @ e82cd4ee8faa secondary@ (divergent)
× a28c85ce128b (divergent) × 30816012e0da (divergent)
a58c9a9b19ce default@ a58c9a9b19ce default@
d41244767d45 d41244767d45
000000000000 000000000000
"); "###);
} }
/// Test a clean working copy that gets rewritten from another workspace /// Test a clean working copy that gets rewritten from another workspace
@ -592,7 +592,7 @@ fn test_workspaces_updated_by_other() {
insta::assert_snapshot!(stderr, @r##" insta::assert_snapshot!(stderr, @r##"
Error: The working copy is stale (not updated since operation c81af45155a2). Error: The working copy is stale (not updated since operation c81af45155a2).
Hint: Run `jj workspace update-stale` to update it. Hint: Run `jj workspace update-stale` to update it.
See https://martinvonz.github.io/jj/latest/working-copy/#stale-working-copy for more information. See https://jj-vcs.github.io/jj/latest/working-copy/#stale-working-copy for more information.
"##); "##);
let (stdout, stderr) = test_env.jj_cmd_ok(&secondary_path, &["workspace", "update-stale"]); let (stdout, stderr) = test_env.jj_cmd_ok(&secondary_path, &["workspace", "update-stale"]);
// It was detected that the working copy is now stale, but clean. So no // It was detected that the working copy is now stale, but clean. So no
@ -781,7 +781,7 @@ fn test_workspaces_current_op_discarded_by_other(automatic: bool) {
insta::assert_snapshot!(stderr, @r###" insta::assert_snapshot!(stderr, @r###"
Error: Could not read working copy's operation. Error: Could not read working copy's operation.
Hint: Run `jj workspace update-stale` to recover. Hint: Run `jj workspace update-stale` to recover.
See https://martinvonz.github.io/jj/latest/working-copy/#stale-working-copy for more information. See https://jj-vcs.github.io/jj/latest/working-copy/#stale-working-copy for more information.
"###); "###);
let (stdout, stderr) = test_env.jj_cmd_ok(&secondary_path, &["workspace", "update-stale"]); let (stdout, stderr) = test_env.jj_cmd_ok(&secondary_path, &["workspace", "update-stale"]);

View File

@ -52,7 +52,7 @@ Martin used watch in a [tmux](https://github.com/tmux/tmux/wiki) pane during his
Alternatively, you can use [jj-fzf](https://github.com/tim-janik/jj-fzf), where the central piece is the `jj log` view and common operations can be carried out via key bindings while the log view updates. Alternatively, you can use [jj-fzf](https://github.com/tim-janik/jj-fzf), where the central piece is the `jj log` view and common operations can be carried out via key bindings while the log view updates.
The wiki lists additional TUIs and GUIs beyond the terminal: [GUI-and-TUI](https://github.com/martinvonz/jj/wiki/GUI-and-TUI) The wiki lists additional TUIs and GUIs beyond the terminal: [GUI-and-TUI](https://github.com/jj-vcs/jj/wiki/GUI-and-TUI)
### Should I co-locate my repository? ### Should I co-locate my repository?
@ -78,7 +78,7 @@ important ones are:
and ignore the confusing information such tools present for conflicted commits and ignore the confusing information such tools present for conflicted commits
(unless you are curious about [the details of how `jj` stores (unless you are curious about [the details of how `jj` stores
conflicts](technical/conflicts.md)). See conflicts](technical/conflicts.md)). See
[\#3979](https://github.com/martinvonz/jj/issues/3979) for plans to improve [\#3979](https://github.com/jj-vcs/jj/issues/3979) for plans to improve
this situation. this situation.
- Jujutsu commands may be a little slower in very large repositories due to - Jujutsu commands may be a little slower in very large repositories due to
@ -372,4 +372,4 @@ detect custom backends and more).
[templates]: templates.md [templates]: templates.md
[this issue]: https://github.com/martinvonz/jj/issues/1531 [this issue]: https://github.com/jj-vcs/jj/issues/1531

View File

@ -76,4 +76,4 @@ You can find other community contributed tools and integrations in our
[lazyjj]: https://github.com/Cretezy/lazyjj [lazyjj]: https://github.com/Cretezy/lazyjj
[vjj]: https://github.com/noahmayr/vjj [vjj]: https://github.com/noahmayr/vjj
[visualjj]: https://www.visualjj.com [visualjj]: https://www.visualjj.com
[Wiki]: https://github.com/martinvonz/jj/wiki [Wiki]: https://github.com/jj-vcs/jj/wiki

View File

@ -157,7 +157,7 @@ Parts of the style that are not overridden - such as the foreground color in the
example above - are inherited from the style of the parent label. example above - are inherited from the style of the parent label.
Which elements can be colored is not yet documented, but see Which elements can be colored is not yet documented, but see
the [default color configuration](https://github.com/martinvonz/jj/blob/main/cli/src/config/colors.toml) the [default color configuration](https://github.com/jj-vcs/jj/blob/main/cli/src/config/colors.toml)
for some examples of what's possible. for some examples of what's possible.
### Default command ### Default command
@ -786,7 +786,7 @@ Using `ui.diff-editor = "vimdiff"` is possible but not recommended. For a better
experience, you can follow [instructions from the Wiki] to configure the experience, you can follow [instructions from the Wiki] to configure the
[DirDiff Vim plugin] and/or the [vimtabdiff Python script]. [DirDiff Vim plugin] and/or the [vimtabdiff Python script].
[instructions from the Wiki]: https://github.com/martinvonz/jj/wiki/Vim#using-vim-as-a-diff-tool [instructions from the Wiki]: https://github.com/jj-vcs/jj/wiki/Vim#using-vim-as-a-diff-tool
[DirDiff Vim plugin]: https://github.com/will133/vim-dirdiff [DirDiff Vim plugin]: https://github.com/will133/vim-dirdiff
[vimtabdiff Python script]: https://github.com/balki/vimtabdiff [vimtabdiff Python script]: https://github.com/balki/vimtabdiff

View File

@ -85,9 +85,9 @@ stakeholders, which we do with [Design Docs](design_docs.md), see the
## Contributing to the documentation ## Contributing to the documentation
We appreciate [bug We appreciate [bug
reports](https://github.com/martinvonz/jj/issues/new?template=bug_report.md) reports](https://github.com/jj-vcs/jj/issues/new?template=bug_report.md)
about any problems, however small, lurking in [our documentation about any problems, however small, lurking in [our documentation
website](https://martinvonz.github.io/jj/prerelease) or in the `jj help website](https://jj-vcs.github.io/jj/prerelease) or in the `jj help
<command>` docs. If a part of the bug report template does not apply, you can <command>` docs. If a part of the bug report template does not apply, you can
just delete it. just delete it.
@ -99,14 +99,14 @@ You can use the version switcher in the top-left of the website to do so.
If you are willing to make a PR fixing a documentation problem, even better! If you are willing to make a PR fixing a documentation problem, even better!
The documentation website sources are Markdown files located in the [`docs/` The documentation website sources are Markdown files located in the [`docs/`
directory](https://github.com/martinvonz/jj/tree/main/docs). You do not need to directory](https://github.com/jj-vcs/jj/tree/main/docs). You do not need to
know Rust to work with them. See below for [instructions on how to preview the know Rust to work with them. See below for [instructions on how to preview the
HTML docs](#previewing-the-html-documentation) as you edit the Markdown files. HTML docs](#previewing-the-html-documentation) as you edit the Markdown files.
Doing so is optional, but recommended. Doing so is optional, but recommended.
The `jj help` docs are sourced from the "docstring" comments inside the Rust The `jj help` docs are sourced from the "docstring" comments inside the Rust
sources, currently from the [`cli/src/commands` sources, currently from the [`cli/src/commands`
directory](https://github.com/martinvonz/jj/tree/main/cli/src/commands). Working directory](https://github.com/jj-vcs/jj/tree/main/cli/src/commands). Working
on them requires setting up a Rust development environment, as described on them requires setting up a Rust development environment, as described
below, and may occasionally require adjusting a test. below, and may occasionally require adjusting a test.
@ -272,7 +272,7 @@ We recommend at least these settings:
## Previewing the HTML documentation ## Previewing the HTML documentation
The documentation for `jj` is automatically published online at The documentation for `jj` is automatically published online at
<https://martinvonz.github.io/jj/>. <https://jj-vcs.github.io/jj/>.
When editing documentation, you should check your changes locally — especially When editing documentation, you should check your changes locally — especially
if you are adding a new page, or doing a major rewrite. if you are adding a new page, or doing a major rewrite.
@ -353,8 +353,8 @@ reloaded in your browser automatically.
The full `jj` website includes the documentation for several `jj` versions The full `jj` website includes the documentation for several `jj` versions
(`prerelease`, latest release, and the older releases). The top-level (`prerelease`, latest release, and the older releases). The top-level
URL <https://martinvonz.github.io/jj> redirects to URL <https://jj-vcs.github.io/jj> redirects to
<https://martinvonz.github.io/jj/latest>, which in turn redirects to <https://jj-vcs.github.io/jj/latest>, which in turn redirects to
the docs for the last stable version. the docs for the last stable version.
The different versions of documentation are managed and deployed with The different versions of documentation are managed and deployed with

View File

@ -263,10 +263,10 @@ user and incrementally updating the output of `jj st`.
[git-branchless]: https://github.com/arxanas/git-branchless [git-branchless]: https://github.com/arxanas/git-branchless
[issue]: https://github.com/martinvonz/jj/issues/963 [issue]: https://github.com/jj-vcs/jj/issues/963
[fix-src]: https://repo.mercurial-scm.org/hg/file/tip/hgext/fix.py [fix-src]: https://repo.mercurial-scm.org/hg/file/tip/hgext/fix.py
[hooks]: https://discord.com/channels/968932220549103686/969829516539228222/1047958933161119795 [hooks]: https://discord.com/channels/968932220549103686/969829516539228222/1047958933161119795
[OpHeadsStore]: https://github.com/martinvonz/jj/blob/main/lib/src/op_heads_store.rs [OpHeadsStore]: https://github.com/jj-vcs/jj/blob/main/lib/src/op_heads_store.rs
[pre-commit]: https://github.com/martinvonz/jj/issues/405 [pre-commit]: https://github.com/jj-vcs/jj/issues/405
[Treestate]: https://github.com/martinvonz/jj/blob/af85f552b676d66ed0e9ae0d401cd0c4ffbbeb21/lib/src/working_copy.rs#L117 [Treestate]: https://github.com/jj-vcs/jj/blob/af85f552b676d66ed0e9ae0d401cd0c4ffbbeb21/lib/src/working_copy.rs#L117
[Workspace]: https://github.com/martinvonz/jj/blob/af85f552b676d66ed0e9ae0d401cd0c4ffbbeb21/lib/src/workspace.rs#L54 [Workspace]: https://github.com/jj-vcs/jj/blob/af85f552b676d66ed0e9ae0d401cd0c4ffbbeb21/lib/src/workspace.rs#L54

View File

@ -13,8 +13,8 @@ Redesign Sparse Patterns to accommodate more advanced features for native
and custom implementations. This includes three main goals: and custom implementations. This includes three main goals:
1. Sparse Patterns should be versioned with the working copy 1. Sparse Patterns should be versioned with the working copy
1. Sparse Patterns should support more [flexible matching rules](https://github.com/martinvonz/jj/issues/1896) 1. Sparse Patterns should support more [flexible matching rules](https://github.com/jj-vcs/jj/issues/1896)
1. Sparse Patterns should support [client path remapping](https://github.com/martinvonz/jj/issues/2288) 1. Sparse Patterns should support [client path remapping](https://github.com/jj-vcs/jj/issues/2288)
## Current State (as of jj 0.13.0) ## Current State (as of jj 0.13.0)

View File

@ -13,7 +13,7 @@ The goal of this plan is to implement
* proper support for tracking/non-tracking remote branches * proper support for tracking/non-tracking remote branches
* logically consistent data model for importing/exporting Git refs * logically consistent data model for importing/exporting Git refs
[#1136]: https://github.com/martinvonz/jj/issues/1136 [#1136]: https://github.com/jj-vcs/jj/issues/1136
## Current data model (as of jj 0.8.0) ## Current data model (as of jj 0.8.0)
@ -352,7 +352,7 @@ Note: desired behavior of `jj branch forget` is to
## Remaining issues ## Remaining issues
* https://github.com/martinvonz/jj/issues/1278 pushing to tracked remote * https://github.com/jj-vcs/jj/issues/1278 pushing to tracked remote
* Option could be added to push to all `tracking` remotes? * Option could be added to push to all `tracking` remotes?
* Track remote branch locally with different name * Track remote branch locally with different name
* Local branch name could be stored per remote branch * Local branch name could be stored per remote branch
@ -365,8 +365,8 @@ Note: desired behavior of `jj branch forget` is to
## References ## References
* https://github.com/martinvonz/jj/issues/1136 * https://github.com/jj-vcs/jj/issues/1136
* https://github.com/martinvonz/jj/issues/1666 * https://github.com/jj-vcs/jj/issues/1666
* https://github.com/martinvonz/jj/issues/1690 * https://github.com/jj-vcs/jj/issues/1690
* https://github.com/martinvonz/jj/issues/1734 * https://github.com/jj-vcs/jj/issues/1734
* https://github.com/martinvonz/jj/pull/1739 * https://github.com/jj-vcs/jj/pull/1739

View File

@ -20,7 +20,7 @@ a comparison with Git, including how workflows are different, see the
you miss any particular configuration options. you miss any particular configuration options.
* The configuration of remotes (`[remote "<name>"]`). Only the names and URLs * The configuration of remotes (`[remote "<name>"]`). Only the names and URLs
are respected (refspecs are not respected, and are respected (refspecs are not respected, and
[only the last pushurl](https://github.com/martinvonz/jj/issues/4889) is [only the last pushurl](https://github.com/jj-vcs/jj/issues/4889) is
respected). respected).
* `core.excludesFile` * `core.excludesFile`
* **Authentication: Partial.** Only `ssh-agent`, a password-less key ( * **Authentication: Partial.** Only `ssh-agent`, a password-less key (
@ -38,9 +38,9 @@ a comparison with Git, including how workflows are different, see the
working-copy commit. It's recommended to set up the ignore patterns earlier. working-copy commit. It's recommended to set up the ignore patterns earlier.
The `.gitignore` support uses a native implementation, so please report a bug The `.gitignore` support uses a native implementation, so please report a bug
if you notice any difference compared to `git`. if you notice any difference compared to `git`.
* **.gitattributes: No.** There's [#53](https://github.com/martinvonz/jj/issues/53) * **.gitattributes: No.** There's [#53](https://github.com/jj-vcs/jj/issues/53)
about adding support for at least the `eol` attribute. about adding support for at least the `eol` attribute.
* **Hooks: No.** There's [#405](https://github.com/martinvonz/jj/issues/405) * **Hooks: No.** There's [#405](https://github.com/jj-vcs/jj/issues/405)
specifically for providing the checks from https://pre-commit.com. specifically for providing the checks from https://pre-commit.com.
* **Merge commits: Yes.** Octopus merges (i.e. with more than 2 parents) are * **Merge commits: Yes.** Octopus merges (i.e. with more than 2 parents) are
also supported. also supported.
@ -51,11 +51,11 @@ a comparison with Git, including how workflows are different, see the
* **Staging area: Kind of.** The staging area will be ignored. For example, * **Staging area: Kind of.** The staging area will be ignored. For example,
`jj diff` will show a diff from the Git HEAD to the working copy. There are `jj diff` will show a diff from the Git HEAD to the working copy. There are
[ways of fulfilling your use cases without a staging [ways of fulfilling your use cases without a staging
area](https://github.com/martinvonz/jj/blob/main/docs/git-comparison.md#the-index). area](https://github.com/jj-vcs/jj/blob/main/docs/git-comparison.md#the-index).
* **Garbage collection: Yes.** It should be safe to run `git gc` in the Git * **Garbage collection: Yes.** It should be safe to run `git gc` in the Git
repo, but it's not tested, so it's probably a good idea to make a backup of repo, but it's not tested, so it's probably a good idea to make a backup of
the whole workspace first. There's [no garbage collection and repacking of the whole workspace first. There's [no garbage collection and repacking of
Jujutsu's own data structures yet](https://github.com/martinvonz/jj/issues/12), Jujutsu's own data structures yet](https://github.com/jj-vcs/jj/issues/12),
however. however.
* **Bare repositories: Yes.** You can use `jj git init --git-repo=<path>` to * **Bare repositories: Yes.** You can use `jj git init --git-repo=<path>` to
create a repo backed by a bare Git repo. create a repo backed by a bare Git repo.
@ -71,9 +71,9 @@ a comparison with Git, including how workflows are different, see the
* **Sparse checkouts: No.** However, there's native support for sparse * **Sparse checkouts: No.** However, there's native support for sparse
checkouts. See the `jj sparse` command. checkouts. See the `jj sparse` command.
* **Signed commits: Partial.** * **Signed commits: Partial.**
So far only [by configuration](https://github.com/martinvonz/jj/blob/main/docs/config.md#commit-signing), So far only [by configuration](https://github.com/jj-vcs/jj/blob/main/docs/config.md#commit-signing),
later perhaps [a command](https://github.com/martinvonz/jj/pull/3142). later perhaps [a command](https://github.com/jj-vcs/jj/pull/3142).
* **Git LFS: No.** ([#80](https://github.com/martinvonz/jj/issues/80)) * **Git LFS: No.** ([#80](https://github.com/jj-vcs/jj/issues/80))
## Creating an empty repo ## Creating an empty repo

View File

@ -62,7 +62,7 @@ As of October 2023, Jujutsu has no equivalent to a `git pull` command (see
`jj git fetch` followed by a `jj rebase -d $main_bookmark` to update your `jj git fetch` followed by a `jj rebase -d $main_bookmark` to update your
changes. changes.
[sync-issue]: https://github.com/martinvonz/jj/issues/1039 [sync-issue]: https://github.com/jj-vcs/jj/issues/1039
## Working in a Git co-located repository ## Working in a Git co-located repository
@ -160,7 +160,7 @@ $ jj git push --bookmark your-feature
``` ```
The hyphen after `your-feature` comes from the The hyphen after `your-feature` comes from the
[revset](https://github.com/martinvonz/jj/blob/main/docs/revsets.md) syntax. [revset](https://github.com/jj-vcs/jj/blob/main/docs/revsets.md) syntax.
## Working with other people's bookmarks ## Working with other people's bookmarks
@ -198,7 +198,7 @@ and run `direnv allow` to approve it for direnv to run. Then GitHub CLI will
work automatically even in repos that aren't co-located so you can execute work automatically even in repos that aren't co-located so you can execute
commands like `gh issue list` normally. commands like `gh issue list` normally.
[issue #1008]: https://github.com/martinvonz/jj/issues/1008 [issue #1008]: https://github.com/jj-vcs/jj/issues/1008
## Useful Revsets ## Useful Revsets
@ -244,7 +244,7 @@ the [tutorial][tut].
[auto-bookmark]: config.md#automatic-local-bookmark-creation [auto-bookmark]: config.md#automatic-local-bookmark-creation
[detached]: https://git-scm.com/docs/git-checkout#_detached_head [detached]: https://git-scm.com/docs/git-checkout#_detached_head
[gh]: https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent [gh]: https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
[http-auth]: https://github.com/martinvonz/jj/issues/469 [http-auth]: https://github.com/jj-vcs/jj/issues/469
[tut]: tutorial.md#conflicts [tut]: tutorial.md#conflicts
[stacked]: https://jg.gg/2018/09/29/stacked-diffs-versus-pull-requests/ [stacked]: https://jg.gg/2018/09/29/stacked-diffs-versus-pull-requests/

View File

@ -13,13 +13,13 @@ Additional help is available using the `jj help` command if you have
You may want to jump to: You may want to jump to:
- Documentation for the [latest released version of `jj`](https://martinvonz.github.io/jj/latest). - Documentation for the [latest released version of `jj`](https://jj-vcs.github.io/jj/latest).
- Documentation for the [unreleased version of `jj`](https://martinvonz.github.io/jj/prerelease). This version of the docs corresponds to the `main` branch of the `jj` repo. - Documentation for the [unreleased version of `jj`](https://jj-vcs.github.io/jj/prerelease). This version of the docs corresponds to the `main` branch of the `jj` repo.
## Some useful links ## Some useful links
- [GitHub repo for `jj`](https://github.com/martinvonz/jj) - [GitHub repo for `jj`](https://github.com/jj-vcs/jj)
- Overview of `jj` in the repo's [README](https://github.com/martinvonz/jj?tab=readme-ov-file#readme) - Overview of `jj` in the repo's [README](https://github.com/jj-vcs/jj?tab=readme-ov-file#readme)
- [Installation and Setup](install-and-setup.md) - [Installation and Setup](install-and-setup.md)
- [Tutorial and Birds-Eye View](tutorial.md) - [Tutorial and Birds-Eye View](tutorial.md)
- [Working with GitHub](github.md) - [Working with GitHub](github.md)

View File

@ -5,7 +5,7 @@
### Download pre-built binaries for a release ### Download pre-built binaries for a release
There are [pre-built binaries](https://github.com/martinvonz/jj/releases/latest) There are [pre-built binaries](https://github.com/jj-vcs/jj/releases/latest)
of the last released version of `jj` for Windows, Mac, or Linux (the "musl" of the last released version of `jj` for Windows, Mac, or Linux (the "musl"
version should work on all distributions). version should work on all distributions).
@ -42,7 +42,7 @@ Now run either:
```shell ```shell
# To install the *prerelease* version from the main branch # To install the *prerelease* version from the main branch
cargo install --git https://github.com/martinvonz/jj.git --locked --bin jj jj-cli cargo install --git https://github.com/jj-vcs/jj.git --locked --bin jj jj-cli
``` ```
or: or:
@ -120,7 +120,7 @@ Now run either:
```shell ```shell
# To install the *prerelease* version from the main branch # To install the *prerelease* version from the main branch
cargo install --git https://github.com/martinvonz/jj.git \ cargo install --git https://github.com/jj-vcs/jj.git \
--features vendored-openssl --locked --bin jj jj-cli --features vendored-openssl --locked --bin jj jj-cli
``` ```
@ -149,7 +149,7 @@ Now run either:
```shell ```shell
# To install the *prerelease* version from the main branch # To install the *prerelease* version from the main branch
cargo install --git https://github.com/martinvonz/jj.git --locked --bin jj jj-cli cargo install --git https://github.com/jj-vcs/jj.git --locked --bin jj jj-cli
``` ```
or: or:
@ -192,7 +192,7 @@ Now run either:
```shell ```shell
# To install the *prerelease* version from the main branch # To install the *prerelease* version from the main branch
cargo install --git https://github.com/martinvonz/jj.git --locked --bin jj jj-cli --features vendored-openssl cargo install --git https://github.com/jj-vcs/jj.git --locked --bin jj jj-cli --features vendored-openssl
``` ```
or: or:
@ -228,7 +228,7 @@ them. Please let us know if you encounter any issues, so we can ensure a smooth
transition once we default to these new completions. Our initial experience transition once we default to these new completions. Our initial experience
is that these new completions work best with `fish`. If you have ideas about is that these new completions work best with `fish`. If you have ideas about
specific completions that could be added, please share them specific completions that could be added, please share them
[here](https://github.com/martinvonz/jj/issues/4763). [here](https://github.com/jj-vcs/jj/issues/4763).
### Bash ### Bash

View File

@ -439,7 +439,7 @@ For example:
The following aliases are built-in and used for certain operations. These functions The following aliases are built-in and used for certain operations. These functions
are defined as aliases in order to allow you to overwrite them as needed. are defined as aliases in order to allow you to overwrite them as needed.
See [revsets.toml](https://github.com/martinvonz/jj/blob/main/cli/src/config/revsets.toml) See [revsets.toml](https://github.com/jj-vcs/jj/blob/main/cli/src/config/revsets.toml)
for a comprehensive list. for a comprehensive list.
* `trunk()`: Resolves to the head commit for the trunk bookmark of the remote * `trunk()`: Resolves to the head commit for the trunk bookmark of the remote

View File

@ -86,6 +86,6 @@ future cloud-based server using the same model as [XetHub][xet-storage].
[api-design-doc]: https://docs.google.com/document/d/1rOKvutee5TVYpFhh_UDNZDxfUKyrJ8rjCNpFaNHOHwU/edit?usp=sharing&resourcekey=0-922ApyoAjuXN_uTKqmCqjg [api-design-doc]: https://docs.google.com/document/d/1rOKvutee5TVYpFhh_UDNZDxfUKyrJ8rjCNpFaNHOHwU/edit?usp=sharing&resourcekey=0-922ApyoAjuXN_uTKqmCqjg
[copy-design-doc]: design/copy-tracking.md [copy-design-doc]: design/copy-tracking.md
[gg]: https://github.com/gulbanana/gg [gg]: https://github.com/gulbanana/gg
[jj-run]: https://github.com/martinvonz/jj/issues/1869 [jj-run]: https://github.com/jj-vcs/jj/issues/1869
[submodules]: https://github.com/martinvonz/jj/issues/494 [submodules]: https://github.com/jj-vcs/jj/issues/494
[xet-storage]: https://web.archive.org/web/20240914200921/https://xethub.com/assets/docs/concepts/xet-storage [xet-storage]: https://web.archive.org/web/20240914200921/https://xethub.com/assets/docs/concepts/xet-storage

View File

@ -50,7 +50,7 @@ the user about the conflict.
Note that, for now, there are known bugs in this area. Most notably, with the Note that, for now, there are known bugs in this area. Most notably, with the
Git backend, [repository corruption is possible because the backend is not Git backend, [repository corruption is possible because the backend is not
entirely lock-free](https://github.com/martinvonz/jj/issues/2193). If you know entirely lock-free](https://github.com/jj-vcs/jj/issues/2193). If you know
about the bug, it is relatively easy to recover from. about the bug, it is relatively easy to recover from.
Moreover, such use of Jujutsu is not currently thoroughly tested, Moreover, such use of Jujutsu is not currently thoroughly tested,

View File

@ -62,4 +62,4 @@ state C. We then back out that change. Backing out ("reverting" in Git-speak) a
change means applying its reverse diff, so the result is `(B+C-A)+(A-(B+C-A))`, change means applying its reverse diff, so the result is `(B+C-A)+(A-(B+C-A))`,
which we can simplify to just `A` (i.e. no conflict). which we can simplify to just `A` (i.e. no conflict).
[merge-rs]: https://github.com/martinvonz/jj/blob/main/lib/src/merge.rs [merge-rs]: https://github.com/jj-vcs/jj/blob/main/lib/src/merge.rs

View File

@ -83,7 +83,7 @@ PS> jj workspace add --name wsl ~/my-repo
Then only use the `~/my-repo` workspace from Linux. Then only use the `~/my-repo` workspace from Linux.
[issue-2040]: https://github.com/martinvonz/jj/issues/2040 [issue-2040]: https://github.com/jj-vcs/jj/issues/2040
[array-op]: https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_arrays?view=powershell-7.4#the-array-sub-expression-operator [array-op]: https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_arrays?view=powershell-7.4#the-array-sub-expression-operator
## Symbolic link support ## Symbolic link support

View File

@ -52,7 +52,7 @@ resolutions.
With the `jj resolve` command, you can use an external merge tool to resolve With the `jj resolve` command, you can use an external merge tool to resolve
conflicts that have 2 sides and a base. There is not yet a good way of conflicts that have 2 sides and a base. There is not yet a good way of
resolving conflicts between directories, files, and symlinks resolving conflicts between directories, files, and symlinks
(https://github.com/martinvonz/jj/issues/19). You can use `jj restore` to choose (https://github.com/jj-vcs/jj/issues/19). You can use `jj restore` to choose
one side of the conflict, but there's no way to even see where the involved one side of the conflict, but there's no way to even see where the involved
parts came from. parts came from.

View File

@ -134,7 +134,7 @@
meta = { meta = {
description = "Git-compatible DVCS that is both simple and powerful"; description = "Git-compatible DVCS that is both simple and powerful";
homepage = "https://github.com/martinvonz/jj"; homepage = "https://github.com/jj-vcs/jj";
license = pkgs.lib.licenses.asl20; license = pkgs.lib.licenses.asl20;
mainProgram = "jj"; mainProgram = "jj";
}; };

View File

@ -464,7 +464,7 @@ impl<'a> RevWalkBuilder<'a> {
) -> RevWalkAncestors<'a> { ) -> RevWalkAncestors<'a> {
// We can also make it stop visiting based on the generation number. Maybe // We can also make it stop visiting based on the generation number. Maybe
// it will perform better for unbalanced branchy history. // it will perform better for unbalanced branchy history.
// https://github.com/martinvonz/jj/pull/1492#discussion_r1160678325 // https://github.com/jj-vcs/jj/pull/1492#discussion_r1160678325
let min_pos = root_positions let min_pos = root_positions
.into_iter() .into_iter()
.min() .min()

View File

@ -1696,7 +1696,7 @@ fn allow_push(
Ok(if actual_remote_location == destination_location { Ok(if actual_remote_location == destination_location {
// This is the situation of what we call "A - B + A = A" // This is the situation of what we call "A - B + A = A"
// conflicts, see also test_refs.rs and // conflicts, see also test_refs.rs and
// https://github.com/martinvonz/jj/blob/c9b44f382824301e6c0fdd6f4cbc52bb00c50995/lib/src/merge.rs#L92. // https://github.com/jj-vcs/jj/blob/c9b44f382824301e6c0fdd6f4cbc52bb00c50995/lib/src/merge.rs#L92.
PushAllowReason::UnexpectedNoop PushAllowReason::UnexpectedNoop
} else { } else {
// Due to our ref merge rules, this case should happen if an only // Due to our ref merge rules, this case should happen if an only

View File

@ -769,7 +769,7 @@ fn recreate_no_gc_refs(
// TODO: might be better to switch to a dummy merge, where new no-gc ref // TODO: might be better to switch to a dummy merge, where new no-gc ref
// will always have a unique name. Doing that with the current // will always have a unique name. Doing that with the current
// ref-per-head strategy would increase the number of the no-gc refs. // ref-per-head strategy would increase the number of the no-gc refs.
// https://github.com/martinvonz/jj/pull/2659#issuecomment-1837057782 // https://github.com/jj-vcs/jj/pull/2659#issuecomment-1837057782
let loose_ref_path = git_repo.path().join(git_ref.name.to_path()); let loose_ref_path = git_repo.path().join(git_ref.name.to_path());
if let Ok(metadata) = loose_ref_path.metadata() { if let Ok(metadata) = loose_ref_path.metadata() {
let mtime = metadata.modified().expect("unsupported platform?"); let mtime = metadata.modified().expect("unsupported platform?");
@ -1178,7 +1178,7 @@ impl Backend for GitBackend {
// TODO: Remove this hack and map to ObjectNotFound error if we're sure that // TODO: Remove this hack and map to ObjectNotFound error if we're sure that
// there are no reachable ancestor commits without extras metadata. Git commits // there are no reachable ancestor commits without extras metadata. Git commits
// imported by jj < 0.8.0 might not have extras (#924). // imported by jj < 0.8.0 might not have extras (#924).
// https://github.com/martinvonz/jj/issues/2343 // https://github.com/jj-vcs/jj/issues/2343
tracing::info!("unimported Git commit found"); tracing::info!("unimported Git commit found");
self.import_head_commits([id])?; self.import_head_commits([id])?;
let table = self.cached_extra_metadata_table()?; let table = self.cached_extra_metadata_table()?;
@ -1424,13 +1424,13 @@ fn write_tree_conflict(
.collect_vec(); .collect_vec();
let readme_id = repo let readme_id = repo
.write_blob( .write_blob(
r#"This commit was made by jj, https://github.com/martinvonz/jj. r#"This commit was made by jj, https://github.com/jj-vcs/jj.
The commit contains file conflicts, and therefore looks wrong when used with plain The commit contains file conflicts, and therefore looks wrong when used with plain
Git or other tools that are unfamiliar with jj. Git or other tools that are unfamiliar with jj.
The .jjconflict-* directories represent the different inputs to the conflict. The .jjconflict-* directories represent the different inputs to the conflict.
For details, see For details, see
https://martinvonz.github.io/jj/prerelease/git-compatibility/#format-mapping-details https://jj-vcs.github.io/jj/prerelease/git-compatibility/#format-mapping-details
If you see this file in your working copy, it probably means that you used a If you see this file in your working copy, it probably means that you used a
regular `git` command to check out a conflicted commit. Use `jj abandon` to regular `git` command to check out a conflicted commit. Use `jj abandon` to

View File

@ -914,7 +914,7 @@ static BUILTIN_FUNCTION_MAP: Lazy<HashMap<&'static str, RevsetFunction>> = Lazy:
expect_fileset_expression(diagnostics, files_arg, ctx.path_converter)? expect_fileset_expression(diagnostics, files_arg, ctx.path_converter)?
} else { } else {
// TODO: defaults to CLI path arguments? // TODO: defaults to CLI path arguments?
// https://github.com/martinvonz/jj/issues/2933#issuecomment-1925870731 // https://github.com/jj-vcs/jj/issues/2933#issuecomment-1925870731
FilesetExpression::all() FilesetExpression::all()
}; };
Ok(RevsetExpression::filter( Ok(RevsetExpression::filter(

View File

@ -146,7 +146,7 @@ impl UserSettings {
} }
// TODO: Reconsider UserSettings/RepoSettings abstraction. See // TODO: Reconsider UserSettings/RepoSettings abstraction. See
// https://github.com/martinvonz/jj/issues/616#issuecomment-1345170699 // https://github.com/jj-vcs/jj/issues/616#issuecomment-1345170699
pub fn with_repo(&self, _repo_path: &Path) -> RepoSettings { pub fn with_repo(&self, _repo_path: &Path) -> RepoSettings {
let config = self.config.clone(); let config = self.config.clone();
RepoSettings { _config: config } RepoSettings { _config: config }

View File

@ -101,7 +101,7 @@ pub enum WorkspaceLoadError {
/// ///
/// Represents the combination of a repo and working copy, i.e. what's typically /// Represents the combination of a repo and working copy, i.e. what's typically
/// the .jj/ directory and its parent. See /// the .jj/ directory and its parent. See
/// <https://github.com/martinvonz/jj/blob/main/docs/working-copy.md#workspaces> /// <https://github.com/jj-vcs/jj/blob/main/docs/working-copy.md#workspaces>
/// for more information. /// for more information.
pub struct Workspace { pub struct Workspace {
// Path to the workspace root (typically the parent of a .jj/ directory), which is where // Path to the workspace root (typically the parent of a .jj/ directory), which is where

View File

@ -3468,16 +3468,16 @@ fn test_parse_gitmodules() {
let result = git::parse_gitmodules( let result = git::parse_gitmodules(
&mut r#" &mut r#"
[submodule "wellformed"] [submodule "wellformed"]
url = https://github.com/martinvonz/jj url = https://github.com/jj-vcs/jj
path = mod path = mod
update = checkout # Extraneous config update = checkout # Extraneous config
[submodule "uppercase"] [submodule "uppercase"]
URL = https://github.com/martinvonz/jj URL = https://github.com/jj-vcs/jj
PATH = mod2 PATH = mod2
[submodule "repeated_keys"] [submodule "repeated_keys"]
url = https://github.com/martinvonz/jj url = https://github.com/jj-vcs/jj
path = mod3 path = mod3
url = https://github.com/chooglen/jj url = https://github.com/chooglen/jj
path = mod4 path = mod4
@ -3498,17 +3498,17 @@ ignoreThisSection = foo
let expected = btreemap! { let expected = btreemap! {
"wellformed".to_string() => SubmoduleConfig { "wellformed".to_string() => SubmoduleConfig {
name: "wellformed".to_string(), name: "wellformed".to_string(),
url: "https://github.com/martinvonz/jj".to_string(), url: "https://github.com/jj-vcs/jj".to_string(),
path: "mod".to_string(), path: "mod".to_string(),
}, },
"uppercase".to_string() => SubmoduleConfig { "uppercase".to_string() => SubmoduleConfig {
name: "uppercase".to_string(), name: "uppercase".to_string(),
url: "https://github.com/martinvonz/jj".to_string(), url: "https://github.com/jj-vcs/jj".to_string(),
path: "mod2".to_string(), path: "mod2".to_string(),
}, },
"repeated_keys".to_string() => SubmoduleConfig { "repeated_keys".to_string() => SubmoduleConfig {
name: "repeated_keys".to_string(), name: "repeated_keys".to_string(),
url: "https://github.com/martinvonz/jj".to_string(), url: "https://github.com/jj-vcs/jj".to_string(),
path: "mod3".to_string(), path: "mod3".to_string(),
}, },
}; };

View File

@ -2,7 +2,7 @@ site_name: Jujutsu docs
site_dir: 'rendered-docs' site_dir: 'rendered-docs'
# Not having this (or viewing the site locally, or from any place other than the # Not having this (or viewing the site locally, or from any place other than the
# site_url) leads to version switching failing to preserve the current path. # site_url) leads to version switching failing to preserve the current path.
site_url: !ENV [SITE_URL_FOR_MKDOCS, 'https://martinvonz.github.io/jj/'] site_url: !ENV [SITE_URL_FOR_MKDOCS, 'https://jj-vcs.github.io/jj/']
theme: theme:
name: 'material' name: 'material'
language: 'en' language: 'en'