8719 Commits

Author SHA1 Message Date
Yuya Nishihara
7404338362 git: replace remaining caller of old parse_git_ref() 2025-03-23 11:02:49 +00:00
Yuya Nishihara
f6800787ed git: inline parsing of remote default branch
This should be simpler than using parse_git_ref_inner(), and we'll drop git2
support anyway.
2025-03-23 11:02:49 +00:00
Yuya Nishihara
8ed9c36377 git: in import_refs(), use sorted vec as map of bookmarks/tags
For consistency with export_refs().

changed_git_refs doesn't have to be sorted, but the sorting cost wouldn't matter
in practice.
2025-03-23 01:32:29 +00:00
Yuya Nishihara
b6419ca790 git: in import_refs(), split known remote bookmarks/tags maps
It's simpler, and more consistent with export_refs().
2025-03-23 01:32:29 +00:00
Yuya Nishihara
ddaa909977 git: extract inner loop that compares known refs and actual refs to import
I'll split known_remote_refs to bookmarks and tags, and the input Git refs
iterators are also filtered by ref types.
2025-03-23 01:32:29 +00:00
Yuya Nishihara
7d59d0564e git: use translated remote symbols in export_refs()
I also made to_git_ref_name() stricter as it seemed odd that empty tag name and
remote name were allowed.
2025-03-23 01:32:29 +00:00
Yuya Nishihara
c3a32c4265 git: in export_refs(), use sorted Vec as map of bookmarks
I'm going to change the key type from RefName to RemoteSymbolBuf, but the std
BTreeMap/HashMap doesn't support lookup by un-Borrow-able ref types. We can use
hashbrown::HashMap, but there aren't popular alternative for ordered maps.
Since we don't need random insertion and lookup, we can simply use Vec.
2025-03-23 01:32:29 +00:00
Yuya Nishihara
5ae63a2355 tests: port test_gitignores.rs to TestWorkDir API 2025-03-23 01:31:28 +00:00
Yuya Nishihara
0d8aeee3e5 tests: port test_git_remotes.rs to TestWorkDir API 2025-03-23 01:31:28 +00:00
Yuya Nishihara
d5226aad0a tests: port test_git_push.rs to TestWorkDir API 2025-03-23 01:31:28 +00:00
Yuya Nishihara
b80e5e07b8 tests: port test_git_private_commits.rs to TestWorkDir API 2025-03-23 01:31:28 +00:00
Yuya Nishihara
1466bce13c tests: move instantiation out of set_up() in test_git_{private_commits,push}.rs
set_up() doesn't have to create TestEnvironment by itself, and the local
TestWorkDir will borrow &test_env.
2025-03-23 01:31:28 +00:00
Yuya Nishihara
7583b9108e tests: port test_git_init.rs to TestWorkDir API 2025-03-23 01:31:28 +00:00
Yuya Nishihara
c2f2461b5f cli: truncate list of newly conflicted commits
If there are hundreds of new conflict commits, the user wouldn't want to see all
of them.
2025-03-23 01:31:22 +00:00
Yuya Nishihara
00c2d15f29 cli: do not print commit summary for previously-conflicted commits
I usually don't read these messages carefully, and the red "(conflict)" label
looked scary. Suppose we don't have to take further action on resolved commits,
I don't think we need to print commit summary for each resolved commit.
2025-03-23 01:31:22 +00:00
Yuya Nishihara
e52ddda98f conflicts: pack MaterializedTreeValue::File fields, use read_all() helper
This pattern is common.
2025-03-23 01:31:15 +00:00
Yuya Nishihara
a1eff5057a conflicts: extract MaterializedFileValue type from absorb
The interface is slightly adjusted because it wouldn't make much sense that
generic read_all() method returned BString.
2025-03-23 01:31:15 +00:00
Yuya Nishihara
9a615b5b62 config: relax bare string rule to accept middle apostrophes, etc.
Closes #5748
2025-03-22 09:00:44 +00:00
dependabot[bot]
78239ee133 github: bump astral-sh/setup-uv in the github-dependencies group
Bumps the github-dependencies group with 1 update: [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv).


Updates `astral-sh/setup-uv` from 5.3.1 to 5.4.0
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](f94ec6bedd...22695119d7)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-22 06:27:03 +00:00
Caleb White
caf172f651 templates: create builtin_draft_commit_description template
This moves the default template to `builtin_draft_commit_description` and
points `draft_commit_description` to it. This makes it easier to override
the template while still being able to refer to the default.
2025-03-22 02:06:10 +00:00
Martin von Zweigbergk
1a98a73ae4 fix: avoid an unnecessary clone 2025-03-21 19:56:26 +00:00
Martin von Zweigbergk
be0ad55309 doc: update some references to "the native backend" 2025-03-21 16:27:51 +00:00
Yuya Nishihara
ca616fade2 tests: port test_git_import_export.rs to TestWorkDir API 2025-03-21 01:19:20 +00:00
Yuya Nishihara
569a405cea tests: port test_git_fetch.rs to TestWorkDir API 2025-03-21 01:19:20 +00:00
Yuya Nishihara
64f8661f0f tests: port test_git_colocated.rs to TestWorkDir API 2025-03-21 01:19:20 +00:00
Yuya Nishihara
a36bf18a57 tests: port test_git_clone.rs to TestWorkDir API
In test_git_clone.rs, it's common to execute "jj git clone" or do file operation
at the root directory. This patch adds root_dir: &TestWorkDir references for
that reason. We might want to somehow merge root_dir and test_env later.
2025-03-21 01:19:20 +00:00
Austin Seipp
2c074702e9 github: bump binaries timeout limit
Like the CI runners, I've occasionally seen spikes where binary builds
on 'main' were failing. Bump a little bit to avoid that.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
2025-03-20 23:04:20 +00:00
Austin Seipp
fc8de6006b github: bump timeout to 20 minutes
We're well under the 15 minute limit at this point at the p90 case, but it
seems like the p99 build tends to run into ~10minute spikes due to underlying
runner anomalies (oversaturation?)

Let's go ahead and use a timeout of 20 minutes to give it a little more slack.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
2025-03-20 23:04:20 +00:00
Austin Seipp
4b28aaa8c6 Back out "github: only run dependabot workflow on dependabot/** branches"
This might be the cause of dependabot PRs not having automerge. Let's
just revert it and see what happens when the next PRs roll in.

This backs out commit 47cd10669de28ecc36f0d7dbbb9964945124b730.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
2025-03-20 19:10:45 +00:00
dependabot[bot]
d83cc1d97e cargo: bump the cargo-dependencies group with 2 updates
Bumps the cargo-dependencies group with 2 updates: [clap_complete](https://github.com/clap-rs/clap) and [tempfile](https://github.com/Stebalien/tempfile).


Updates `clap_complete` from 4.5.46 to 4.5.47
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.46...clap_complete-v4.5.47)

Updates `tempfile` from 3.19.0 to 3.19.1
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Stebalien/tempfile/compare/v3.19.0...v3.19.1)

---
updated-dependencies:
- dependency-name: clap_complete
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-dependencies
- dependency-name: tempfile
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-20 17:48:20 +00:00
dependabot[bot]
71e225ad0c github: bump the github-dependencies group with 2 updates
Bumps the github-dependencies group with 2 updates: [actions/upload-artifact](https://github.com/actions/upload-artifact) and [taiki-e/install-action](https://github.com/taiki-e/install-action).


Updates `actions/upload-artifact` from 4.6.1 to 4.6.2
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](4cec3d8aa0...ea165f8d65)

Updates `taiki-e/install-action` from 2.49.30 to 2.49.32
- [Release notes](https://github.com/taiki-e/install-action/releases)
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md)
- [Commits](37bdc826ea...351cce3d3a)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-dependencies
- dependency-name: taiki-e/install-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-20 17:20:15 +00:00
Caleb White
680c41c30f signing: add gpgsm backend
The adds support for PKCS#12 certificates through the `gpgsm` backend.

Closes #5856
2025-03-20 17:01:39 +00:00
Raphael Borun Das Gupta
d1242635c6 docs: fix spelling of «NixOS»
The name «NixOS» doesn't have a space in it.
2025-03-19 22:46:34 +00:00
Fedor Sheremetyev
364ece09e0 signing: Don't show console on Windows
When used inside GUI application, enabling GPG or SSH signing causes console window to appear temporarily.

std::process::Command needs special flags to prevent that. More details: https://stackoverflow.com/a/60958956
2025-03-19 18:40:16 +00:00
Fedor Sheremetyev
a028e4a03a git: Don't show console on Windows
When used inside GUI application, git.subprocess=true option causes console window to appear temporarily.

std::process::Command needs special flags to prevent that. More details: https://stackoverflow.com/a/60958956
2025-03-19 18:40:16 +00:00
Martin von Zweigbergk
bdbb7afbbb protos: finish local_store->simple_store migration from f8ab8a0e 2025-03-19 17:32:02 +00:00
dependabot[bot]
abd6b22e92 github: bump github/codeql-action in the github-dependencies group
Bumps the github-dependencies group with 1 update: [github/codeql-action](https://github.com/github/codeql-action).


Updates `github/codeql-action` from 3.28.11 to 3.28.12
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](6bb031afdd...5f8171a638)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-19 16:26:37 +00:00
Yuya Nishihara
9f867b6fac tests: port test_fix_command.rs to TestWorkDir API 2025-03-19 14:52:52 +00:00
Yuya Nishihara
602799afae tests: inline init_with_fake_formatter() to callers 2025-03-19 14:52:52 +00:00
Yuya Nishihara
5647113cbd tests: extract helper that configures fake "fix" formatter 2025-03-19 14:52:52 +00:00
Yuya Nishihara
1769b14995 tests: port test_file_track_untrack_commands.rs to TestWorkDir API 2025-03-19 14:52:52 +00:00
Yuya Nishihara
6f31ba9042 cli: git-push: use RemoteRefSymbol to format and pass name@remote around
This ensures that remote symbols are printed with quoting as needed. Local
bookmark names aren't quoted, which will be fixed separately by introducing
RefName(str) newtype.
2025-03-19 14:28:56 +00:00
Yuya Nishihara
8ae605703e cli: git-push: rename bookmark name/remote variables, bind reference
I'm going to replace (name, remote) pair with RemoteRefSymbol. The underlying
name types will also be changed to RefName/RemoteName newtypes.
2025-03-19 14:28:56 +00:00
Emily
8052b62f2e github: use native builder for x86 macOS
This shaves over 3½ minutes off the tests, taking this from the
slowest job to faster than Windows again. The macOS 13 builders
presumably won’t be around forever, and the newer free builders are
all Apple Silicon, but this is an easy substantial improvement for now.
2025-03-19 14:07:02 +00:00
Yuya Nishihara
f37f927bc2 cli: abandon: remove --summary flag, just print elided list
AFAICT, this option was needed when we're going to abandon hundreds of commits.
However, I typically notice that I had to use --summary to suppress the output
after the fact. Since the list is now truncated up to 10 commits, I don't think
the --summary flag is useful anymore. This patch also removes the special case
for 1 item, which existed primarily for overriding --summary.
2025-03-19 05:32:26 +00:00
Yuya Nishihara
976f3585e1 cli: truncate list of abandoned/created/updated commits
The choice of the upper limit is arbitrary. We use 5 in "multiple revisions"
error, but I feel 5 would be too small for "jj absorb", where the stack of
mutable commits may be ~10, but wouldn't likely be ~100s.
2025-03-19 05:32:26 +00:00
Yuya Nishihara
f07203cb3b cli: extract helper that prints list of indented commit summary 2025-03-19 05:32:26 +00:00
Yuya Nishihara
3b083f914c tests: port test_file_show_command.rs to TestWorkDir API 2025-03-19 01:47:00 +00:00
Yuya Nishihara
9e04e60594 tests: port test_file_chmod_command.rs to TestWorkDir API 2025-03-19 01:47:00 +00:00
Yuya Nishihara
ae5e717d4e tests: port test_file_annotate_command.rs to TestWorkDir API 2025-03-19 01:47:00 +00:00