Commit graph

10315 commits

Author SHA1 Message Date
Steve Klabnik
7da170d53f docs: mention ?? means 'divergence'
While divergence is talked about in the documentation, few places actually
mention how divergent changes are displayed. I've added such notes to the help
out put of `jj log`, the glossary, and added an example to the guide we have on
divergence.

Fixes #6365
2025-12-08 21:09:51 +00:00
dependabot[bot]
31aae4cb26 github: bump the github-dependencies group with 4 updates
Some checks are pending
binaries / Build binary artifacts (push) Waiting to run
website / prerelease-docs-build-deploy (ubuntu-24.04) (push) Waiting to run
Scorecards supply-chain security / Scorecards analysis (push) Waiting to run
Bumps the github-dependencies group with 4 updates: [actions/checkout](https://github.com/actions/checkout), [taiki-e/install-action](https://github.com/taiki-e/install-action), [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) and [github/codeql-action](https://github.com/github/codeql-action).


Updates `actions/checkout` from 6.0.0 to 6.0.1
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](1af3b93b68...8e8c483db8)

Updates `taiki-e/install-action` from 2.62.60 to 2.62.63
- [Release notes](https://github.com/taiki-e/install-action/releases)
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md)
- [Commits](3575e53270...50708e9ba8)

Updates `astral-sh/setup-uv` from 7.1.4 to 7.1.5
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](1e862dfacb...ed21f2f24f)

Updates `github/codeql-action` from 4.31.6 to 4.31.7
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](fe4161a26a...cf1bb45a27)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-dependencies
- dependency-name: taiki-e/install-action
  dependency-version: 2.62.63
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-dependencies
- dependency-name: astral-sh/setup-uv
  dependency-version: 7.1.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-dependencies
- dependency-name: github/codeql-action
  dependency-version: 4.31.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 15:31:04 +00:00
dependabot[bot]
25bf5f2863 cargo: bump the cargo-dependencies group with 3 updates
Bumps the cargo-dependencies group with 3 updates: [criterion](https://github.com/criterion-rs/criterion.rs), [libc](https://github.com/rust-lang/libc) and [toml_edit](https://github.com/toml-rs/toml).


Updates `criterion` from 0.8.0 to 0.8.1
- [Release notes](https://github.com/criterion-rs/criterion.rs/releases)
- [Changelog](https://github.com/criterion-rs/criterion.rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/criterion-rs/criterion.rs/compare/criterion-v0.8.0...criterion-v0.8.1)

Updates `libc` from 0.2.177 to 0.2.178
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Changelog](https://github.com/rust-lang/libc/blob/0.2.178/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.177...0.2.178)

Updates `toml_edit` from 0.23.7 to 0.23.9
- [Commits](https://github.com/toml-rs/toml/compare/v0.23.7...v0.23.9)

---
updated-dependencies:
- dependency-name: criterion
  dependency-version: 0.8.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-dependencies
- dependency-name: libc
  dependency-version: 0.2.178
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-dependencies
- dependency-name: toml_edit
  dependency-version: 0.23.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 15:30:33 +00:00
Scott Taylor
8c84656c36 git_backend: clean up root tree parsing logic
Some checks failed
Scorecards supply-chain security / Scorecards analysis (push) Has been cancelled
binaries / Build binary artifacts (push) Has been cancelled
website / prerelease-docs-build-deploy (ubuntu-24.04) (push) Has been cancelled
This makes `extract_root_tree_from_commit()` match
`extract_change_id_from_commit()`.
2025-12-06 21:20:17 +00:00
Martin von Zweigbergk
a95d9084e4 matchers: move RepoPathTree to repo_path module
I plan to use this type in at least `TreeBuilder`.

I renamed some `dir` variables to `path` since I don't think they have
to be directories.
2025-12-06 16:27:21 +00:00
Martin von Zweigbergk
c8a352424f matchers: don't access RepoPathTree fields directly
I plan to move the type to another module. This patch updates the
callers in `matchers` to use what will become the public API.
2025-12-06 16:27:21 +00:00
David Higgs
b0f2f33e1c tests: exercise squashing a non-revset file
Some checks are pending
binaries / Build binary artifacts (push) Waiting to run
website / prerelease-docs-build-deploy (ubuntu-24.04) (push) Waiting to run
Scorecards supply-chain security / Scorecards analysis (push) Waiting to run
2025-12-06 13:11:12 +00:00
David Higgs
bfcef5d9ef tests: exercise interactively squashing no changes 2025-12-06 13:11:12 +00:00
David Higgs
4191f13edd tests: exercise squashing @ with destination 2025-12-06 13:11:12 +00:00
David Higgs
914edae4a3 tests: exercise resolve for other revisions 2025-12-06 13:11:12 +00:00
David Higgs
8526ea1ff6 tests: exercise revert of nothing 2025-12-06 13:11:12 +00:00
David Higgs
ee650cb6a2 tests: exercise reverse order diff and --to 2025-12-06 13:11:12 +00:00
David Higgs
aab490392f tests: exercise reverse-order diffedit and --to 2025-12-06 13:11:12 +00:00
David Higgs
a60ed7746b tests: exercise status without working copy 2025-12-06 13:11:12 +00:00
David Higgs
59f80b1133 tests: confirm bookmark set warns when auto-tracking existing bookmark 2025-12-06 13:11:12 +00:00
David Higgs
9c855ffc9f tests: exercise workspace config paths 2025-12-06 13:11:12 +00:00
David Higgs
136adf4483 tests: exercise warning about changing author 2025-12-06 13:11:12 +00:00
David Higgs
11c7faa7fd tests: exercise empty config output 2025-12-06 13:11:12 +00:00
Martin von Zweigbergk
11f58fc3be cli: copy note about jj op show -p from absorb to fix
Some checks are pending
binaries / Build binary artifacts (push) Waiting to run
website / prerelease-docs-build-deploy (ubuntu-24.04) (push) Waiting to run
Scorecards supply-chain security / Scorecards analysis (push) Waiting to run
2025-12-06 01:04:00 +00:00
xtqqczze
c49a60e5eb clippy: enable unnecessary_literal_bound lint
Some checks are pending
binaries / Build binary artifacts (push) Waiting to run
website / prerelease-docs-build-deploy (ubuntu-24.04) (push) Waiting to run
Scorecards supply-chain security / Scorecards analysis (push) Waiting to run
2025-12-05 17:07:44 +00:00
Martin von Zweigbergk
94d2c04a75 cleanup: address two Clippy unnecessary_unwrap warnings
Some checks are pending
binaries / Build binary artifacts (push) Waiting to run
website / prerelease-docs-build-deploy (ubuntu-24.04) (push) Waiting to run
Scorecards supply-chain security / Scorecards analysis (push) Waiting to run
2025-12-05 09:22:10 +00:00
xtqqczze
335e76fedb clippy: add lints to workspace.lints.clippy
Some checks are pending
binaries / Build binary artifacts (push) Waiting to run
website / prerelease-docs-build-deploy (ubuntu-24.04) (push) Waiting to run
Scorecards supply-chain security / Scorecards analysis (push) Waiting to run
2025-12-05 05:40:06 +00:00
Kaiyi Li
eb1f72a0c9 file_util: fix broken symlink on Windows
... due to using incorrect separators.

Fix #8185.
2025-12-05 03:43:34 +00:00
xtqqczze
9f8eb428aa clippy: fix explicit_into_iter_loop lint 2025-12-05 01:43:58 +00:00
xtqqczze
b0ee9bdd09 clippy: fix cast_lossless lint
https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless
2025-12-05 01:42:41 +00:00
xtqqczze
a3074efaac cleanup: correct backtick usage in documentation comments
Some checks are pending
binaries / Build binary artifacts (push) Waiting to run
website / prerelease-docs-build-deploy (ubuntu-24.04) (push) Waiting to run
Scorecards supply-chain security / Scorecards analysis (push) Waiting to run
2025-12-04 21:42:30 +00:00
Ian Wrzesinski
bcfd5c977c config: Add "exec-bit-change" setting for overriding policy on Unix 2025-12-04 17:32:40 +00:00
Ian Wrzesinski
aaf20d9e1f working_copy: Add executable bit change policy 2025-12-04 17:32:40 +00:00
Ian Wrzesinski
8dda6b6996 working_copy: Clean up ExecBit interface and preserve on-disk exec state on Windows 2025-12-04 17:32:40 +00:00
Ian Wrzesinski
bea5882e13 working_copy: Rename FileExecutableFlag to ExecBit and update variables
The main reason for this change is that we now give variables different names
based on their types. This helps avoid confusion and makes intent clearer.
However, the type name `FileExecutableFlag` doesn't have a good shortening
(`file_exec_flag` is annoyingly long), so I also renamed the type to something
shorter, which makes the code more legible: easier to mentally parse and
quicker to type.

I removed `File` from the name both for length and because it doesn't really
help distinguish from the executable field in `TreeValue` (because that field
is nested under `TreeValue::File`). Instead, in the upcoming commits I update
comments to consistently use the terms 'on-disk' and 'in-repo' to respectively
refer to the fields in the `FileState` and `TreeValue` structs, which I find
is better for keeping the difference clear in my head.

I went with `Bit` in the new name just because I'm already changing it and I
prefer `exec_bit` slightly over `exec_flag` as the variable name.
2025-12-04 17:32:40 +00:00
Ian Wrzesinski
b8cfd972ed lib/tests: Add basic executable bit tests on Unix 2025-12-04 17:32:40 +00:00
Yuya Nishihara
406940a1fb cli: git clone: fix cleanup to ignore missing .jj and .git directories
Some checks are pending
binaries / Build binary artifacts (push) Waiting to run
website / prerelease-docs-build-deploy (ubuntu-24.04) (push) Waiting to run
Scorecards supply-chain security / Scorecards analysis (push) Waiting to run
fs::remove_dir_all() expects that the specified directory exists.

Fixes #8208
2025-12-04 11:55:28 +00:00
Cole Helbling
7e1ebcf24e ci: macos-x86_64 should actually build for x86_64-apple-darwin
The `macos-15` runner is actually an ARM64 machine -- see
https://github.com/actions/runner-images for current runner image
meanings, but as of this commit, macos-15 was listed as this:

    Image 	YAML Label 	Included Software
    macOS 15 Arm64 	macos-latest, macos-15, or macos-15-xlarge 	macOS-15-arm64

This fixes things such that there is an _actual_ CI build of
x86_64-apple-darwin.

The release.yml and binaries.yml workflows are not affected, as they
manually specify targets, rather than taking the "autodetected" host
target (which is what was happening here and is wrong for building
x86_64 binaries on aarch64 hardware via Rosetta).
2025-12-04 07:18:34 +00:00
Martin von Zweigbergk
70fd8f7697 release: 0.36.0 2025-12-04 06:23:34 +00:00
Yuya Nishihara
3a3834d4b2 cli: do not import Git refs by comparing against stale working-copy operation
Some checks are pending
binaries / Build binary artifacts (push) Waiting to run
website / prerelease-docs-build-deploy (ubuntu-24.04) (push) Waiting to run
Scorecards supply-chain security / Scorecards analysis (push) Waiting to run
Because the Git repository should be synchronized with the head operation, we
shouldn't import Git refs compared to the stale working-copy operation.

https://github.com/jj-vcs/jj/pull/8154#discussion_r2572787677
2025-12-04 01:44:49 +00:00
Yuya Nishihara
94b9c9e69c tests: add bookmarks that will be imported by colocated update-stale
The added test shows that update-stale re-imports bookmark and abandon commit
wrongly.
2025-12-04 01:44:49 +00:00
Martin von Zweigbergk
4c8eac125e lib: derive Debug on a few more types
I wanted to do print a `TreeDiffEntry` and noticed that it didn't
implement `Debug`. This patch adds it for that type and for some
others I found.
2025-12-04 01:02:53 +00:00
Matt Stark
e698b52f2b design: Create a design doc for secure configuration for jj
Some checks are pending
binaries / Build binary artifacts (push) Waiting to run
website / prerelease-docs-build-deploy (ubuntu-24.04) (push) Waiting to run
Scorecards supply-chain security / Scorecards analysis (push) Waiting to run
2025-12-03 22:06:37 +00:00
edef
da9924c75f cli: default Gerrit --remote-branch is gerrit.default-remote-branch
Some checks are pending
binaries / Build binary artifacts (push) Waiting to run
website / prerelease-docs-build-deploy (ubuntu-24.04) (push) Waiting to run
Scorecards supply-chain security / Scorecards analysis (push) Waiting to run
gerrit.default-branch does not seem to be a real option.
2025-12-03 11:44:03 +00:00
Yuya Nishihara
26faf46dc7 cli: migrate "git push --bookmark" to parse_union_name_patterns() 2025-12-03 08:12:58 +00:00
Yuya Nishihara
331df4c990 cli: migrate "git fetch --remote" to parse_union_name_patterns() 2025-12-03 08:12:58 +00:00
Yuya Nishihara
36143b093e git: add native support for negative fetch patterns
The default patterns are still saved to and loaded from .git/config. Maybe we
can add default fetch patterns to jj's configuration, but I'm not sure whether
we should deprecate .git/config fallback.
2025-12-03 08:12:58 +00:00
Yuya Nishihara
d9be0dbfeb git: add function to extract positive/negative refspecs from StringExpression
This allows us to express negative refspecs in jj's syntax. We'll need something
like `git.fetch-tags = <patterns>` to fetch tags into remote views and merge
them accordingly #7528. The default tag patterns can't be set to .git/config
because Git processes remote tags differently.
2025-12-03 08:12:58 +00:00
Yuya Nishihara
8615362689 git: compile both positive/negative branch patterns to StringMatcher
I also renamed "branch" to "bookmark" because we call refs as "bookmark"s where
the matcher is used.
2025-12-03 07:32:25 +00:00
Yuya Nishihara
1d897341cc git: parse negative refspecs to branch patterns
We'll need negative patterns to exclude them when importing remote refs from Git
repository.
2025-12-03 07:32:25 +00:00
Yuya Nishihara
c39f685e21 tests: fix and extend default Git fetch refspecs test
This test didn't work because add_commit_to_branch() inserts refs/heads/ prefix
internally. There were no branches matching the refspecs in the remote, and just
unborn "main" existed.

Since we don't care for auto tracking nor auto import/export in this test, I
also disabled these features to make the test more predictable.
2025-12-03 07:32:25 +00:00
Yuya Nishihara
06bc9ef05d git: do refspec.to_ref() by expand_default_fetch_refspecs()
We can get allow_non_fast_forward from the instruction enum instead.
2025-12-03 07:32:25 +00:00
Yuya Nishihara
99f4774455 git: pass typed remote name from expand_default_fetch_refspecs() 2025-12-03 07:32:25 +00:00
Yuya Nishihara
bc7c1abb05 git: extract parsing function from expand_default_fetch_refspecs()
The control flow can be simplified by wrapping in -> Result function.
2025-12-03 07:32:25 +00:00
Joseph Lou
5286b2e0f5 docs: Fix remotes.<remote> config documentation
Fixed typos in the examples (`remote.<remote>` vs. `remotes.<remote>`),
and fixed some broken links.
2025-12-03 07:27:57 +00:00