Oscar Bonilla
31f71f29bf
Enable wrapping help in clap
2023-08-22 22:24:03 -07:00
Piotr Kufel
2109a7b488
Fix .gitignore handling of ignored directories
...
- Ignore .gitignore files from untracked directories
- Do not allow un-ignoring files within ignored directories
2023-08-22 22:08:32 -07:00
Waleed Khan
1633eccdca
Use { workspace = true }
to appease VS Code's Cargo.toml
parser
...
The VS Code "Better TOML" plugin (which I think most of our VS Code developers use?) doesn't support the `x.y = z` syntax at the top level, even though it's valid TOML.
This is also useful if we ever want to add additional properties in different sub-crates (although unlikely for the near future).
2023-08-22 21:38:53 -07:00
Oscar Bonilla
30c2a21a14
Fix docs for diff --stat
2023-08-22 20:38:15 -07:00
Ilya Grigoriev
6161f26a72
clippy: add some static lifetimes
...
Result of `cargo +nightly clippy --workspace --fix`.
Apparently, the current version will become illegal in a future
version of Rust.
2023-08-22 19:16:13 -07:00
Yuya Nishihara
c5b6e9705d
git: extract add_remote() function, and map git2::Error there
...
I'm going to add check for remote named "git" there.
2023-08-23 10:02:52 +09:00
Yuya Nishihara
61172b1c1e
git: on rename_remote(), check conflicts of new remote name
2023-08-23 10:02:52 +09:00
Yuya Nishihara
46dd6dd9c6
git: handle remote not found error by remove/rename_remote()
2023-08-23 10:02:52 +09:00
Yuya Nishihara
66f871c0c9
git: extract helper that maps git2::Error to NoSuchRemote
2023-08-23 10:02:52 +09:00
Yuya Nishihara
78dfec9701
git: remove unused GitExportError variants
...
Conflicted branches are no longer error, and we use the state stored in the
view.
2023-08-23 10:02:52 +09:00
Yuya Nishihara
aae9aa4a7a
doc: add plan for non-tracking branches support
...
#1136 , #1666 , #1734
2023-08-23 09:58:01 +09:00
Ilya Grigoriev
872a0932cd
cli tests: Move current_operation_id
to test_utils
2023-08-22 17:39:56 -07:00
Ilya Grigoriev
d40bde53a3
config.md: update Vim instructions to mention vimtabdiff
...
`vimtabdiff` has a few potential advantages:
- It can be much more convenient for diffs with few files
- It can be easier to set up for some people (it is a Python script rather
than a Vim plugin).
- The author accepts patches, and I hope to make it support 3-pane diff.
The pros and cons are also described in the linked Gist.
2023-08-22 15:51:18 -07:00
Martin von Zweigbergk
49fb26fdae
working_copy: write state file even if only mtimes changed
...
When the main `TreeState::snapshot()` thread doesn't receive any
updated tree entries over the channel, it correctly doesn't write a
new tree. However, it also doesn't write the working copy state file
(`.jj/working_copy/tree_state`). This resulted in performance
regression in 3f97a6da78
. From that commit, repeated snapshotting
would have to re-read all files from disk because it didn't remember
the updated mtime from the previous time.
This patch fixes the bug by also writing the file if there were any
new file states.
2023-08-22 14:45:52 -07:00
Martin von Zweigbergk
5641ef9a42
working_copy: don't send unchanged file states over channel
...
This doesn't seem to make any difference right now, but it will if we
write the state file when there are mtime-only changes, which we
currently don't do.
2023-08-22 14:45:52 -07:00
Zachary Dremann
1221e306a1
Make find_all_variables
lazy, and not allocate
...
There's no need for it to allocate the variable names, and the only place it's
currently used can benefit from returning early if `$output` is found
2023-08-22 13:15:56 -04:00
dependabot[bot]
336d00d59b
cargo: bump the cargo-dependencies group with 1 update
...
Bumps the cargo-dependencies group with 1 update: [slab](https://github.com/tokio-rs/slab ).
- [Release notes](https://github.com/tokio-rs/slab/releases )
- [Changelog](https://github.com/tokio-rs/slab/blob/master/CHANGELOG.md )
- [Commits](https://github.com/tokio-rs/slab/compare/v0.4.8...v0.4.9 )
---
updated-dependencies:
- dependency-name: slab
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-08-22 15:53:29 +00:00
Zachary Dremann
562b9d42bf
No need for Lazy in LIVE_GUARDS
...
Mutex::new and Slab::new are both const, so we can use a static mutex directly
2023-08-22 02:12:05 -04:00
Martin von Zweigbergk
e1c0d4fd5f
cleanup: replace x[n..n+l]
by x[n..][..l]
...
This avoids repeating the `n` in these expressions. Thanks to
@Dr-Emann for the suggestion.
2023-08-21 22:29:46 -07:00
Ilya Grigoriev
038867fd3f
merge_tools: Allow 3-pane diff editing
...
As discussed in https://github.com/martinvonz/jj/discussions/1905#discussioncomment-6589673
2023-08-21 20:19:15 -07:00
Ilya Grigoriev
ccd4f8e159
merge_tools: function to extract all variables from tool arguments
...
To be used in the next commit
2023-08-21 20:19:15 -07:00
Ilya Grigoriev
e743ba78b0
fake_diff_editor: Allow specifying extra arguments to be ignored
2023-08-21 20:19:15 -07:00
Ilya Grigoriev
54d4c9c475
cli_utils: reduce duplication in select_diff
2023-08-21 20:19:15 -07:00
Ilya Grigoriev
fdf1a56178
test_diffedit_command: Show that diffedit ignores unknown files
...
To me, this behavior seems a bit unexpected. We may want to fix it later
2023-08-21 19:02:19 -07:00
dependabot[bot]
1eeaafeb57
cargo: bump the cargo-dependencies group with 3 updates
...
Bumps the cargo-dependencies group with 3 updates: [clap](https://github.com/clap-rs/clap ), [serde](https://github.com/serde-rs/serde ) and [tempfile](https://github.com/Stebalien/tempfile ).
Updates `clap` from 4.3.22 to 4.3.23
- [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/v4.3.22...v4.3.23 )
Updates `serde` from 1.0.183 to 1.0.185
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.183...v1.0.185 )
Updates `tempfile` from 3.7.1 to 3.8.0
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Stebalien/tempfile/compare/v3.7.1...v3.8.0 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-dependencies
- dependency-name: serde
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-minor
dependency-group: cargo-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-08-21 09:09:47 -07:00
Martin von Zweigbergk
c43a3067eb
revset: pass all context arguments to parse()
via an object
...
`revset::parse()` already has a `RevsetWorkspaceContext` argument, so
I think it makes sense to put that and the other context arguments
into a larger `RevsetParseContext` object.
2023-08-20 21:30:06 -07:00
Martin von Zweigbergk
5f3df4aaea
revset: resolve "@" symbol's workspace id earlier (while parsing)
...
We resolve file paths into repo-relative paths while parsing the
revset expression, so I think it's consistent to also resolve which
workspace "@" refers to while parsing it. That means we won't need the
workspace context both while parsing and while resolving symbols.
In order to break things like `author("martinvonz@")` (thanks to @yuja
for catching this), I also changed the parsing of working-copy
expressions so they are not allowed to be
quoted. `author(martinvonz@)` will therefore be an error now. That
seems like a small improvement anyway, since we have recently talked
about making `root` and `[workspace]@` not parsed as other symbols.
2023-08-20 17:57:18 -07:00
Martin von Zweigbergk
f9b3211d58
revset: drop an unnecessary return
keyword
2023-08-20 17:57:18 -07:00
Preston Van Loon
ac5d8eb784
Add UTC format for timestamp formats. Thanks to @rauljordan for these changes.
...
Add tests for new UTC timestamp format
Add documentation for timestamp utc
Update CHANGELOG.md
2023-08-20 17:24:09 -05:00
Oscar Bonilla
5bd726f77d
Add jj diffs --stat option
2023-08-19 23:49:16 -07:00
Martin von Zweigbergk
c3d9ba9ca9
cli: let custom binaries add extra default configs
...
Custom binaries will often want to provide e.g. additional command
aliases, additional revset aliases, custom colors, etc. This adds a
mechanism for them to do that.
2023-08-19 06:48:29 -07:00
Yuya Nishihara
b6794ca04a
revset: rename literal:"" prefix to exact:""
...
Per discussion in #2107 , I believe "exact" is preferred.
We can also change the default to exact match, but it doesn't always make
sense. Exact match would be useful for branches(), but not for description().
We could define default per predicate function, but I'm pretty sure I cannot
remember which one is which.
2023-08-19 11:33:57 +09:00
Yuya Nishihara
ebdc22a65e
revset: add support for explicit substring:"..." prefix
...
git-branchless calls it a substring, so let's do the same.
FWIW, I copied literal:_ from Mercurial, but it's exact:_ in git-branchless.
I have no idea which one is preferred. Since this feature isn't released, we
can freely change it if exact:_ makes more sense.
https://github.com/arxanas/git-branchless/wiki/Reference:-Revsets#patterns
2023-08-19 10:32:59 +09:00
Emily Fox
2062abdc9d
templates: replace empty name and email strings with placeholders
...
New placeholders say "(no name availalbe)" and "(no email available)",
because empty strings aren't _necessarily_ a configuration issue.
2023-08-18 17:22:59 -05:00
Emily Fox
3f8ac2198d
commits: use empty strings instead of placeholders for missing name or email
...
This commit replaces the functions `UserSettings::user_name_placeholder()`` and
`UserSettings::user_email_placeholder()` with `const` `&str`s to emphasize that
the placeholder strings must not be changed to support commits without
names or email addresses made before this change.
2023-08-18 17:22:59 -05:00
Emily Fox
2c88da02b4
git: teach backend to handle empty name and email strings
2023-08-18 17:22:59 -05:00
Emily Fox
95dcb9a224
docs: use nextest
with insta
in example commands
2023-08-18 17:13:45 -05:00
Emily Fox
fde6e43aa8
CHANGELOG: more precise description of mine()
2023-08-18 17:13:45 -05:00
Alexander Potashev
7837ec1f62
docs: Fix missed paths from src->cli/src move
2023-08-18 14:35:19 +02:00
Vamsi Avula
956bd02977
templates: add placeholder label for no description
2023-08-18 11:14:45 +05:30
Benjamin Saunders
4bd05e8285
tests: hack around broken lint
2023-08-17 19:29:38 -07:00
Benjamin Saunders
417035cb20
tests: validate snapshot.max-new-file-size behavior
2023-08-17 19:29:38 -07:00
Benjamin Saunders
54f1d310c4
testutils: propagate snapshot errors
2023-08-17 19:29:38 -07:00
Benjamin Saunders
6c4b8a7383
settings: support human-readable byte sizes for max-new-file-size
2023-08-17 19:29:38 -07:00
Ben Saunders
351e7feef5
working_copy: don't snapshot new files larger than 1MiB by default
2023-08-17 19:29:38 -07:00
dependabot[bot]
32d622863a
cargo: bump the cargo-dependencies group with 4 updates
...
Bumps the cargo-dependencies group with 4 updates: [anyhow](https://github.com/dtolnay/anyhow ), [clap](https://github.com/clap-rs/clap ), [thiserror](https://github.com/dtolnay/thiserror ) and [tokio](https://github.com/tokio-rs/tokio ).
Updates `anyhow` from 1.0.74 to 1.0.75
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.74...1.0.75 )
Updates `clap` from 4.3.21 to 4.3.22
- [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/v4.3.21...v4.3.22 )
Updates `thiserror` from 1.0.46 to 1.0.47
- [Release notes](https://github.com/dtolnay/thiserror/releases )
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.46...1.0.47 )
Updates `tokio` from 1.31.0 to 1.32.0
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.31.0...tokio-1.32.0 )
---
updated-dependencies:
- dependency-name: anyhow
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-dependencies
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-dependencies
- dependency-name: thiserror
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-dependencies
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-08-17 15:37:47 +00:00
Martin von Zweigbergk
7ad2270c05
working_copy: pass Merge
, not ConflictId
, to write_conflict()
...
This is another small step towards making this code work with
tree-level conflicts.
2023-08-16 22:59:12 -07:00
Martin von Zweigbergk
1571541214
working_copy: combine blocks for updating added/modified paths
...
There's a lot of duplication between the blocks of code for updating
modified and added paths. This commit combines them.
2023-08-16 22:59:12 -07:00
Martin von Zweigbergk
01a6578ada
working_copy: move up special case for exec-bit-only change
...
This is also just to make the next change simpler.
2023-08-16 22:59:12 -07:00
Martin von Zweigbergk
8ded5ae03b
working_copy: convert Diff
into Options
for matching
...
This just a little refactoring to make the next step of sharing code
between `Modified` and `Added` simpler.
2023-08-16 22:59:12 -07:00