Commit graph

6489 commits

Author SHA1 Message Date
Yuya Nishihara
844e6684bd cli: branch: remove inconsistent "pub"s from Args fields 2024-06-20 17:00:34 +09:00
Yuya Nishihara
d640645d7b cli: branch: sort cmd_branch() match arms 2024-06-20 17:00:34 +09:00
Yuya Nishihara
d2d0041333 cli: branch: rename local sub_args to args
There are no other "args" in this context.
2024-06-20 17:00:34 +09:00
Yuya Nishihara
b9c2daa408 cli: branch: move command fn next to Command/Args type 2024-06-20 17:00:34 +09:00
Yuya Nishihara
9e35b9b218 cli: branch: split to per-command module files
This is another big subcommand module. Let's split it up.

I'm not a big fan of r#move syntax, but we already have one in src/commands,
so there's no point to avoid it.
2024-06-20 17:00:34 +09:00
Martin von Zweigbergk
494de23ea5 revset: clarify error about missing working-copy commit for workspace
The error message that says something like 'Workspace "default"
doesn't have a working copy' confused me when I saw it. The problem
it's describing is that the repo view doesn't have a working-copy
commit for the given workspace id. Saying "working-copy commit"
instead of "working copy" hopefully clarifies it a bit.
2024-06-20 16:21:58 +09:00
Yuya Nishihara
68b8b1a6a6 cli: rename "debug workingcopy" to "debug working-copy"
I think "working-copy" is more readable. It's a debug command, so we can freely
rename it.
2024-06-20 09:55:18 +09:00
Yuya Nishihara
567f0db734 cli: move cmd_git() dispatcher function next to GitCommand enum 2024-06-20 09:55:18 +09:00
Yuya Nishihara
e5a3d6a2ba cli: sort debug/git subcommands lexicographically 2024-06-20 09:55:18 +09:00
Matt Kulukundis
33ab8d4371 cli: Add an option to diff to output only paths. 2024-06-19 20:27:51 -04:00
Yuya Nishihara
f8b87f6499 diff: rewrite find_line/nonword_ranges() by using iterator adapters
I don't think .scan() is descriptive name, but it looks slightly better than
placing accumulator out of the closure.
2024-06-20 08:46:26 +09:00
Yuya Nishihara
5f2f13a876 diff: simply pass tokenizer Fn by value 2024-06-20 08:46:26 +09:00
Austin Seipp
be411de8f6 cargo: run full cargo update
Reissue of https://github.com/martinvonz/jj/pull/3892 now that we have updated
to `watchman_client` 0.9, which should fix this issue based on reading the
source code.
2024-06-19 18:38:26 -05:00
Martin von Zweigbergk
31b8f07fa0 docs: hyphenate "community-built" 2024-06-20 05:34:02 +09:00
Martin von Zweigbergk
2cdb767991 docs: explain that jj was started 3 years before Sapling announcement
Someone at work asked me why I started jj when Sapling already
existed. Let's clarify that I started it before.
2024-06-20 05:24:28 +09:00
Martin von Zweigbergk
9257d0946e docs: use bullet lists in revset examples to save vertical space 2024-06-20 05:21:03 +09:00
Matt Kulukundis
3e7ad4d23c Add jj debug snapshot command and use it in trigger
The command only takes a snapshot and avoids other overhead, so it can
be used as a target for the watchman trigger that gets installed.
2024-06-19 11:30:27 -04:00
Martin von Zweigbergk
3ebad154ca docs: add examples for some revset functions too 2024-06-19 19:57:22 +09:00
Matt Kulukundis
95fbf9f3d0 Switch from a private extension to the newly release 0.9.0 2024-06-18 23:14:22 -04:00
Matt Kulukundis
bbe71626ee Split jj debug command into multiple files 2024-06-18 21:23:18 -04:00
Matt Kulukundis
2364cf2c21 Split all git commands into separate files
Moved commands are `git clone`, `git export`, `git fetch`, `git import`,
`git init`, `git push`, `git remote`, and `git submodule`.
2024-06-18 19:16:24 -04:00
Ilya Grigoriev
a6d470dbc3 docs revsets.md: fixup 4d08c2c
This makes the examples in
https://martinvonz.github.io/jj/prerelease/revsets/#operators render
properly at the cost of worse (but readable) rendering on GitHub.

Also fixes a typo.
2024-06-17 22:58:25 -07:00
Yuya Nishihara
b8e921eeae cli: branch: add "move" command that can update branches by revset or name
This basically supersedes the current "branch set" command. The plan is to turn
"branch set" into an "upsert" command, and deprecate "branch create". (#3584)
Maybe we can also add "branch set --new" flag to only allow creation of new
branches. One reason behind this proposed change is that "set" usually allows
both "creation" and "update". However, we also need a typo-safe version of
"set" to not create new branches by accident.

"jj branch move" is useful when advancing ancestor branches. Let's say you've
added a couple of commits on top of an existing PR branch, you can advance the
branch by "jj branch move --from 'heads(::@- & branches())' --to @-". If this
pattern is super common, maybe we can add --advance flag for short.

One drawback of this change is that "git branch --move" is equivalent to
"jj branch rename". I personally don't find this is confusing, but it's true
that "move" sometimes means "rename".
2024-06-18 12:48:32 +09:00
Yuya Nishihara
b52b0646c2 cli: branch: restore is_fast_forward() function
This basically backs out 8706fadca1 "cli: inline check for
non-fast-forwardable branch move." I'm going to add another subcommand that
moves existing branches.
2024-06-18 12:48:32 +09:00
Martin von Zweigbergk
3b447703e5 github: run CI on push, not only on PRs
By running CI on push to any branch, collaborators can check that CI
passes before sending for review, reducing mail spam and wasted
reviewer time before the code is ready.
2024-06-18 11:29:04 +09:00
Yuya Nishihara
4ab1fc9bfe cli: file: sort subcommands chronologically
Otherwise they wouldn't be sorted in help. I also reordered the match statement.
Since subcommands are split to per-file modules, there's no point to keep some
logical ordering.
2024-06-18 10:45:06 +09:00
Martin von Zweigbergk
a861baecbf changelog: remove mention of jj file cat/ls aliases
These two aliases didn't survive code review.
2024-06-18 10:24:54 +09:00
tp-woven
1cf53a25f4 Update CHANGELOG.md
Fix config flag name in changelog.
2024-06-18 09:51:49 +09:00
dependabot[bot]
599c2da37b build(deps-dev): bump urllib3 from 2.2.1 to 2.2.2
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.2.1 to 2.2.2.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.2.1...2.2.2)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-18 09:47:56 +09:00
Yuya Nishihara
8e5671975c ui: remove Option<_> wrapping from ui.hint_() helpers
It's cumbersome to unwrap the Option just to print a short hint message. Let's
send the message to null output instead.
2024-06-18 09:37:23 +09:00
Yuya Nishihara
a162e4f1a4 cli: don't reuse ui.hint_default() instance to print multiple hints
ui.hint_*() calls will be inlined by the next commit.
2024-06-18 09:37:23 +09:00
Yuya Nishihara
1ab0c91e51 cli: inline labeling of trackable remote branches hints
This makes it clear that these hints are printed only if status output is
enabled.
2024-06-18 09:37:23 +09:00
Yuya Nishihara
b9e29b009d formatter: add .labeled().with_heading() helper
I'm going to add a few callers of .with_heading() outside of ui.rs.
2024-06-18 09:37:23 +09:00
Yuya Nishihara
57022d6f04 ui: replace qualified std::io path
The "io" module is imported.
2024-06-18 09:37:23 +09:00
Matt Kulukundis
5d307e628b cli: create jj file list and deprecate jj files 2024-06-17 14:13:36 -04:00
Philip Metzger
30f54862dd docs: Add a page for community built tools.
Thank you all for building tools around it.
2024-06-17 19:47:13 +02:00
Matt Kulukundis
47bd6f4aa4 feat: Create a file command containing print and chmod
- rearrange the files involved to be more clear about structure
- deprecate existing `jj cat` and `jj chmod`
2024-06-17 12:17:49 -04:00
Yuya Nishihara
2de73f57fc conflicts: remove redundant information from ReadFile error
The ReadFile error message already says "when reading file content for file
{path}..".
2024-06-17 15:36:06 +09:00
Martin von Zweigbergk
f8a5ad0c7a conflicts: propagate error from conflict materialization 2024-06-17 14:33:29 +09:00
Martin von Zweigbergk
66e45a7a17 conflicts: inline materialize()
The function has no callers outside the module anymore (probably since
`MaterializeTreeValue` but I haven't checked). Inlining it will help
keep error handling simple in the next commit. Otherwise we'd need to
have it return an error type wrapping both `BackendError` and
`io::Error`.
2024-06-17 14:33:29 +09:00
Martin von Zweigbergk
ca1f19736c working_copy: drop "Internal backend error" message from error
I don't think the message adds anything over what the `BackendError`
itself provides, so let's use `transparent` instead.

I also dropped the `Internal` prefix from the variant because that
also didn't seem to add anything.
2024-06-17 14:33:29 +09:00
Matt Kulukundis
8aa71f58f3 feat: add an option to monitor the filesystem asynchronously
- make an internal set of watchman extensions until the client api gets
  updates with triggers
- add a config option to enable using triggers in watchman

Co-authored-by: Waleed Khan <me@waleedkhan.name>
2024-06-16 23:24:22 -04:00
Martin von Zweigbergk
4d08c2cce8 docs: include examples for operators
There's been a lot of questions about the subtle differences between
`..` and `::`. I hope these examples will help with that.

We should also add examples to the revset functions (e.g. `heads()` is
not obvious how it works), but that can come later.
2024-06-17 12:23:46 +09:00
Martin von Zweigbergk
182cf6d5e2 docs: explain what .. etc are shorthand for
`..` is shorthand for `root()..visible_head()`, for example. We don't
seem to explain that anywhere. I hope mentioning that will help
readers understand the relationship between the shorthands and the
full `x..y`, and also to see the correspondence between `..` and `::`
(in how their default left and right operands are the same).
2024-06-17 12:23:46 +09:00
Ilya Grigoriev
ce0c53796c test_generate_cli_reference: fixup to 52c415e, remove mysterious comment
If I can't tell what this comment means, probably nobody else can
either.

I think it might be a copy-paste error from whatever docs I copied the
initial version of the config from.
2024-06-15 20:30:40 -07:00
Ilya Grigoriev
5cbe8d2499 test_generate_cli_reference: Fixup to 16ec185
That old commit made a piece of documentation obsolete, but
I didn't realize it at the time.
2024-06-15 20:30:40 -07:00
Ilya Grigoriev
4a63506e9f docs CLI Reference: make the warning in the beginning less scary
I am currently not aware of any severe differences between the generated
markdown and `jj help`, though this could change if we look over the
text carefully or if we start using `clap` features we weren't using
before.
2024-06-15 20:30:40 -07:00
Ilya Grigoriev
e0af9a0c2c docs CLI Reference: upgrade clap-markdown to 0.1.4
Fixes important bugs. 🎉
2024-06-15 20:30:40 -07:00
Ilya Grigoriev
71d832b878 Add Unicode-3.0 to allowed licenses
Without this, `cargo deny` fails after a `cargo update`
(https://github.com/martinvonz/jj/actions/runs/9531433728/job/26272377250?pr=3892
failed, but once it includes this commit, #3892 no longer has a `cargo
deny` failure. The windows failure is unrelated))
2024-06-15 16:48:43 -07:00
Martin von Zweigbergk
a9953b3fb0 cli: deprecate jj split --siblings in favor of jj split --parallel
This better matches `jj parallelize`.
2024-06-15 22:45:34 +09:00