Commit graph

6552 commits

Author SHA1 Message Date
Yuya Nishihara
ddeb10b3f3 cli: branch: drop support for deprecated --glob option
It's been 8 months since the option got deprecated by 8dbe12da2a.
2024-06-21 09:43:23 +09:00
Yuya Nishihara
adcd78a0b7 cli: sort config/sparse subcommands in lexicographical order 2024-06-21 09:43:14 +09:00
Yuya Nishihara
78dba90ac8 cli: sort match arms in run_command() 2024-06-21 09:43:14 +09:00
Yuya Nishihara
ef9633135e cli: rename derived_subcommands to subcommand, remove redundant type annotation
I don't think "derived" here makes much sense.
2024-06-21 09:43:14 +09:00
Yuya Nishihara
20f1ba5a08 cli: rename "sub_args" variables to "args"
Just for consistency.
2024-06-21 09:43:14 +09:00
Yuya Nishihara
026d83b61f cli: rename SparseArgs to SparseCommand 2024-06-21 09:43:14 +09:00
Philip Metzger
de022aeaa7 next/prev: Implement next/prev --conflict
This allows users to jump to the next conflict in the ancestors or children of 
the start commit.

Continues work on #2126

Co-Authored-By: Noah Mayr <dev@noahmayr.com>
2024-06-20 23:29:41 +02:00
Philip Metzger
0d9000271e lib: Add RevsetExpression::filtered().
This allows users to easily filter a commit range by conflicts, which will be needed for `next/prev`
further down in the next commit. Users which benefit from it were also migrated.
2024-06-20 23:29:41 +02:00
Matt Kulukundis
c9b3d64ce5 Add background snapshotting info to debug watchman status. 2024-06-20 16:09:06 -04:00
Austin Seipp
397e96f9ae cli: let jj git push --change handle large revsets
In a repo of mine I wanted to do something like the following to push all of my
leaves to the remote as backup:

    jj git push -c 'all:heads(base::) & mine() ~ empty()'

But couldn't, because `jj git push` doesn't handle large revsets, even though
it does handle multiple `-c` arguments, so I had to work out some pipe-to-xargs
command instead.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
2024-06-20 11:40:55 -05:00
Austin Seipp
aab82cd641 cli: print out short change ids with jj git push --change
The follow up diff will make `-c` accept large revsets, so it won't make any
sense to print out the original expression when multiple branches will be
created from it.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
2024-06-20 11:40:55 -05:00
Yuya Nishihara
5988a00ae4 cli: branch: reject empty branch name consistently by "set"
Though "branch set" can't create new branch, this should provide a better error
message.
2024-06-20 17:00:34 +09:00
Yuya Nishihara
d4e64c46b4 cli: branch: remove trailing period from command/arg summary lines
That's the convention of clap.
2024-06-20 17:00:34 +09:00
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