mirror of
https://github.com/martinvonz/jj.git
synced 2025-05-05 15:32:49 +00:00
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:
parent
867e204d91
commit
b836e0ae95
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@ -10,7 +10,7 @@ assignees: ''
|
||||
## Description
|
||||
|
||||
<!-- 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. -->
|
||||
|
||||
|
||||
|
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -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
|
||||
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
|
||||
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.
|
||||
-->
|
||||
|
||||
|
2
.github/scripts/docs-build-deploy
vendored
2
.github/scripts/docs-build-deploy
vendored
@ -2,7 +2,7 @@
|
||||
# Set up a virtual environment with the required tools, build, and deploy the docs.
|
||||
#
|
||||
# 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
|
||||
# `uv run -- mike deploy --help` for options. Note that `mike deploy`
|
||||
# creates a commit directly on the `gh-pages` branch.
|
||||
|
2
.github/workflows/docs.yml
vendored
2
.github/workflows/docs.yml
vendored
@ -30,6 +30,6 @@ jobs:
|
||||
run: |
|
||||
git config user.name 'jj-docs[bot]'
|
||||
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`"
|
||||
run: git diff --stat gh-pages^ gh-pages || echo "(No diffs)"
|
||||
|
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@ -141,6 +141,6 @@ jobs:
|
||||
git config user.email 'jj-docs[bot]@users.noreply.github.io'
|
||||
# Using the 'latest' tag below makes the website default
|
||||
# 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`"
|
||||
run: git diff --stat gh-pages^ gh-pages || echo "(No diffs)"
|
||||
|
134
CHANGELOG.md
134
CHANGELOG.md
@ -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.
|
||||
|
||||
* 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.
|
||||
[#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.
|
||||
|
||||
@ -73,11 +73,11 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
### 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`).
|
||||
|
||||
@ -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
|
||||
`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
|
||||
|
||||
@ -112,7 +112,7 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
options, like `jj rebase -r` and `jj rebase -s`.
|
||||
|
||||
* 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
|
||||
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
|
||||
`..`, `.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
|
||||
|
||||
@ -276,7 +276,7 @@ Thanks to the people who made this release happen!
|
||||
### Fixed bugs
|
||||
|
||||
* 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
|
||||
[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
|
||||
|
||||
* 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.
|
||||
|
||||
* 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
|
||||
no way to list untracked files yet. Use `git status` in a colocated workspace
|
||||
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
|
||||
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.
|
||||
|
||||
* 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.
|
||||
|
||||
@ -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
|
||||
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
|
||||
|
||||
@ -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
|
||||
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
|
||||
|
||||
@ -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.
|
||||
|
||||
* 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.
|
||||
|
||||
@ -731,7 +731,7 @@ Thanks to the people who made this release happen!
|
||||
|
||||
* Author timestamp is now reset when rewriting discardable commits (empty
|
||||
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`.
|
||||
|
||||
@ -741,11 +741,11 @@ Thanks to the people who made this release happen!
|
||||
|
||||
* `jj git push` now ignores immutable commits when checking whether a
|
||||
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
|
||||
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
|
||||
|
||||
@ -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
|
||||
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
|
||||
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
|
||||
formatters (or similar tools) on changed files. The configuration schema and
|
||||
flags are minimal for now, with a number of improvements planned (for example,
|
||||
[#3800](https://github.com/martinvonz/jj/issues/3800) and
|
||||
[#3801](https://github.com/martinvonz/jj/issues/3801)).
|
||||
[#3800](https://github.com/jj-vcs/jj/issues/3800) and
|
||||
[#3801](https://github.com/jj-vcs/jj/issues/3801)).
|
||||
|
||||
* `jj new`'s `--insert-before` and `--insert-after` options can now be used
|
||||
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
|
||||
(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
|
||||
|
||||
@ -1119,7 +1119,7 @@ No code changes (fixing Rust `Cargo.toml` stuff).
|
||||
|
||||
* 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
|
||||
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
|
||||
`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
|
||||
synthetic nodes in the graph where some revisions were elided
|
||||
([#1252](https://github.com/martinvonz/jj/issues/1252),
|
||||
[#2971](https://github.com/martinvonz/jj/issues/2971)). This may become the
|
||||
([#1252](https://github.com/jj-vcs/jj/issues/1252),
|
||||
[#2971](https://github.com/jj-vcs/jj/issues/2971)). This may become the
|
||||
default depending on feedback.
|
||||
|
||||
* 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
|
||||
`--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`
|
||||
|
||||
@ -1212,14 +1212,14 @@ No code changes (fixing Rust `Cargo.toml` stuff).
|
||||
When symlink support is unavailable, they will be materialized as regular
|
||||
files in the
|
||||
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
|
||||
disabled entirely.
|
||||
|
||||
* Auto-rebase now preserves the shape of history even for merge commits where
|
||||
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
|
||||
|
||||
@ -1344,11 +1344,11 @@ Thanks to the people who made this release happen!
|
||||
### Fixed bugs
|
||||
|
||||
* 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
|
||||
abandoned by Git.
|
||||
[#2876](https://github.com/martinvonz/jj/issues/2876)
|
||||
[#2876](https://github.com/jj-vcs/jj/issues/2876)
|
||||
|
||||
### 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
|
||||
current working directory.
|
||||
[#2414](https://github.com/martinvonz/jj/issues/2414)
|
||||
[#2414](https://github.com/jj-vcs/jj/issues/2414)
|
||||
|
||||
### 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
|
||||
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
|
||||
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
|
||||
with the actual file content.
|
||||
[#2654](https://github.com/martinvonz/jj/issues/2654)
|
||||
[#2654](https://github.com/jj-vcs/jj/issues/2654)
|
||||
|
||||
### 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
|
||||
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
|
||||
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
|
||||
([#2468](https://github.com/martinvonz/jj/pull/2468)).
|
||||
([#2468](https://github.com/jj-vcs/jj/pull/2468)).
|
||||
|
||||
### 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
|
||||
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
|
||||
remote-tracking branch. Use `main@origin` instead.
|
||||
@ -1702,7 +1702,7 @@ Thanks to the people who made this release happen!
|
||||
directories.
|
||||
|
||||
* `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
|
||||
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
|
||||
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
|
||||
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
|
||||
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.
|
||||
|
||||
* `jj diff --stat` has been implemented. It shows a histogram of the changes,
|
||||
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
|
||||
instead of just the default remote
|
||||
@ -1768,20 +1768,20 @@ Thanks to the people who made this release happen!
|
||||
### Fixed bugs
|
||||
|
||||
* 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
|
||||
any repository.
|
||||
|
||||
* 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
|
||||
to be password-less.
|
||||
|
||||
* Git repository managed by the repo tool can now be detected as a "colocated"
|
||||
repository.
|
||||
[#2011](https://github.com/martinvonz/jj/issues/2011)
|
||||
[#2011](https://github.com/jj-vcs/jj/issues/2011)
|
||||
|
||||
### Contributors
|
||||
|
||||
@ -1875,7 +1875,7 @@ Thanks to the people who made this release happen!
|
||||
`jj config set --repo user.email "somebody@example.com"`
|
||||
|
||||
* 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
|
||||
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
|
||||
|
||||
* 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
|
||||
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
|
||||
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
|
||||
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
|
||||
the remote.
|
||||
[#1714](https://github.com/martinvonz/jj/pull/1714)
|
||||
[#1771](https://github.com/martinvonz/jj/pull/1771)
|
||||
[#1714](https://github.com/jj-vcs/jj/pull/1714)
|
||||
[#1771](https://github.com/jj-vcs/jj/pull/1771)
|
||||
|
||||
* 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
|
||||
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.
|
||||
[#697](https://github.com/martinvonz/jj/issues/697),
|
||||
[#1608](https://github.com/martinvonz/jj/issues/1608)
|
||||
[#697](https://github.com/jj-vcs/jj/issues/697),
|
||||
[#1608](https://github.com/jj-vcs/jj/issues/1608)
|
||||
|
||||
* 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
|
||||
@ -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
|
||||
and duplicate commit no longer crashes. The fix should also resolve any
|
||||
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.
|
||||
|
||||
@ -2263,7 +2263,7 @@ No changes, only changed to a released version of the `thrift` crate dependency.
|
||||
### New features
|
||||
|
||||
* 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
|
||||
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
|
||||
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
|
||||
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 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.
|
||||
This typically occurred when running in a working copy colocated with Git
|
||||
(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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
set of commits can be overridden by setting `ui.default-revset`. Use
|
||||
`jj log -r 'all()'` for the old behavior. Read more about revsets
|
||||
[here](https://github.com/martinvonz/jj/blob/main/docs/revsets.md).
|
||||
[#250](https://github.com/martinvonz/jj/issues/250)
|
||||
[here](https://github.com/jj-vcs/jj/blob/main/docs/revsets.md).
|
||||
[#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
|
||||
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 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
|
||||
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
|
||||
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
|
||||
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
|
||||
operation rebased A as A', then B would be automatically rebased on top of
|
||||
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.
|
||||
|
||||
@ -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
|
||||
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
|
||||
|
||||
|
@ -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
|
||||
edition = "2021"
|
||||
readme = "README.md"
|
||||
homepage = "https://github.com/martinvonz/jj"
|
||||
repository = "https://github.com/martinvonz/jj"
|
||||
documentation = "https://martinvonz.github.io/jj/"
|
||||
homepage = "https://github.com/jj-vcs/jj"
|
||||
repository = "https://github.com/jj-vcs/jj"
|
||||
documentation = "https://jj-vcs.github.io/jj/"
|
||||
categories = ["version-control", "development-tools"]
|
||||
keywords = ["VCS", "DVCS", "SCM", "Git", "Mercurial"]
|
||||
|
||||
|
46
README.md
46
README.md
@ -15,10 +15,10 @@
|
||||
**[Development Roadmap] • **
|
||||
**[Contributing](#contributing)**
|
||||
|
||||
[Homepage]: https://martinvonz.github.io/jj
|
||||
[Installation]: https://martinvonz.github.io/jj/latest/install-and-setup
|
||||
[Getting Started]: https://martinvonz.github.io/jj/latest/tutorial
|
||||
[Development Roadmap]: https://martinvonz.github.io/jj/latest/roadmap
|
||||
[Homepage]: https://jj-vcs.github.io/jj
|
||||
[Installation]: https://jj-vcs.github.io/jj/latest/install-and-setup
|
||||
[Getting Started]: https://jj-vcs.github.io/jj/latest/tutorial
|
||||
[Development Roadmap]: https://jj-vcs.github.io/jj/latest/roadmap
|
||||
|
||||
</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
|
||||
conflict resolution can be performed and propagated automatically.
|
||||
|
||||
[perf]: https://github.com/martinvonz/jj/discussions/49
|
||||
[revset]: https://martinvonz.github.io/jj/latest/revsets/
|
||||
[no-index]: https://martinvonz.github.io/jj/latest/git-comparison/#the-index
|
||||
[conflicts]: https://martinvonz.github.io/jj/latest/conflicts/
|
||||
[perf]: https://github.com/jj-vcs/jj/discussions/49
|
||||
[revset]: https://jj-vcs.github.io/jj/latest/revsets/
|
||||
[no-index]: https://jj-vcs.github.io/jj/latest/git-comparison/#the-index
|
||||
[conflicts]: https://jj-vcs.github.io/jj/latest/conflicts/
|
||||
|
||||
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
|
||||
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
|
||||
[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
|
||||
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
|
||||
questions, or want to talk about future plans, please join us on Discord
|
||||
[](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
|
||||
Chat](https://web.libera.chat/?channel=#jujutsu). The developers monitor all of
|
||||
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/
|
||||
[merge-talk]: https://www.youtube.com/watch?v=bx_LGilOuE4
|
||||
[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
|
||||
|
||||
@ -176,23 +176,23 @@ The wiki also contains a more extensive list of [media references][wiki-media].
|
||||
> it unusable for your particular use.
|
||||
|
||||
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`.
|
||||
|
||||
The best way to get started is probably to go through [the
|
||||
tutorial](https://martinvonz.github.io/jj/latest/tutorial). Also see the [Git
|
||||
comparison](https://martinvonz.github.io/jj/latest/git-comparison), which
|
||||
tutorial](https://jj-vcs.github.io/jj/latest/tutorial). Also see the [Git
|
||||
comparison](https://jj-vcs.github.io/jj/latest/git-comparison), which
|
||||
includes a table of `jj` vs. `git` commands.
|
||||
|
||||
As you become more familiar with Jujutsu, the following resources may be helpful:
|
||||
|
||||
- The [FAQ](https://martinvonz.github.io/jj/latest/FAQ).
|
||||
- The [Glossary](https://martinvonz.github.io/jj/latest/glossary).
|
||||
- The [FAQ](https://jj-vcs.github.io/jj/latest/FAQ).
|
||||
- The [Glossary](https://jj-vcs.github.io/jj/latest/glossary).
|
||||
- The `jj help` command (e.g. `jj help rebase`).
|
||||
|
||||
If you are using a **prerelease** version of `jj`, you would want to consult
|
||||
[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
|
||||
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
|
||||
[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
|
||||
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" />
|
||||
|
||||
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.
|
||||
|
||||
### The working copy is automatically committed
|
||||
@ -263,7 +263,7 @@ necessarily have to be the most recent operation).
|
||||
### Conflicts can be recorded in commits
|
||||
|
||||
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
|
||||
operation will succeed. You can then resolve the conflicts later. One
|
||||
consequence of this design is that there's no need to continue interrupted
|
||||
@ -316,7 +316,7 @@ scripts if requested.
|
||||
## Related work
|
||||
|
||||
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
|
||||
|
||||
@ -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.
|
||||
|
||||
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:
|
||||
|
||||
- Bug reports are very welcome!
|
||||
|
@ -1786,7 +1786,7 @@ to the current parents may contain changes from multiple commits.
|
||||
short_operation_hash(&old_op_id)
|
||||
),
|
||||
"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.",
|
||||
),
|
||||
));
|
||||
@ -1806,7 +1806,7 @@ See https://martinvonz.github.io/jj/latest/working-copy/#stale-working-copy \
|
||||
user_error_with_hint(
|
||||
"Could not read working copy's operation.",
|
||||
"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.",
|
||||
),
|
||||
));
|
||||
@ -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
|
||||
// `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.
|
||||
for term in itertools::chain(conflict.removes(), conflict.adds()).flatten() {
|
||||
seen_objects.insert(
|
||||
@ -2830,7 +2830,7 @@ impl LogContentFormat {
|
||||
|
||||
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
|
||||
// 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 editor: CommandNameAndArgs = settings.get("ui.editor")?;
|
||||
let mut cmd = editor.to_command();
|
||||
@ -3003,7 +3003,7 @@ impl fmt::Display for RemoteBookmarkNamePattern {
|
||||
|
||||
/// 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)]
|
||||
#[derive(clap::Parser, Clone, Debug)]
|
||||
#[command(name = "jj")]
|
||||
|
@ -638,8 +638,8 @@ fn file_pattern_parse_error_hint(err: &FilePatternParseError) -> Option<String>
|
||||
fn fileset_parse_error_hint(err: &FilesetParseError) -> Option<String> {
|
||||
match err.kind() {
|
||||
FilesetParseErrorKind::SyntaxError => Some(String::from(
|
||||
"See https://martinvonz.github.io/jj/latest/filesets/ for filesets syntax, or for how \
|
||||
to match file paths.",
|
||||
"See https://jj-vcs.github.io/jj/latest/filesets/ for filesets syntax, or for how to \
|
||||
match file paths.",
|
||||
)),
|
||||
FilesetParseErrorKind::NoSuchFunction {
|
||||
name: _,
|
||||
@ -760,7 +760,7 @@ fn try_handle_command_result(
|
||||
print_error(ui, "Config error: ", err, hints)?;
|
||||
writeln!(
|
||||
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))
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ pub struct BookmarkDeleteArgs {
|
||||
///
|
||||
/// 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.
|
||||
/// https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.
|
||||
#[arg(
|
||||
required = true,
|
||||
value_parser = StringPattern::parse,
|
||||
|
@ -37,7 +37,7 @@ pub struct BookmarkForgetArgs {
|
||||
///
|
||||
/// 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.
|
||||
/// https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.
|
||||
#[arg(
|
||||
required = true,
|
||||
value_parser = StringPattern::parse,
|
||||
|
@ -37,7 +37,7 @@ use crate::ui::Ui;
|
||||
/// "+".
|
||||
///
|
||||
/// 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)]
|
||||
pub struct BookmarkListArgs {
|
||||
/// 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:`
|
||||
/// 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(
|
||||
long = "remote",
|
||||
value_name = "REMOTE",
|
||||
@ -76,7 +76,7 @@ pub struct BookmarkListArgs {
|
||||
///
|
||||
/// 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.
|
||||
/// https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.
|
||||
#[arg(value_parser = StringPattern::parse, add = ArgValueCandidates::new(complete::bookmarks))]
|
||||
names: Option<Vec<StringPattern>>,
|
||||
|
||||
@ -91,7 +91,7 @@ pub struct BookmarkListArgs {
|
||||
///
|
||||
/// 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')]
|
||||
template: Option<String>,
|
||||
}
|
||||
|
@ -62,7 +62,7 @@ use crate::ui::Ui;
|
||||
/// Manage bookmarks [default alias: b]
|
||||
///
|
||||
/// 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)]
|
||||
pub enum BookmarkCommand {
|
||||
#[command(visible_alias("c"))]
|
||||
|
@ -73,7 +73,7 @@ pub struct BookmarkMoveArgs {
|
||||
///
|
||||
/// 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.
|
||||
/// https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.
|
||||
#[arg(
|
||||
group = "source",
|
||||
value_parser = StringPattern::parse,
|
||||
|
@ -37,7 +37,7 @@ pub struct BookmarkTrackArgs {
|
||||
///
|
||||
/// 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.
|
||||
/// https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.
|
||||
///
|
||||
/// Examples: bookmark@remote, glob:main@*, glob:jjfan-*@upstream
|
||||
#[arg(
|
||||
|
@ -33,7 +33,7 @@ pub struct BookmarkUntrackArgs {
|
||||
///
|
||||
/// 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.
|
||||
/// https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.
|
||||
///
|
||||
/// Examples: bookmark@remote, glob:main@*, glob:jjfan-*@upstream
|
||||
#[arg(
|
||||
|
@ -52,7 +52,7 @@ pub struct ConfigListArgs {
|
||||
/// * `value: String`: Serialized value in TOML syntax.
|
||||
/// * `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)]
|
||||
template: Option<String>,
|
||||
}
|
||||
|
@ -119,7 +119,7 @@ impl ConfigLevelArgs {
|
||||
/// environment variables.
|
||||
///
|
||||
/// 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)]
|
||||
pub(crate) enum ConfigCommand {
|
||||
#[command(visible_alias("e"))]
|
||||
|
@ -36,7 +36,7 @@ use crate::ui::Ui;
|
||||
/// the "from" revision to the "to" revision.
|
||||
///
|
||||
/// [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
|
||||
/// close the editor, the revision specified with `-r` or `--to` will be
|
||||
|
@ -29,7 +29,7 @@ use crate::ui::Ui;
|
||||
/// 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
|
||||
#[derive(clap::Args, Clone, Debug)]
|
||||
pub(crate) struct EditArgs {
|
||||
/// The commit to edit
|
||||
|
@ -61,7 +61,7 @@ pub(crate) struct EvologArgs {
|
||||
no_graph: bool,
|
||||
/// 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')]
|
||||
template: Option<String>,
|
||||
/// Show patch compared to the previous version of this change
|
||||
|
@ -52,7 +52,7 @@ use crate::ui::Ui;
|
||||
/// 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/.
|
||||
/// https://jj-vcs.github.io/jj/latest/git-comparison/.
|
||||
#[derive(Subcommand, Clone, Debug)]
|
||||
pub enum GitCommand {
|
||||
Clone(GitCloneArgs),
|
||||
|
@ -68,10 +68,10 @@ use crate::ui::Ui;
|
||||
/// conflicts].
|
||||
///
|
||||
/// [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]:
|
||||
/// https://martinvonz.github.io/jj/latest/bookmarks/#conflicts
|
||||
/// https://jj-vcs.github.io/jj/latest/bookmarks/#conflicts
|
||||
|
||||
#[derive(clap::Args, Clone, Debug)]
|
||||
#[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
|
||||
/// 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(
|
||||
long, short,
|
||||
alias = "branch",
|
||||
@ -105,7 +105,7 @@ pub struct GitPushArgs {
|
||||
///
|
||||
/// 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
|
||||
/// https://jj-vcs.github.io/jj/latest/bookmarks#remotes-and-tracked-bookmarks
|
||||
#[arg(long)]
|
||||
tracked: bool,
|
||||
/// Push all deleted bookmarks
|
||||
|
@ -93,7 +93,7 @@ struct Keyword {
|
||||
//
|
||||
// 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] = &[
|
||||
Keyword {
|
||||
name: "bookmarks",
|
||||
|
@ -47,16 +47,16 @@ use crate::ui::Ui;
|
||||
/// 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
|
||||
/// 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)".
|
||||
///
|
||||
/// 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
|
||||
/// 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)]
|
||||
pub(crate) struct LogArgs {
|
||||
/// Which revisions to show
|
||||
@ -95,7 +95,7 @@ pub(crate) struct LogArgs {
|
||||
/// 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/.
|
||||
/// see https://jj-vcs.github.io/jj/latest/templates/.
|
||||
///
|
||||
/// If not specified, this defaults to the `templates.log` setting.
|
||||
#[arg(long, short = 'T')]
|
||||
|
@ -48,7 +48,7 @@ use crate::ui::Ui;
|
||||
/// working copy and the `main` bookmark as parents.
|
||||
///
|
||||
/// 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)]
|
||||
pub(crate) struct NewArgs {
|
||||
/// Parent(s) of the new change
|
||||
|
@ -62,7 +62,7 @@ pub struct OperationLogArgs {
|
||||
no_graph: bool,
|
||||
/// 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')]
|
||||
template: Option<String>,
|
||||
/// Show changes to the repository at each operation
|
||||
|
@ -40,7 +40,7 @@ use crate::ui::Ui;
|
||||
/// Commands for working with the operation log
|
||||
///
|
||||
/// 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)]
|
||||
pub enum OperationCommand {
|
||||
Abandon(OperationAbandonArgs),
|
||||
|
@ -34,7 +34,7 @@ pub(crate) struct ShowArgs {
|
||||
unused_revision: bool,
|
||||
/// 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')]
|
||||
template: Option<String>,
|
||||
#[command(flatten)]
|
||||
|
@ -36,7 +36,7 @@ use crate::ui::Ui;
|
||||
/// revision. The remaining changes will be put in a new revision on top.
|
||||
///
|
||||
/// [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
|
||||
/// change description for each commit. If the change did not have a
|
||||
|
@ -32,7 +32,7 @@ use crate::ui::Ui;
|
||||
///
|
||||
/// * 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/)
|
||||
/// * Conflicted bookmarks (see https://jj-vcs.github.io/jj/latest/bookmarks/)
|
||||
#[derive(clap::Args, Clone, Debug)]
|
||||
#[command(visible_alias = "st")]
|
||||
pub(crate) struct StatusArgs {
|
||||
|
@ -34,14 +34,14 @@ pub struct TagListArgs {
|
||||
///
|
||||
/// 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.
|
||||
/// https://jj-vcs.github.io/jj/latest/revsets/#string-patterns.
|
||||
#[arg(value_parser = StringPattern::parse)]
|
||||
pub names: Vec<StringPattern>,
|
||||
/// Render each tag using the given template
|
||||
///
|
||||
/// 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')]
|
||||
template: Option<String>,
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ use crate::ui::Ui;
|
||||
/// Update a workspace that has become stale
|
||||
///
|
||||
/// 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)]
|
||||
pub struct WorkspaceUpdateStaleArgs {}
|
||||
|
||||
|
@ -831,7 +831,7 @@ fn builtin_commit_methods<'repo>() -> CommitTemplateBuildMethodFnMap<'repo, Comm
|
||||
expect_fileset_literal(diagnostics, node, language.path_converter)?
|
||||
} else {
|
||||
// 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()
|
||||
};
|
||||
let repo = language.repo;
|
||||
|
@ -2,7 +2,7 @@
|
||||
"$schema": "http://json-schema.org/draft-07/schema",
|
||||
"title": "Jujutsu config",
|
||||
"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": {
|
||||
"user": {
|
||||
"type": "object",
|
||||
@ -137,7 +137,7 @@
|
||||
"description": "Options for rendering revision graphs from jj log etc",
|
||||
"properties": {
|
||||
"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": [
|
||||
"curved",
|
||||
"square",
|
||||
@ -330,7 +330,7 @@
|
||||
"properties": {
|
||||
"auto-local-bookmark": {
|
||||
"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
|
||||
},
|
||||
"abandon-unreachable-commits": {
|
||||
@ -405,12 +405,12 @@
|
||||
"items": {
|
||||
"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": []
|
||||
},
|
||||
"merge-tool-edits-conflict-markers": {
|
||||
"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
|
||||
},
|
||||
"conflict-marker-style": {
|
||||
@ -490,7 +490,7 @@
|
||||
},
|
||||
"auto-update-stale": {
|
||||
"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"
|
||||
},
|
||||
"max-new-file-size": {
|
||||
|
@ -376,7 +376,7 @@ fn config_files_for(
|
||||
/// Sources from the lowest precedence:
|
||||
/// 1. Default
|
||||
/// 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`
|
||||
/// 5. TODO: Workspace config `.jj/config.toml`
|
||||
/// 6. Override environment variables
|
||||
|
@ -53,7 +53,7 @@
|
||||
"working_copy commit_id" = "bright blue"
|
||||
"working_copy change_id" = "bright magenta"
|
||||
# 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 committer" = "yellow"
|
||||
"working_copy timestamp" = "bright cyan"
|
||||
|
@ -183,7 +183,7 @@ impl UiOutput {
|
||||
|
||||
Possible workarounds:
|
||||
- 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 `winpty jj ...`; `winpty` comes with Git Bash or Cygwin."#
|
||||
}
|
||||
|
@ -111,7 +111,7 @@ This document contains the help content for the `jj` command-line program.
|
||||
|
||||
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]`
|
||||
|
||||
@ -272,7 +272,7 @@ Apply the reverse of a revision on top of another revision
|
||||
|
||||
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>`
|
||||
|
||||
@ -316,7 +316,7 @@ Delete an existing bookmark and propagate the deletion to remotes on the next pu
|
||||
|
||||
* `<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
|
||||
|
||||
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 "+".
|
||||
|
||||
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]...`
|
||||
|
||||
@ -350,7 +350,7 @@ For information about bookmarks, see https://martinvonz.github.io/jj/latest/book
|
||||
|
||||
* `<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:**
|
||||
|
||||
@ -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.)
|
||||
|
||||
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
|
||||
* `-c`, `--conflicted` — Show conflicted bookmarks only
|
||||
* `-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.
|
||||
|
||||
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
|
||||
|
||||
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:**
|
||||
|
||||
@ -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
|
||||
|
||||
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
|
||||
|
||||
@ -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
|
||||
|
||||
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
|
||||
|
||||
@ -505,7 +505,7 @@ Manage config options
|
||||
|
||||
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>`
|
||||
|
||||
@ -579,7 +579,7 @@ List variables set in config file, along with their values
|
||||
* `value: String`: Serialized value in TOML syntax.
|
||||
* `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.
|
||||
|
||||
[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.
|
||||
|
||||
@ -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`.
|
||||
|
||||
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>`
|
||||
|
||||
@ -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
|
||||
* `-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
|
||||
|
||||
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
|
||||
|
||||
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>`
|
||||
|
||||
@ -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].
|
||||
|
||||
[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]`
|
||||
|
||||
@ -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.
|
||||
* `-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)
|
||||
* `--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
|
||||
|
||||
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
|
||||
|
||||
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)".
|
||||
|
||||
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]...`
|
||||
|
||||
@ -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.
|
||||
|
||||
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.
|
||||
* `-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.
|
||||
|
||||
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]...`
|
||||
|
||||
@ -1481,7 +1481,7 @@ B => @
|
||||
|
||||
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>`
|
||||
|
||||
@ -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
|
||||
* `-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
|
||||
* `-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
|
||||
|
||||
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
|
||||
* `--stat` — Show a histogram of the changes
|
||||
* `--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.
|
||||
|
||||
[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.
|
||||
|
||||
@ -2125,7 +2125,7 @@ Show high-level repo status
|
||||
|
||||
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]...`
|
||||
|
||||
@ -2157,7 +2157,7 @@ List tags
|
||||
|
||||
* `<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:**
|
||||
|
||||
@ -2165,7 +2165,7 @@ List tags
|
||||
|
||||
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
|
||||
|
||||
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`
|
||||
|
||||
|
@ -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`
|
||||
#[test]
|
||||
fn test_bug_2600() {
|
||||
|
@ -156,24 +156,24 @@ fn test_absorb_replace_single_line_hunk() {
|
||||
test_env.jj_cmd_ok(&repo_path, &["new"]);
|
||||
std::fs::write(repo_path.join("file1"), "2a\n1A\n2b\n").unwrap();
|
||||
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:
|
||||
qpvuntsm 9661b868 (conflict) 1
|
||||
qpvuntsm 7e885236 (conflict) 1
|
||||
Rebased 2 descendant commits.
|
||||
Working copy now at: zsuskuln f10b6e4e (empty) (no description set)
|
||||
Parent commit : kkmpptxz bed2d032 2
|
||||
Working copy now at: zsuskuln e9c3b95b (empty) (no description set)
|
||||
Parent commit : kkmpptxz 7c36845c 2
|
||||
New conflicts appeared in these commits:
|
||||
qpvuntsm 9661b868 (conflict) 1
|
||||
qpvuntsm 7e885236 (conflict) 1
|
||||
To resolve the conflicts, start by updating to it:
|
||||
jj new qpvuntsm
|
||||
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`.
|
||||
Then run `jj squash` to move the resolution into the conflicted commit.
|
||||
");
|
||||
"###);
|
||||
|
||||
insta::assert_snapshot!(get_diffs(&test_env, &repo_path, "mutable()"), @r"
|
||||
@ zsuskuln f10b6e4e (empty) (no description set)
|
||||
○ kkmpptxz bed2d032 2
|
||||
insta::assert_snapshot!(get_diffs(&test_env, &repo_path, "mutable()"), @r###"
|
||||
@ zsuskuln e9c3b95b (empty) (no description set)
|
||||
○ kkmpptxz 7c36845c 2
|
||||
│ diff --git a/file1 b/file1
|
||||
│ index 0000000000..2f87e8e465 100644
|
||||
│ --- a/file1
|
||||
@ -189,7 +189,7 @@ fn test_absorb_replace_single_line_hunk() {
|
||||
│ 1A
|
||||
│ 2b
|
||||
│ ->>>>>>> Conflict 1 of 1 ends
|
||||
× qpvuntsm 9661b868 (conflict) 1
|
||||
× qpvuntsm 7e885236 (conflict) 1
|
||||
│ diff --git a/file1 b/file1
|
||||
~ new file mode 100644
|
||||
index 0000000000..0000000000
|
||||
@ -206,7 +206,7 @@ fn test_absorb_replace_single_line_hunk() {
|
||||
+1A
|
||||
+2b
|
||||
+>>>>>>> Conflict 1 of 1 ends
|
||||
");
|
||||
"###);
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -314,21 +314,21 @@ fn test_absorb_conflict() {
|
||||
test_env.jj_cmd_ok(&repo_path, &["new", "root()"]);
|
||||
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)"]);
|
||||
insta::assert_snapshot!(stderr, @r"
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
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
|
||||
Added 0 files, modified 1 files, removed 0 files
|
||||
There are unresolved conflicts at these paths:
|
||||
file1 2-sided conflict
|
||||
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:
|
||||
jj new kkmpptxz
|
||||
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`.
|
||||
Then run `jj squash` to move the resolution into the conflicted commit.
|
||||
");
|
||||
"###);
|
||||
|
||||
let conflict_content =
|
||||
String::from_utf8(std::fs::read(repo_path.join("file1")).unwrap()).unwrap();
|
||||
|
@ -126,7 +126,7 @@ fn test_alias_calls_help() {
|
||||
insta::assert_snapshot!(stdout.lines().take(5).join("\n"), @r###"
|
||||
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>
|
||||
"###);
|
||||
@ -239,7 +239,7 @@ fn test_alias_invalid_definition() {
|
||||
Caused by: invalid type: integer `5`, expected a sequence
|
||||
|
||||
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"]);
|
||||
insta::assert_snapshot!(stderr, @r"
|
||||
@ -247,7 +247,7 @@ fn test_alias_invalid_definition() {
|
||||
Caused by: invalid type: integer `0`, expected a string
|
||||
|
||||
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/.
|
||||
");
|
||||
}
|
||||
|
||||
|
@ -807,7 +807,7 @@ fn test_log_immutable() {
|
||||
| ^--------^
|
||||
|
|
||||
= 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'");
|
||||
|
@ -652,7 +652,7 @@ fn test_files() {
|
||||
);
|
||||
|
||||
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
|
||||
│ working_copy
|
||||
│ A f_added_2
|
||||
@ -666,7 +666,7 @@ fn test_files() {
|
||||
│ A f_dir/dir_file_3
|
||||
│ M f_modified
|
||||
│ 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
|
||||
│ A f_added_2
|
||||
│ A f_dir/dir_file_1
|
||||
@ -688,7 +688,7 @@ fn test_files() {
|
||||
│ A f_interdiff_only_from
|
||||
│ A f_interdiff_same
|
||||
◆ zzzzzzzz root() 00000000
|
||||
");
|
||||
"###);
|
||||
|
||||
let mut test_env = test_env;
|
||||
test_env.add_env_var("COMPLETE", "fish");
|
||||
|
@ -908,7 +908,7 @@ fn test_config_get() {
|
||||
let stdout = test_env.jj_cmd_failure(test_env.env_root(), &["config", "get", "nonexistent"]);
|
||||
insta::assert_snapshot!(stdout, @r"
|
||||
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"]);
|
||||
@ -926,7 +926,7 @@ fn test_config_get() {
|
||||
Config error: Invalid type or value for table.list
|
||||
Caused by: Expected a value convertible to a string, but is an array
|
||||
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"]);
|
||||
@ -934,7 +934,7 @@ fn test_config_get() {
|
||||
Config error: Invalid type or value for table
|
||||
Caused by: Expected a value convertible to a string, but is a table
|
||||
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 =
|
||||
@ -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"]);
|
||||
insta::assert_snapshot!(stderr, @r"
|
||||
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
|
||||
@ -1063,7 +1063,7 @@ fn test_config_show_paths() {
|
||||
Caused by: unknown variant `:builtin`, expected `never` or `auto`
|
||||
|
||||
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/.
|
||||
");
|
||||
}
|
||||
|
||||
|
@ -330,17 +330,17 @@ fn test_diffedit_external_tool_conflict_marker_style() {
|
||||
.unwrap();
|
||||
let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["diffedit"]);
|
||||
insta::assert_snapshot!(stdout, @"");
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
Created mzvwutvl 7b92839f (conflict) (empty) (no description set)
|
||||
Working copy now at: mzvwutvl 7b92839f (conflict) (empty) (no description set)
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Created mzvwutvl fb39e804 (conflict) (empty) (no description set)
|
||||
Working copy now at: mzvwutvl fb39e804 (conflict) (empty) (no description set)
|
||||
Parent commit : rlvkpnrz 3765cc27 side-a
|
||||
Parent commit : zsuskuln 8b3de837 side-b
|
||||
Added 0 files, modified 1 files, removed 0 files
|
||||
There are unresolved conflicts at these paths:
|
||||
file 2-sided conflict
|
||||
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
|
||||
insta::assert_snapshot!(
|
||||
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
|
||||
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
|
||||
There are unresolved conflicts at these paths:
|
||||
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: zsuskuln 8b3de837 side-b
|
||||
"#);
|
||||
"###);
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -580,10 +580,10 @@ fn test_diffedit_merge() {
|
||||
let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["diffedit", "-r", "@-"]);
|
||||
insta::assert_snapshot!(stdout, @"");
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Created royxmykx 263b3c63 (conflict) merge
|
||||
Created royxmykx 0105de4a (conflict) merge
|
||||
Rebased 1 descendant commits
|
||||
Working copy now at: yqosqzyt 5771c919 (conflict) (empty) (no description set)
|
||||
Parent commit : royxmykx 263b3c63 (conflict) merge
|
||||
Working copy now at: yqosqzyt abbb78c1 (conflict) (empty) (no description set)
|
||||
Parent commit : royxmykx 0105de4a (conflict) merge
|
||||
Added 0 files, modified 0 files, removed 1 files
|
||||
There are unresolved conflicts at these paths:
|
||||
file2 2-sided conflict
|
||||
|
@ -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]
|
||||
fn test_undo_after_duplicate() {
|
||||
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]
|
||||
fn test_rebase_duplicates() {
|
||||
let test_env = TestEnvironment::default();
|
||||
|
@ -32,7 +32,7 @@ fn test_evolog_with_or_without_diff() {
|
||||
insta::assert_snapshot!(stdout, @r###"
|
||||
@ rlvkpnrz test.user@example.com 2001-02-03 08:05:10 66b42ad3
|
||||
│ 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
|
||||
○ rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 068224a7
|
||||
│ my description
|
||||
@ -45,7 +45,7 @@ fn test_evolog_with_or_without_diff() {
|
||||
insta::assert_snapshot!(stdout, @r###"
|
||||
[1m[38;5;2m@[0m [1m[38;5;13mr[38;5;8mlvkpnrz[39m [38;5;3mtest.user@example.com[39m [38;5;14m2001-02-03 08:05:10[39m [38;5;12m6[38;5;8m6b42ad3[39m[0m
|
||||
│ [1mmy description[0m
|
||||
[1m[38;5;1m×[0m [1m[39mr[0m[38;5;8mlvkpnrz[39m hidden [38;5;3mtest.user@example.com[39m [38;5;6m2001-02-03 08:05:09[39m [1m[38;5;4mc[0m[38;5;8mf73917d[39m [38;5;1mconflict[39m
|
||||
[1m[38;5;1m×[0m [1m[39mr[0m[38;5;8mlvkpnrz[39m hidden [38;5;3mtest.user@example.com[39m [38;5;6m2001-02-03 08:05:09[39m [1m[38;5;4m07[0m[38;5;8mb18245[39m [38;5;1mconflict[39m
|
||||
│ my description
|
||||
○ [1m[39mr[0m[38;5;8mlvkpnrz[39m hidden [38;5;3mtest.user@example.com[39m [38;5;6m2001-02-03 08:05:09[39m [1m[38;5;4m06[0m[38;5;8m8224a7[39m
|
||||
│ my description
|
||||
@ -67,7 +67,7 @@ fn test_evolog_with_or_without_diff() {
|
||||
│ 5 : foo
|
||||
│ 6 : bar
|
||||
│ 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
|
||||
○ rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 068224a7
|
||||
│ my description
|
||||
@ -85,7 +85,7 @@ fn test_evolog_with_or_without_diff() {
|
||||
insta::assert_snapshot!(stdout, @r###"
|
||||
@ rlvkpnrz test.user@example.com 2001-02-03 08:05:10 66b42ad3
|
||||
│ 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
|
||||
"###);
|
||||
|
||||
@ -94,7 +94,7 @@ fn test_evolog_with_or_without_diff() {
|
||||
insta::assert_snapshot!(stdout, @r###"
|
||||
rlvkpnrz test.user@example.com 2001-02-03 08:05:10 66b42ad3
|
||||
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
|
||||
rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 068224a7
|
||||
my description
|
||||
@ -104,7 +104,7 @@ fn test_evolog_with_or_without_diff() {
|
||||
|
||||
// Test `--git` format, and that it implies `-p`
|
||||
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
|
||||
my description
|
||||
diff --git a/file1 b/file1
|
||||
@ -120,7 +120,7 @@ fn test_evolog_with_or_without_diff() {
|
||||
-bar
|
||||
->>>>>>> Conflict 1 of 1 ends
|
||||
+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
|
||||
rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 068224a7
|
||||
my description
|
||||
@ -140,7 +140,7 @@ fn test_evolog_with_or_without_diff() {
|
||||
+foo
|
||||
rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:08 2b023b5f
|
||||
(empty) my description
|
||||
");
|
||||
"###);
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -162,7 +162,7 @@ fn test_evolog_with_custom_symbols() {
|
||||
insta::assert_snapshot!(stdout, @r###"
|
||||
$ rlvkpnrz test.user@example.com 2001-02-03 08:05:10 66b42ad3
|
||||
│ 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
|
||||
┝ rlvkpnrz hidden test.user@example.com 2001-02-03 08:05:09 068224a7
|
||||
│ my description
|
||||
|
@ -121,7 +121,7 @@ fn test_chmod_regular_conflict() {
|
||||
test_env.jj_cmd_ok(&repo_path, &["file", "chmod", "x", "nonexistent", "file"]);
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
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 : zsuskuln 3f83a26d n | n
|
||||
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!(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 : royxmykx 6b18b3c1 deletion | deletion
|
||||
Added 0 files, modified 1 files, removed 0 files
|
||||
There are unresolved conflicts at these paths:
|
||||
file 2-sided conflict including 1 deletion and an executable
|
||||
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:
|
||||
jj new kmkuslsw
|
||||
Then use `jj resolve`, or edit the conflict markers in the file directly.
|
||||
|
@ -61,7 +61,7 @@ fn test_config_no_tools() {
|
||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["fix"]);
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
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", "@"]);
|
||||
@ -180,7 +180,7 @@ fn test_config_multiple_tools_with_same_name() {
|
||||
duplicate key `my-tool` in table `fix.tools`
|
||||
|
||||
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());
|
||||
@ -259,7 +259,7 @@ fn test_config_tables_all_commands_missing() {
|
||||
Caused by: missing field `command`
|
||||
|
||||
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", "@"]);
|
||||
@ -294,7 +294,7 @@ fn test_config_tables_some_commands_missing() {
|
||||
Caused by: missing field `command`
|
||||
|
||||
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", "@"]);
|
||||
@ -1060,7 +1060,7 @@ fn test_fix_both_sides_of_conflict() {
|
||||
// fixed if we didn't fix the parents also.
|
||||
let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["fix", "-s", "a", "-s", "b"]);
|
||||
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.
|
||||
Hint: Replace it with the following:
|
||||
[fix.tools.legacy-tool-command]
|
||||
@ -1068,13 +1068,13 @@ fn test_fix_both_sides_of_conflict() {
|
||||
patterns = ["all()"]
|
||||
|
||||
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 : kkmpptxz 91f9b284 b | (no description set)
|
||||
Added 0 files, modified 1 files, removed 0 files
|
||||
There are unresolved conflicts at these paths:
|
||||
file 2-sided conflict
|
||||
"#);
|
||||
"###);
|
||||
let content = test_env.jj_cmd_success(&repo_path, &["file", "show", "file", "-r", "a"]);
|
||||
insta::assert_snapshot!(content, @r###"
|
||||
CONTENT A
|
||||
|
@ -482,7 +482,7 @@ fn test_git_clone_ignore_working_copy() {
|
||||
insta::assert_snapshot!(stderr, @r##"
|
||||
Error: The working copy is stale (not updated since operation eac759b9ab75).
|
||||
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
|
||||
Config error: Invalid `revset-aliases.immutable_heads()`
|
||||
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##"
|
||||
Error: The working copy is stale (not updated since operation 4a8ddda0ff63).
|
||||
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.
|
||||
|
@ -184,7 +184,7 @@ fn test_git_colocated_unborn_bookmark() {
|
||||
test_env.jj_cmd_ok(&workspace_root, &["bookmark", "create", "-r@-", "master"]);
|
||||
|
||||
// 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", "");
|
||||
let (stdout, stderr) = test_env.jj_cmd_ok(&workspace_root, &["new", "root()"]);
|
||||
insta::assert_snapshot!(stdout, @"");
|
||||
|
@ -388,7 +388,7 @@ fn test_git_fetch_conflicting_bookmarks_colocated() {
|
||||
&["git", "fetch", "--remote", "rem1", "--branch", "rem1"],
|
||||
);
|
||||
// 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###"
|
||||
rem1 (conflicted):
|
||||
+ zsuskuln f652c321 (empty) (no description set)
|
||||
|
@ -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, &["describe", "-m", "third"]);
|
||||
let stderr = test_env.jj_cmd_failure(&workspace_root, &["git", "push", "--all"]);
|
||||
insta::assert_snapshot!(stderr, @r"
|
||||
Error: Won't push commit 73c265a92cfd since it has conflicts
|
||||
Hint: Rejected commit: yostqsxw 73c265a9 my-bookmark | (conflict) third
|
||||
");
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Error: Won't push commit e2221a796300 since it has conflicts
|
||||
Hint: Rejected commit: yostqsxw e2221a79 my-bookmark | (conflict) third
|
||||
"###);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -308,7 +308,7 @@ fn test_invalid_filesets_looking_like_filepaths() {
|
||||
| ^---
|
||||
|
|
||||
= 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"#);
|
||||
@ -464,7 +464,7 @@ fn test_color_config() {
|
||||
Config error: Invalid type or value for ui.color
|
||||
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"]);
|
||||
insta::assert_snapshot!(stderr, @r"
|
||||
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(
|
||||
@ -678,7 +678,7 @@ fn test_config_args() {
|
||||
Caused by:
|
||||
1: Cannot access unknown.toml
|
||||
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, `#`
|
||||
|
||||
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
|
||||
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/.
|
||||
");
|
||||
}
|
||||
|
||||
|
@ -68,7 +68,7 @@ fn test_rewrite_immutable_generic() {
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Config error: Invalid `revset-aliases.immutable_heads()`
|
||||
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
|
||||
@ -192,10 +192,10 @@ fn test_rewrite_immutable_commands() {
|
||||
|
||||
// Log shows mutable commits, their parents, and trunk() by default
|
||||
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
|
||||
│ (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
|
||||
│ │
|
||||
│ ~
|
||||
@ -203,15 +203,15 @@ fn test_rewrite_immutable_commands() {
|
||||
◆ kkmpptxz test.user@example.com 2001-02-03 08:05:10 72e1b68c
|
||||
│ b
|
||||
~
|
||||
");
|
||||
"###);
|
||||
|
||||
// abandon
|
||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["abandon", "main"]);
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
Error: Commit 1d5af877b8bb is immutable
|
||||
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Error: Commit bcab555fc80e is immutable
|
||||
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()`.
|
||||
"#);
|
||||
"###);
|
||||
// absorb
|
||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["absorb", "--into=::@-"]);
|
||||
insta::assert_snapshot!(stderr, @r"
|
||||
@ -221,60 +221,60 @@ fn test_rewrite_immutable_commands() {
|
||||
");
|
||||
// chmod
|
||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["file", "chmod", "-r=main", "x", "file"]);
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
Error: Commit 1d5af877b8bb is immutable
|
||||
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Error: Commit bcab555fc80e is immutable
|
||||
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()`.
|
||||
"#);
|
||||
"###);
|
||||
// describe
|
||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["describe", "main"]);
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
Error: Commit 1d5af877b8bb is immutable
|
||||
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Error: Commit bcab555fc80e is immutable
|
||||
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()`.
|
||||
"#);
|
||||
"###);
|
||||
// diffedit
|
||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["diffedit", "-r=main"]);
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
Error: Commit 1d5af877b8bb is immutable
|
||||
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Error: Commit bcab555fc80e is immutable
|
||||
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()`.
|
||||
"#);
|
||||
"###);
|
||||
// edit
|
||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["edit", "main"]);
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
Error: Commit 1d5af877b8bb is immutable
|
||||
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Error: Commit bcab555fc80e is immutable
|
||||
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()`.
|
||||
"#);
|
||||
"###);
|
||||
// new --insert-before
|
||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["new", "--insert-before", "main"]);
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
Error: Commit 1d5af877b8bb is immutable
|
||||
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Error: Commit bcab555fc80e is immutable
|
||||
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()`.
|
||||
"#);
|
||||
"###);
|
||||
// new --insert-after parent_of_main
|
||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["new", "--insert-after", "description(b)"]);
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
Error: Commit 1d5af877b8bb is immutable
|
||||
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Error: Commit bcab555fc80e is immutable
|
||||
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()`.
|
||||
"#);
|
||||
"###);
|
||||
// parallelize
|
||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["parallelize", "description(b)", "main"]);
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
Error: Commit 1d5af877b8bb is immutable
|
||||
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Error: Commit bcab555fc80e is immutable
|
||||
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()`.
|
||||
"#);
|
||||
"###);
|
||||
// rebase -s
|
||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["rebase", "-s=main", "-d=@"]);
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
Error: Commit 1d5af877b8bb is immutable
|
||||
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Error: Commit bcab555fc80e is immutable
|
||||
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()`.
|
||||
"#);
|
||||
"###);
|
||||
// rebase -b
|
||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["rebase", "-b=main", "-d=@"]);
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
@ -284,39 +284,39 @@ fn test_rewrite_immutable_commands() {
|
||||
"#);
|
||||
// rebase -r
|
||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["rebase", "-r=main", "-d=@"]);
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
Error: Commit 1d5af877b8bb is immutable
|
||||
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Error: Commit bcab555fc80e is immutable
|
||||
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()`.
|
||||
"#);
|
||||
"###);
|
||||
// resolve
|
||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["resolve", "-r=description(merge)", "file"]);
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
Error: Commit 1d5af877b8bb is immutable
|
||||
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Error: Commit bcab555fc80e is immutable
|
||||
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()`.
|
||||
"#);
|
||||
"###);
|
||||
// restore -c
|
||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["restore", "-c=main"]);
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
Error: Commit 1d5af877b8bb is immutable
|
||||
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Error: Commit bcab555fc80e is immutable
|
||||
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()`.
|
||||
"#);
|
||||
"###);
|
||||
// restore --to
|
||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["restore", "--to=main"]);
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
Error: Commit 1d5af877b8bb is immutable
|
||||
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Error: Commit bcab555fc80e is immutable
|
||||
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()`.
|
||||
"#);
|
||||
"###);
|
||||
// split
|
||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["split", "-r=main"]);
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
Error: Commit 1d5af877b8bb is immutable
|
||||
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Error: Commit bcab555fc80e is immutable
|
||||
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()`.
|
||||
"#);
|
||||
"###);
|
||||
// squash -r
|
||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["squash", "-r=description(b)"]);
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
@ -326,25 +326,25 @@ fn test_rewrite_immutable_commands() {
|
||||
"#);
|
||||
// squash --from
|
||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["squash", "--from=main"]);
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
Error: Commit 1d5af877b8bb is immutable
|
||||
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Error: Commit bcab555fc80e is immutable
|
||||
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()`.
|
||||
"#);
|
||||
"###);
|
||||
// squash --into
|
||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["squash", "--into=main"]);
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
Error: Commit 1d5af877b8bb is immutable
|
||||
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Error: Commit bcab555fc80e is immutable
|
||||
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()`.
|
||||
"#);
|
||||
"###);
|
||||
// unsquash
|
||||
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` will be removed in a future version, and this will be a hard error
|
||||
Error: Commit 1d5af877b8bb is immutable
|
||||
Hint: Could not modify commit: mzvwutvl 1d5af877 main | (conflict) merge
|
||||
Error: Commit bcab555fc80e is immutable
|
||||
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()`.
|
||||
"#);
|
||||
"###);
|
||||
}
|
||||
|
@ -461,7 +461,7 @@ fn test_log_bad_short_prefixes() {
|
||||
| ^---
|
||||
|
|
||||
= 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
|
||||
@ -1325,7 +1325,7 @@ fn test_graph_styles() {
|
||||
Config error: Invalid type or value for ui.graph.style
|
||||
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/.
|
||||
");
|
||||
}
|
||||
|
||||
|
@ -870,7 +870,7 @@ fn test_next_conflict_head() {
|
||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["next", "--conflict", "--edit"]);
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
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)
|
||||
"###);
|
||||
}
|
||||
|
||||
|
@ -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]
|
||||
fn test_rebase_with_child_and_descendant_bug_2600() {
|
||||
let test_env = TestEnvironment::default();
|
||||
|
@ -30,34 +30,34 @@ fn test_report_conflicts() {
|
||||
let (stdout, stderr) =
|
||||
test_env.jj_cmd_ok(&repo_path, &["rebase", "-s=description(B)", "-d=root()"]);
|
||||
insta::assert_snapshot!(stdout, @"");
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Rebased 3 commits onto destination
|
||||
Working copy now at: zsuskuln aa73e2ae (conflict) (empty) (no description set)
|
||||
Parent commit : kkmpptxz 64bdec0c (conflict) C
|
||||
Working copy now at: zsuskuln f8a2c4e0 (conflict) (empty) (no description set)
|
||||
Parent commit : kkmpptxz 2271a49e (conflict) C
|
||||
Added 0 files, modified 1 files, removed 0 files
|
||||
There are unresolved conflicts at these paths:
|
||||
file 2-sided conflict including 1 deletion
|
||||
New conflicts appeared in these commits:
|
||||
kkmpptxz 64bdec0c (conflict) C
|
||||
rlvkpnrz 10a5fd45 (conflict) B
|
||||
kkmpptxz 2271a49e (conflict) C
|
||||
rlvkpnrz b7d83633 (conflict) B
|
||||
To resolve the conflicts, start by updating to the first one:
|
||||
jj new rlvkpnrz
|
||||
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`.
|
||||
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)"]);
|
||||
insta::assert_snapshot!(stdout, @"");
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Rebased 3 commits onto destination
|
||||
Working copy now at: zsuskuln d70c003d (empty) (no description set)
|
||||
Parent commit : kkmpptxz 43e94449 C
|
||||
Added 0 files, modified 1 files, removed 0 files
|
||||
Existing conflicts were resolved or abandoned from these commits:
|
||||
kkmpptxz hidden 64bdec0c (conflict) C
|
||||
rlvkpnrz hidden 10a5fd45 (conflict) B
|
||||
"#);
|
||||
kkmpptxz hidden 2271a49e (conflict) C
|
||||
rlvkpnrz hidden b7d83633 (conflict) B
|
||||
"###);
|
||||
|
||||
// Can get hint about multiple root commits
|
||||
let (stdout, stderr) =
|
||||
@ -66,14 +66,14 @@ fn test_report_conflicts() {
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Rebased 1 commits onto destination
|
||||
Rebased 2 descendant commits
|
||||
Working copy now at: zsuskuln 99fb9018 (conflict) (empty) (no description set)
|
||||
Parent commit : kkmpptxz 17c72220 (conflict) C
|
||||
Working copy now at: zsuskuln 588bd15c (conflict) (empty) (no description set)
|
||||
Parent commit : kkmpptxz 331a2fce (conflict) C
|
||||
Added 0 files, modified 1 files, removed 0 files
|
||||
There are unresolved conflicts at these paths:
|
||||
file 2-sided conflict
|
||||
New conflicts appeared in these commits:
|
||||
kkmpptxz 17c72220 (conflict) C
|
||||
rlvkpnrz eb93a73d (conflict) B
|
||||
kkmpptxz 331a2fce (conflict) C
|
||||
rlvkpnrz b42f84eb (conflict) B
|
||||
To resolve the conflicts, start by updating to one of the first ones:
|
||||
jj new kkmpptxz
|
||||
jj new rlvkpnrz
|
||||
@ -86,8 +86,8 @@ fn test_report_conflicts() {
|
||||
let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["new", "rlvkpnrzqnoo"]);
|
||||
insta::assert_snapshot!(stdout, @"");
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Working copy now at: vruxwmqv 1d87c702 (conflict) (empty) (no description set)
|
||||
Parent commit : rlvkpnrz eb93a73d (conflict) B
|
||||
Working copy now at: vruxwmqv 0485e30f (conflict) (empty) (no description set)
|
||||
Parent commit : rlvkpnrz b42f84eb (conflict) B
|
||||
Added 0 files, modified 1 files, removed 0 files
|
||||
There are unresolved conflicts at these paths:
|
||||
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)
|
||||
Parent commit : rlvkpnrz 87370844 B
|
||||
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) =
|
||||
test_env.jj_cmd_ok(&repo_path, &["rebase", "-s=description(B)", "-d=root()"]);
|
||||
insta::assert_snapshot!(stdout, @"");
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Concurrent modification detected, resolving automatically.
|
||||
Rebased 3 commits onto destination
|
||||
Working copy now at: zsuskuln?? 97ce1783 (conflict) C2
|
||||
Parent commit : kkmpptxz eb93a73d (conflict) B
|
||||
Working copy now at: zsuskuln?? 4ca807ad (conflict) C2
|
||||
Parent commit : kkmpptxz b42f84eb (conflict) B
|
||||
Added 0 files, modified 1 files, removed 0 files
|
||||
There are unresolved conflicts at these paths:
|
||||
file 2-sided conflict including 1 deletion
|
||||
New conflicts appeared in these commits:
|
||||
zsuskuln?? b535189c (conflict) C3
|
||||
zsuskuln?? 97ce1783 (conflict) C2
|
||||
kkmpptxz eb93a73d (conflict) B
|
||||
zsuskuln?? 1db43f23 (conflict) C3
|
||||
zsuskuln?? 4ca807ad (conflict) C2
|
||||
kkmpptxz b42f84eb (conflict) B
|
||||
To resolve the conflicts, start by updating to the first one:
|
||||
jj new kkmpptxz
|
||||
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`.
|
||||
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)"]);
|
||||
insta::assert_snapshot!(stdout, @"");
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Rebased 3 commits onto destination
|
||||
Working copy now at: zsuskuln?? f2d7a228 C2
|
||||
Parent commit : kkmpptxz db069a22 B
|
||||
Added 0 files, modified 1 files, removed 0 files
|
||||
Existing conflicts were resolved or abandoned from these commits:
|
||||
zsuskuln hidden b535189c (conflict) C3
|
||||
zsuskuln hidden 97ce1783 (conflict) C2
|
||||
kkmpptxz hidden eb93a73d (conflict) B
|
||||
"#);
|
||||
zsuskuln hidden 1db43f23 (conflict) C3
|
||||
zsuskuln hidden 4ca807ad (conflict) C2
|
||||
kkmpptxz hidden b42f84eb (conflict) B
|
||||
"###);
|
||||
|
||||
// Same thing when rebasing the divergent commits one at a time
|
||||
let (stdout, stderr) =
|
||||
test_env.jj_cmd_ok(&repo_path, &["rebase", "-s=description(C2)", "-d=root()"]);
|
||||
insta::assert_snapshot!(stdout, @"");
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
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)
|
||||
Added 0 files, modified 1 files, removed 0 files
|
||||
There are unresolved conflicts at these paths:
|
||||
file 2-sided conflict including 1 deletion
|
||||
New conflicts appeared in these commits:
|
||||
zsuskuln?? b15416ac (conflict) C2
|
||||
zsuskuln?? 3c36afc9 (conflict) C2
|
||||
To resolve the conflicts, start by updating to it:
|
||||
jj new zsuskuln
|
||||
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`.
|
||||
Then run `jj squash` to move the resolution into the conflicted commit.
|
||||
"#);
|
||||
"###);
|
||||
|
||||
let (stdout, stderr) =
|
||||
test_env.jj_cmd_ok(&repo_path, &["rebase", "-s=description(C3)", "-d=root()"]);
|
||||
insta::assert_snapshot!(stdout, @"");
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Rebased 1 commits onto destination
|
||||
New conflicts appeared in these commits:
|
||||
zsuskuln?? 8cc7fde6 (conflict) C3
|
||||
zsuskuln?? e3ff827e (conflict) C3
|
||||
To resolve the conflicts, start by updating to it:
|
||||
jj new zsuskuln
|
||||
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`.
|
||||
Then run `jj squash` to move the resolution into the conflicted commit.
|
||||
"#);
|
||||
"###);
|
||||
|
||||
let (stdout, stderr) = test_env.jj_cmd_ok(
|
||||
&repo_path,
|
||||
&["rebase", "-s=description(C2)", "-d=description(B)"],
|
||||
);
|
||||
insta::assert_snapshot!(stdout, @"");
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Rebased 1 commits onto destination
|
||||
Working copy now at: zsuskuln?? 1f9680bd C2
|
||||
Parent commit : kkmpptxz db069a22 B
|
||||
Added 0 files, modified 1 files, removed 0 files
|
||||
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(
|
||||
&repo_path,
|
||||
&["rebase", "-s=description(C3)", "-d=description(B)"],
|
||||
);
|
||||
insta::assert_snapshot!(stdout, @"");
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Rebased 1 commits onto destination
|
||||
Existing conflicts were resolved or abandoned from these commits:
|
||||
zsuskuln hidden 8cc7fde6 (conflict) C3
|
||||
"#);
|
||||
zsuskuln hidden e3ff827e (conflict) C3
|
||||
"###);
|
||||
}
|
||||
|
@ -235,14 +235,14 @@ fn test_resolution() {
|
||||
insta::assert_snapshot!(stdout, @"");
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
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 : royxmykx db6a4daf b | b
|
||||
Added 0 files, modified 1 files, removed 0 files
|
||||
There are unresolved conflicts at these paths:
|
||||
file 2-sided conflict
|
||||
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:
|
||||
jj new vruxwmqv
|
||||
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!(stderr, @r#"
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
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 : royxmykx db6a4daf b | b
|
||||
Added 0 files, modified 1 files, removed 0 files
|
||||
There are unresolved conflicts at these paths:
|
||||
file 2-sided conflict
|
||||
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:
|
||||
jj new vruxwmqv
|
||||
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`.
|
||||
Then run `jj squash` to move the resolution into the conflicted commit.
|
||||
"#);
|
||||
"###);
|
||||
insta::assert_snapshot!(
|
||||
std::fs::read_to_string(test_env.env_root().join("editor4")).unwrap(), @r##"
|
||||
<<<<<<< Side #1 (Conflict 1 of 1)
|
||||
@ -459,22 +459,22 @@ fn test_resolution() {
|
||||
],
|
||||
);
|
||||
insta::assert_snapshot!(stdout, @"");
|
||||
insta::assert_snapshot!(stderr, @r#"
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
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 : royxmykx db6a4daf b | b
|
||||
Added 0 files, modified 1 files, removed 0 files
|
||||
There are unresolved conflicts at these paths:
|
||||
file 2-sided conflict
|
||||
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:
|
||||
jj new vruxwmqv
|
||||
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`.
|
||||
Then run `jj squash` to move the resolution into the conflicted commit.
|
||||
"#);
|
||||
"###);
|
||||
insta::assert_snapshot!(
|
||||
std::fs::read_to_string(test_env.env_root().join("editor5")).unwrap(), @"");
|
||||
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!(stderr, @r###"
|
||||
Resolving conflicts in: fileB
|
||||
Working copy now at: nkmrtpmo 4b14662a conflict | (conflict) conflict
|
||||
Parent commit : kmkuslsw 18c1fb00 conflictA | (conflict) (empty) conflictA
|
||||
Parent commit : lylxulpl d11c92eb conflictB | (conflict) (empty) conflictB
|
||||
Working copy now at: nkmrtpmo 69cc0c2d conflict | (conflict) conflict
|
||||
Parent commit : kmkuslsw 4601566f conflictA | (conflict) (empty) conflictA
|
||||
Parent commit : lylxulpl 6f8d8381 conflictB | (conflict) (empty) conflictB
|
||||
Added 0 files, modified 1 files, removed 0 files
|
||||
There are unresolved conflicts at these paths:
|
||||
fileA 2-sided conflict
|
||||
fileB 2-sided conflict
|
||||
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:
|
||||
jj new nkmrtpmo
|
||||
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!(stderr, @r###"
|
||||
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 : royxmykx f68bc2f0 b | b
|
||||
Added 0 files, modified 1 files, removed 0 files
|
||||
There are unresolved conflicts at these paths:
|
||||
this_file_has_a_very_long_name_to_test_padding 2-sided conflict
|
||||
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:
|
||||
jj new vruxwmqv
|
||||
Then use `jj resolve`, or edit the conflict markers in the file directly.
|
||||
|
@ -61,13 +61,13 @@ fn test_restore() {
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Created rlvkpnrz b9b6011e (empty) (no description set)
|
||||
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)
|
||||
Added 0 files, modified 1 files, removed 0 files
|
||||
There are unresolved conflicts at these paths:
|
||||
file2 2-sided conflict including 1 deletion
|
||||
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:
|
||||
jj new kkmpptxz
|
||||
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"]);
|
||||
insta::assert_snapshot!(stdout, @"");
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Created vruxwmqv 126facb5 conflict | (conflict) (empty) conflict
|
||||
Working copy now at: vruxwmqv 126facb5 conflict | (conflict) (empty) conflict
|
||||
Created vruxwmqv 25a37060 conflict | (conflict) (empty) conflict
|
||||
Working copy now at: vruxwmqv 25a37060 conflict | (conflict) (empty) conflict
|
||||
Parent commit : zsuskuln aa493daf a | a
|
||||
Parent commit : royxmykx db6a4daf b | b
|
||||
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"]);
|
||||
insta::assert_snapshot!(stdout, @"");
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Created vruxwmqv b553ebcf conflict | (conflict) (empty) conflict
|
||||
Working copy now at: vruxwmqv b553ebcf conflict | (conflict) (empty) conflict
|
||||
Created vruxwmqv f2c82b9c conflict | (conflict) (empty) conflict
|
||||
Working copy now at: vruxwmqv f2c82b9c conflict | (conflict) (empty) conflict
|
||||
Parent commit : zsuskuln aa493daf a | a
|
||||
Parent commit : royxmykx db6a4daf b | b
|
||||
Added 0 files, modified 1 files, removed 0 files
|
||||
|
@ -156,7 +156,7 @@ fn test_bad_function_call() {
|
||||
| ^---
|
||||
|
|
||||
= 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")"#]);
|
||||
@ -717,7 +717,7 @@ fn test_all_modifier() {
|
||||
| ^-^
|
||||
|
|
||||
= 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/.
|
||||
"###);
|
||||
}
|
||||
|
||||
|
@ -688,10 +688,10 @@ fn test_squash_from_multiple() {
|
||||
insta::assert_snapshot!(stdout, @"");
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Rebased 2 descendant commits
|
||||
Working copy now at: kpqxywon 3e25ee21 f | (no description set)
|
||||
Parent commit : yostqsxw abb5a4ea e | (no description set)
|
||||
Working copy now at: kpqxywon 7ea39167 f | (no description set)
|
||||
Parent commit : yostqsxw acfbf2a0 e | (no description set)
|
||||
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:
|
||||
jj new yqosqzyt
|
||||
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.
|
||||
"###);
|
||||
insta::assert_snapshot!(get_log_output(&test_env, &repo_path), @r###"
|
||||
@ 3e25ee211f3f f
|
||||
○ abb5a4ea1222 e
|
||||
@ 7ea391676d52 f
|
||||
○ acfbf2a0600d e
|
||||
├─╮
|
||||
× │ 98759debcee5 d
|
||||
× │ 4df3b2156c3d d
|
||||
├─╯
|
||||
○ 3b1673b6370c a b c
|
||||
◆ 000000000000 (empty)
|
||||
@ -813,10 +813,10 @@ fn test_squash_from_multiple_partial() {
|
||||
insta::assert_snapshot!(stdout, @"");
|
||||
insta::assert_snapshot!(stderr, @r###"
|
||||
Rebased 2 descendant commits
|
||||
Working copy now at: kpqxywon 056dc38b f | (no description set)
|
||||
Parent commit : yostqsxw 45069475 e | (no description set)
|
||||
Working copy now at: kpqxywon a8530305 f | (no description set)
|
||||
Parent commit : yostqsxw 0a3637fc e | (no description set)
|
||||
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:
|
||||
jj new yqosqzyt
|
||||
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.
|
||||
"###);
|
||||
insta::assert_snapshot!(get_log_output(&test_env, &repo_path), @r###"
|
||||
@ 056dc38bf286 f
|
||||
○ 450694753699 e
|
||||
@ a8530305127c f
|
||||
○ 0a3637fca632 e
|
||||
├─┬─╮
|
||||
│ │ ○ 450d1499c1ae b
|
||||
│ ○ │ 14b44bf0473c c
|
||||
│ ├─╯
|
||||
× │ b91b11575906 d
|
||||
× │ 05a3ab3dffc8 d
|
||||
├─╯
|
||||
○ 54d3c1c0e9fd a
|
||||
◆ 000000000000 (empty)
|
||||
|
@ -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]
|
||||
fn test_status_ignored_gitignore() {
|
||||
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/martinvonz/jj/issues/4147>
|
||||
// See <https://github.com/jj-vcs/jj/issues/3108>
|
||||
// See <https://github.com/jj-vcs/jj/issues/4147>
|
||||
#[test]
|
||||
fn test_status_display_relevant_working_commit_conflict_hints() {
|
||||
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", "::"]);
|
||||
|
||||
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
|
||||
× 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
|
||||
× 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
|
||||
│ ○ kkmpptxz test.user@example.com 2001-02-03 08:05:10 1e8c2956
|
||||
│ │ 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"]);
|
||||
|
||||
insta::assert_snapshot!(stdout, @r#"
|
||||
insta::assert_snapshot!(stdout, @r###"
|
||||
The working copy is clean
|
||||
There are unresolved conflicts at these paths:
|
||||
conflicted.txt 2-sided conflict
|
||||
Working copy : yqosqzyt 65143fef (conflict) (empty) boom-cont-2
|
||||
Parent commit: royxmykx a4e88714 (conflict) (empty) boom-cont
|
||||
Working copy : yqosqzyt dcb25635 (conflict) (empty) boom-cont-2
|
||||
Parent commit: royxmykx 664a4c6c (conflict) (empty) boom-cont
|
||||
To resolve the conflicts, start by updating to the first one:
|
||||
jj new mzvwutvl
|
||||
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`.
|
||||
Then run `jj squash` to move the resolution into the conflicted commit.
|
||||
"#);
|
||||
"###);
|
||||
|
||||
// Resolve conflict
|
||||
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", "::"]);
|
||||
|
||||
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
|
||||
○ 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
|
||||
× 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
|
||||
× 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
|
||||
× 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
|
||||
│ ○ kkmpptxz test.user@example.com 2001-02-03 08:05:10 1e8c2956
|
||||
│ │ First part of conflicting change
|
||||
@ -246,8 +246,8 @@ fn test_status_display_relevant_working_commit_conflict_hints() {
|
||||
insta::assert_snapshot!(stdout, @r###"
|
||||
Working copy changes:
|
||||
M conflicted.txt
|
||||
Working copy : kpqxywon 3432159f fixed 2
|
||||
Parent commit: znkkpsqq 897d589f fixed 1
|
||||
Working copy : kpqxywon d313f2e1 fixed 2
|
||||
Parent commit: znkkpsqq 23e58975 fixed 1
|
||||
"###);
|
||||
|
||||
// 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", "::"]);
|
||||
|
||||
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
|
||||
@ 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
|
||||
× 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
|
||||
× 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
|
||||
× 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
|
||||
│ ○ kkmpptxz test.user@example.com 2001-02-03 08:05:10 1e8c2956
|
||||
│ │ First part of conflicting change
|
||||
@ -280,8 +280,8 @@ fn test_status_display_relevant_working_commit_conflict_hints() {
|
||||
insta::assert_snapshot!(stdout, @r###"
|
||||
Working copy changes:
|
||||
M conflicted.txt
|
||||
Working copy : znkkpsqq 897d589f fixed 1
|
||||
Parent commit: yqosqzyt 65143fef (conflict) (empty) boom-cont-2
|
||||
Working copy : znkkpsqq 23e58975 fixed 1
|
||||
Parent commit: yqosqzyt dcb25635 (conflict) (empty) boom-cont-2
|
||||
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", "::"]);
|
||||
|
||||
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
|
||||
○ 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
|
||||
× 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
|
||||
× 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
|
||||
× 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
|
||||
│ ○ kkmpptxz test.user@example.com 2001-02-03 08:05:10 1e8c2956
|
||||
│ │ 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"]),
|
||||
@r#"
|
||||
@r###"
|
||||
The working copy is clean
|
||||
There are unresolved conflicts at these paths:
|
||||
fileA 2-sided conflict
|
||||
fileB 2-sided conflict
|
||||
Working copy : nkmrtpmo 7b1cdcaa conflict | (conflict) (empty) conflict
|
||||
Parent commit: kmkuslsw 18c1fb00 conflictA | (conflict) (empty) conflictA
|
||||
Parent commit: lylxulpl d11c92eb conflictB | (conflict) (empty) conflictB
|
||||
Working copy : nkmrtpmo 83c4b9e7 conflict | (conflict) (empty) conflict
|
||||
Parent commit: kmkuslsw 4601566f conflictA | (conflict) (empty) conflictA
|
||||
Parent commit: lylxulpl 6f8d8381 conflictB | (conflict) (empty) conflictB
|
||||
To resolve the conflicts, start by updating to one of the first ones:
|
||||
jj new lylxulpl
|
||||
jj new kmkuslsw
|
||||
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`.
|
||||
Then run `jj squash` to move the resolution into the conflicted commit.
|
||||
"#);
|
||||
"###);
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ fn test_util_config_schema() {
|
||||
"$schema": "http://json-schema.org/draft-07/schema",
|
||||
"title": "Jujutsu config",
|
||||
"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": {
|
||||
[...]
|
||||
"fix": {
|
||||
|
@ -65,7 +65,7 @@ fn test_snapshot_large_file() {
|
||||
insta::assert_snapshot!(stderr, @r"
|
||||
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
|
||||
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
|
||||
|
@ -504,14 +504,14 @@ fn test_workspaces_conflicting_edits() {
|
||||
insta::assert_snapshot!(stderr, @r##"
|
||||
Error: The working copy is stale (not updated since operation c81af45155a2).
|
||||
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
|
||||
let stderr = test_env.jj_cmd_failure(&secondary_path, &["log"]);
|
||||
insta::assert_snapshot!(stderr, @r##"
|
||||
Error: The working copy is stale (not updated since operation c81af45155a2).
|
||||
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"]);
|
||||
// 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
|
||||
"###);
|
||||
insta::assert_snapshot!(get_log_output(&test_env, &secondary_path),
|
||||
@r"
|
||||
@r###"
|
||||
@ e82cd4ee8faa secondary@ (divergent)
|
||||
│ × a28c85ce128b (divergent)
|
||||
│ × 30816012e0da (divergent)
|
||||
├─╯
|
||||
│ ○ a58c9a9b19ce default@
|
||||
├─╯
|
||||
○ d41244767d45
|
||||
◆ 000000000000
|
||||
");
|
||||
"###);
|
||||
// The stale working copy should have been resolved by the previous command
|
||||
let stdout = get_log_output(&test_env, &secondary_path);
|
||||
assert!(!stdout.starts_with("The working copy is stale"));
|
||||
insta::assert_snapshot!(stdout, @r"
|
||||
insta::assert_snapshot!(stdout, @r###"
|
||||
@ e82cd4ee8faa secondary@ (divergent)
|
||||
│ × a28c85ce128b (divergent)
|
||||
│ × 30816012e0da (divergent)
|
||||
├─╯
|
||||
│ ○ a58c9a9b19ce default@
|
||||
├─╯
|
||||
○ d41244767d45
|
||||
◆ 000000000000
|
||||
");
|
||||
"###);
|
||||
}
|
||||
|
||||
/// 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##"
|
||||
Error: The working copy is stale (not updated since operation c81af45155a2).
|
||||
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"]);
|
||||
// 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###"
|
||||
Error: Could not read working copy's operation.
|
||||
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"]);
|
||||
|
@ -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.
|
||||
|
||||
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?
|
||||
|
||||
@ -78,7 +78,7 @@ important ones are:
|
||||
and ignore the confusing information such tools present for conflicted commits
|
||||
(unless you are curious about [the details of how `jj` stores
|
||||
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.
|
||||
|
||||
- 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
|
||||
|
||||
[this issue]: https://github.com/martinvonz/jj/issues/1531
|
||||
[this issue]: https://github.com/jj-vcs/jj/issues/1531
|
||||
|
@ -76,4 +76,4 @@ You can find other community contributed tools and integrations in our
|
||||
[lazyjj]: https://github.com/Cretezy/lazyjj
|
||||
[vjj]: https://github.com/noahmayr/vjj
|
||||
[visualjj]: https://www.visualjj.com
|
||||
[Wiki]: https://github.com/martinvonz/jj/wiki
|
||||
[Wiki]: https://github.com/jj-vcs/jj/wiki
|
||||
|
@ -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.
|
||||
|
||||
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.
|
||||
|
||||
### 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
|
||||
[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
|
||||
[vimtabdiff Python script]: https://github.com/balki/vimtabdiff
|
||||
|
@ -85,9 +85,9 @@ stakeholders, which we do with [Design Docs](design_docs.md), see the
|
||||
## Contributing to the documentation
|
||||
|
||||
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
|
||||
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
|
||||
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!
|
||||
|
||||
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
|
||||
HTML docs](#previewing-the-html-documentation) as you edit the Markdown files.
|
||||
Doing so is optional, but recommended.
|
||||
|
||||
The `jj help` docs are sourced from the "docstring" comments inside the Rust
|
||||
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
|
||||
below, and may occasionally require adjusting a test.
|
||||
|
||||
@ -272,7 +272,7 @@ We recommend at least these settings:
|
||||
## Previewing the HTML documentation
|
||||
|
||||
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
|
||||
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
|
||||
(`prerelease`, latest release, and the older releases). The top-level
|
||||
URL <https://martinvonz.github.io/jj> redirects to
|
||||
<https://martinvonz.github.io/jj/latest>, which in turn redirects to
|
||||
URL <https://jj-vcs.github.io/jj> redirects to
|
||||
<https://jj-vcs.github.io/jj/latest>, which in turn redirects to
|
||||
the docs for the last stable version.
|
||||
|
||||
The different versions of documentation are managed and deployed with
|
||||
|
@ -263,10 +263,10 @@ user and incrementally updating the output of `jj st`.
|
||||
|
||||
|
||||
[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
|
||||
[hooks]: https://discord.com/channels/968932220549103686/969829516539228222/1047958933161119795
|
||||
[OpHeadsStore]: https://github.com/martinvonz/jj/blob/main/lib/src/op_heads_store.rs
|
||||
[pre-commit]: https://github.com/martinvonz/jj/issues/405
|
||||
[Treestate]: https://github.com/martinvonz/jj/blob/af85f552b676d66ed0e9ae0d401cd0c4ffbbeb21/lib/src/working_copy.rs#L117
|
||||
[Workspace]: https://github.com/martinvonz/jj/blob/af85f552b676d66ed0e9ae0d401cd0c4ffbbeb21/lib/src/workspace.rs#L54
|
||||
[OpHeadsStore]: https://github.com/jj-vcs/jj/blob/main/lib/src/op_heads_store.rs
|
||||
[pre-commit]: https://github.com/jj-vcs/jj/issues/405
|
||||
[Treestate]: https://github.com/jj-vcs/jj/blob/af85f552b676d66ed0e9ae0d401cd0c4ffbbeb21/lib/src/working_copy.rs#L117
|
||||
[Workspace]: https://github.com/jj-vcs/jj/blob/af85f552b676d66ed0e9ae0d401cd0c4ffbbeb21/lib/src/workspace.rs#L54
|
||||
|
@ -13,8 +13,8 @@ Redesign Sparse Patterns to accommodate more advanced features for native
|
||||
and custom implementations. This includes three main goals:
|
||||
|
||||
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 [client path remapping](https://github.com/martinvonz/jj/issues/2288)
|
||||
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/jj-vcs/jj/issues/2288)
|
||||
|
||||
## Current State (as of jj 0.13.0)
|
||||
|
||||
|
@ -13,7 +13,7 @@ The goal of this plan is to implement
|
||||
* proper support for tracking/non-tracking remote branches
|
||||
* 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)
|
||||
|
||||
@ -352,7 +352,7 @@ Note: desired behavior of `jj branch forget` is to
|
||||
|
||||
## 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?
|
||||
* Track remote branch locally with different name
|
||||
* Local branch name could be stored per remote branch
|
||||
@ -365,8 +365,8 @@ Note: desired behavior of `jj branch forget` is to
|
||||
|
||||
## References
|
||||
|
||||
* https://github.com/martinvonz/jj/issues/1136
|
||||
* https://github.com/martinvonz/jj/issues/1666
|
||||
* https://github.com/martinvonz/jj/issues/1690
|
||||
* https://github.com/martinvonz/jj/issues/1734
|
||||
* https://github.com/martinvonz/jj/pull/1739
|
||||
* https://github.com/jj-vcs/jj/issues/1136
|
||||
* https://github.com/jj-vcs/jj/issues/1666
|
||||
* https://github.com/jj-vcs/jj/issues/1690
|
||||
* https://github.com/jj-vcs/jj/issues/1734
|
||||
* https://github.com/jj-vcs/jj/pull/1739
|
||||
|
@ -20,7 +20,7 @@ a comparison with Git, including how workflows are different, see the
|
||||
you miss any particular configuration options.
|
||||
* The configuration of remotes (`[remote "<name>"]`). Only the names and URLs
|
||||
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).
|
||||
* `core.excludesFile`
|
||||
* **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.
|
||||
The `.gitignore` support uses a native implementation, so please report a bug
|
||||
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.
|
||||
* **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.
|
||||
* **Merge commits: Yes.** Octopus merges (i.e. with more than 2 parents) are
|
||||
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,
|
||||
`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
|
||||
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
|
||||
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
|
||||
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.
|
||||
* **Bare repositories: Yes.** You can use `jj git init --git-repo=<path>` to
|
||||
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
|
||||
checkouts. See the `jj sparse` command.
|
||||
* **Signed commits: Partial.**
|
||||
So far only [by configuration](https://github.com/martinvonz/jj/blob/main/docs/config.md#commit-signing),
|
||||
later perhaps [a command](https://github.com/martinvonz/jj/pull/3142).
|
||||
* **Git LFS: No.** ([#80](https://github.com/martinvonz/jj/issues/80))
|
||||
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/jj-vcs/jj/pull/3142).
|
||||
* **Git LFS: No.** ([#80](https://github.com/jj-vcs/jj/issues/80))
|
||||
|
||||
|
||||
## Creating an empty repo
|
||||
|
@ -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
|
||||
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
|
||||
|
||||
@ -160,7 +160,7 @@ $ jj git push --bookmark your-feature
|
||||
```
|
||||
|
||||
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
|
||||
|
||||
@ -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
|
||||
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
|
||||
|
||||
@ -244,7 +244,7 @@ the [tutorial][tut].
|
||||
[auto-bookmark]: config.md#automatic-local-bookmark-creation
|
||||
[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
|
||||
[http-auth]: https://github.com/martinvonz/jj/issues/469
|
||||
[http-auth]: https://github.com/jj-vcs/jj/issues/469
|
||||
[tut]: tutorial.md#conflicts
|
||||
[stacked]: https://jg.gg/2018/09/29/stacked-diffs-versus-pull-requests/
|
||||
|
||||
|
@ -13,13 +13,13 @@ Additional help is available using the `jj help` command if you have
|
||||
|
||||
You may want to jump to:
|
||||
|
||||
- Documentation for the [latest released version of `jj`](https://martinvonz.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 [latest released version of `jj`](https://jj-vcs.github.io/jj/latest).
|
||||
- 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
|
||||
|
||||
- [GitHub repo for `jj`](https://github.com/martinvonz/jj)
|
||||
- Overview of `jj` in the repo's [README](https://github.com/martinvonz/jj?tab=readme-ov-file#readme)
|
||||
- [GitHub repo for `jj`](https://github.com/jj-vcs/jj)
|
||||
- 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)
|
||||
- [Tutorial and Birds-Eye View](tutorial.md)
|
||||
- [Working with GitHub](github.md)
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
### 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"
|
||||
version should work on all distributions).
|
||||
|
||||
@ -42,7 +42,7 @@ Now run either:
|
||||
|
||||
```shell
|
||||
# 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:
|
||||
@ -120,7 +120,7 @@ Now run either:
|
||||
|
||||
```shell
|
||||
# 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
|
||||
```
|
||||
|
||||
@ -149,7 +149,7 @@ Now run either:
|
||||
|
||||
```shell
|
||||
# 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:
|
||||
@ -192,7 +192,7 @@ Now run either:
|
||||
|
||||
```shell
|
||||
# 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:
|
||||
@ -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
|
||||
is that these new completions work best with `fish`. If you have ideas about
|
||||
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
|
||||
|
||||
|
@ -439,7 +439,7 @@ For example:
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
* `trunk()`: Resolves to the head commit for the trunk bookmark of the remote
|
||||
|
@ -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
|
||||
[copy-design-doc]: design/copy-tracking.md
|
||||
[gg]: https://github.com/gulbanana/gg
|
||||
[jj-run]: https://github.com/martinvonz/jj/issues/1869
|
||||
[submodules]: https://github.com/martinvonz/jj/issues/494
|
||||
[jj-run]: https://github.com/jj-vcs/jj/issues/1869
|
||||
[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
|
||||
|
@ -50,7 +50,7 @@ the user about the conflict.
|
||||
|
||||
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
|
||||
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.
|
||||
|
||||
Moreover, such use of Jujutsu is not currently thoroughly tested,
|
||||
|
@ -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))`,
|
||||
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
|
||||
|
@ -83,7 +83,7 @@ PS> jj workspace add --name wsl ~/my-repo
|
||||
|
||||
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
|
||||
|
||||
## Symbolic link support
|
||||
|
@ -52,7 +52,7 @@ resolutions.
|
||||
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
|
||||
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
|
||||
parts came from.
|
||||
|
||||
|
@ -134,7 +134,7 @@
|
||||
|
||||
meta = {
|
||||
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;
|
||||
mainProgram = "jj";
|
||||
};
|
||||
|
@ -464,7 +464,7 @@ impl<'a> RevWalkBuilder<'a> {
|
||||
) -> RevWalkAncestors<'a> {
|
||||
// We can also make it stop visiting based on the generation number. Maybe
|
||||
// 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
|
||||
.into_iter()
|
||||
.min()
|
||||
|
@ -1696,7 +1696,7 @@ fn allow_push(
|
||||
Ok(if actual_remote_location == destination_location {
|
||||
// This is the situation of what we call "A - B + A = A"
|
||||
// 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
|
||||
} else {
|
||||
// Due to our ref merge rules, this case should happen if an only
|
||||
|
@ -769,7 +769,7 @@ fn recreate_no_gc_refs(
|
||||
// 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
|
||||
// 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());
|
||||
if let Ok(metadata) = loose_ref_path.metadata() {
|
||||
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
|
||||
// there are no reachable ancestor commits without extras metadata. Git commits
|
||||
// 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");
|
||||
self.import_head_commits([id])?;
|
||||
let table = self.cached_extra_metadata_table()?;
|
||||
@ -1424,13 +1424,13 @@ fn write_tree_conflict(
|
||||
.collect_vec();
|
||||
let readme_id = repo
|
||||
.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
|
||||
Git or other tools that are unfamiliar with jj.
|
||||
|
||||
The .jjconflict-* directories represent the different inputs to the conflict.
|
||||
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
|
||||
regular `git` command to check out a conflicted commit. Use `jj abandon` to
|
||||
|
@ -914,7 +914,7 @@ static BUILTIN_FUNCTION_MAP: Lazy<HashMap<&'static str, RevsetFunction>> = Lazy:
|
||||
expect_fileset_expression(diagnostics, files_arg, ctx.path_converter)?
|
||||
} else {
|
||||
// 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()
|
||||
};
|
||||
Ok(RevsetExpression::filter(
|
||||
|
@ -146,7 +146,7 @@ impl UserSettings {
|
||||
}
|
||||
|
||||
// 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 {
|
||||
let config = self.config.clone();
|
||||
RepoSettings { _config: config }
|
||||
|
@ -101,7 +101,7 @@ pub enum WorkspaceLoadError {
|
||||
///
|
||||
/// Represents the combination of a repo and working copy, i.e. what's typically
|
||||
/// 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.
|
||||
pub struct Workspace {
|
||||
// Path to the workspace root (typically the parent of a .jj/ directory), which is where
|
||||
|
@ -3468,16 +3468,16 @@ fn test_parse_gitmodules() {
|
||||
let result = git::parse_gitmodules(
|
||||
&mut r#"
|
||||
[submodule "wellformed"]
|
||||
url = https://github.com/martinvonz/jj
|
||||
url = https://github.com/jj-vcs/jj
|
||||
path = mod
|
||||
update = checkout # Extraneous config
|
||||
|
||||
[submodule "uppercase"]
|
||||
URL = https://github.com/martinvonz/jj
|
||||
URL = https://github.com/jj-vcs/jj
|
||||
PATH = mod2
|
||||
|
||||
[submodule "repeated_keys"]
|
||||
url = https://github.com/martinvonz/jj
|
||||
url = https://github.com/jj-vcs/jj
|
||||
path = mod3
|
||||
url = https://github.com/chooglen/jj
|
||||
path = mod4
|
||||
@ -3498,17 +3498,17 @@ ignoreThisSection = foo
|
||||
let expected = btreemap! {
|
||||
"wellformed".to_string() => SubmoduleConfig {
|
||||
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(),
|
||||
},
|
||||
"uppercase".to_string() => SubmoduleConfig {
|
||||
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(),
|
||||
},
|
||||
"repeated_keys".to_string() => SubmoduleConfig {
|
||||
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(),
|
||||
},
|
||||
};
|
||||
|
@ -2,7 +2,7 @@ site_name: Jujutsu docs
|
||||
site_dir: 'rendered-docs'
|
||||
# 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: !ENV [SITE_URL_FOR_MKDOCS, 'https://martinvonz.github.io/jj/']
|
||||
site_url: !ENV [SITE_URL_FOR_MKDOCS, 'https://jj-vcs.github.io/jj/']
|
||||
theme:
|
||||
name: 'material'
|
||||
language: 'en'
|
||||
|
Loading…
x
Reference in New Issue
Block a user