Commit graph

57 commits

Author SHA1 Message Date
Scott Taylor
bc4ed3eef1 demos: re-generate demo images 2025-12-20 23:12:48 +00:00
Scott Taylor
3ac3685876 demos: update demo scripts with recent changes
Since the last update, `-d` has been renamed to `-o/--onto`, the
local backend has been renamed to the simple backend, and colocation is
enabled by default.
2025-12-20 23:12:48 +00:00
Yuya Nishihara
e921791574 cli: bookmark: add --remote argument to track/untrack, deprecate name@remote
These two are the last commands which don't support logical operators in string
patterns. The old <kind>:<name>@<remote> syntax had various problems including:

 1. substring patterns look weird (e.g. `substring:x@y` means `*x*@*y*`)
 2. cannot express "all but <name> for all remotes" (e.g. `(~gh-pages)@(*)`)

In addition to that, the revset parser doesn't support `<name>@<remote>`
prefixed by `<kind>:`.

This patch introduces separate --remote argument to address these problems. The
default is `glob:*` (or `~git`), so we wouldn't have to specify the remote in
many cases. One caveat is that `jj bookmark track` is not idempotent if there
are multiple remotes:

    # there are two remotes: origin and upstream,
    # and only foo@origin exists
    $ jj bookmark track foo
    # tracks foo@origin and creates new local bookmark foo
    $ jj bookmark track foo
    # tracks absent foo@upstream as we now have a local bookmark

This is wild. We might want to add a flag or a new command to track absent
remote bookmarks to push.

"Unmatched names" warnings are now emitted for bookmark and remote names
separately. To keep the implementation simple, the search space isn't restricted
by the other parameter. For example, "jj bookmark track foo --remote=bar" won't
show a warning if "foo" exists locally or in any remote.

Closes #4260
2025-12-13 01:32:49 +00:00
Remo Senekowitsch
12b3a26f3d undo: revert progressively older operations with repeated calls
New users (especially ones unfamiliar with CLI programs) intuitively
expect `jj undo` to work the same way the "undo" functionality of
typical GUI applications do. That means, running `jj undo` multiple
times should restore progressively older states of the repository
one-by-one.

Related feature request "jj undo ergonomics":
https://github.com/jj-vcs/jj/issues/3700
2025-08-24 06:56:40 +00:00
Remo Senekowitsch
6dc5d95e0d op: revert: fix missed string during rename from op undo
I only grepped for "undo", so "undid" slipped through the cracks.
2025-08-17 23:49:54 +00:00
Remo Senekowitsch
36ee36ce78 op: undo: rename to revert
This paves the way for the semantics of `jj undo` and `jj op revert` to
evolve independently. `jj op revert` is going to stay the low-level
command to apply the inverse of any operation. The new name is
consistent with `jj revert`, which applies the inverse of a commit.

`jj undo` on the other hand is planned to become a higher-level command,
which is more similar to, say, Ctrl+Z in typical GUI applications.
Running `jj undo` repeatedly will revert progressively older operations,
allowing the user to walk backwards in time. At the same time, `jj undo`
will lose the abilitly to revert arbitrary operations, to keep its
semantics simple and intuitive.

Related feature request "jj undo ergonomics":
https://github.com/jj-vcs/jj/issues/3700
2025-08-15 21:31:15 +00:00
Siva Mahadevan
24cd079307 templates: create new git_format_patch_email_headers template
With this template, a 'git format-patch' compatible
email message can be generated using something like:

jj show --git --template git_format_patch_email_headers <rev>
2025-04-02 13:16:47 +00:00
Ilya Grigoriev
5590e9473e jj debug init-local: fixup, docs
Fixups to #5845
2025-03-05 05:52:02 +00:00
Yuya Nishihara
abf48576ea cli: replace --config-toml=TOML with --config=NAME=VALUE 2024-12-17 20:12:12 +09:00
Ilya Grigoriev
5dab5e1ce6 demos: update, replace branch with bookmark
The replacement is not purely mechanical, some text is also adjusted to
talk about bookmarks.
2024-10-14 19:49:14 -07:00
Ilya Grigoriev
d2667c52ec demos/run_script.sh: fix ImageMagick invocation
Because of changes to ImageMagick, the previous demos update increased
the png file sizes significantly. This is the fix.
2024-10-14 19:49:14 -07:00
Ilya Grigoriev
8f603f1a9c demos: fixup, working_copy.png wasn't regenerated properly
The "redacted output" wasn't properly redacted.

Also removed extraneous comment, and added a comment since
the new PNGs are larger than I expected.
2024-09-05 20:04:43 -07:00
Ilya Grigoriev
42dee7d08c demos: generate pngs 2024-09-05 17:33:46 -07:00
Ilya Grigoriev
d3b0f1b970 demos: redact one of the conflict outputs
I would prefer to shorten it instead of fully redacting, but I ran into
https://github.com/martinvonz/jj/issues/4239
2024-09-05 17:33:46 -07:00
Ilya Grigoriev
51c374e917 demo git_compat and README: repurpose the demo somewhat
It is important to mention tracking branches and listing branches. This topic is important now that `jj log` does not show branches
`jj git clone` says it fetched by default. 

The demo has become more about navigating a Git remote, so I reworded
the README accordingly, shifting the focus more to "Git remote
compatibility" and away from "We include a Git repo". Both are
important, but these skills seem important for beginners.
2024-09-05 17:33:46 -07:00
Ilya Grigoriev
1cc10783a2 demos: update demos as little as possible to regenerate them
This updates demos to the point where they can run without
warnings. Some of them become less clear, this is addressed
(where I noticed it) in follow-up commits.

Fixes #3209
2024-09-05 17:33:46 -07:00
Ilya Grigoriev
6d573ef6d7 demos: replace ImageMagkick's obsolete convert with magick
Aside: thanks to ChatGPT for helping fix the error from argument
order.
2024-09-05 17:33:46 -07:00
Rowan Walsh
742c3f6fea Fixes minor typo in script error message 2024-04-24 09:12:37 -07:00
Ilya Grigoriev
6671971c8b demos: run run_scripts.sh to update demo PNGs
The changes to SVGs would be trivial, so they got
pushed to the previous commit.
2023-10-03 23:52:28 -07:00
Ilya Grigoriev
25d65d0801 demos: changes related to the new default log revset
We remove some branches that would be shown by default and
remove `-r 'all()'` where it's no longer necessary.
2023-10-03 23:52:28 -07:00
Ilya Grigoriev
a70ea9dfdc demos: rearrange and reword portions of demos
This is mainly to account for the fact that most commands now report
more information about the state of the repo.
2023-10-03 23:52:28 -07:00
Ilya Grigoriev
0d8c5e12f8 demos: add demos/README.md and run scripts to generate SVGs
PNGs are updated in a descendant commit
2023-10-03 23:52:28 -07:00
Ilya Grigoriev
5e697dc1f3 demos: make jj perform the line wrapping instead of term-transcript
Previously, `jj` couldn't determine the terminal widths inside demos.
2023-10-03 23:52:28 -07:00
Ilya Grigoriev
926c117955 demos: run scripts in a fixed environment and record with term-transcript
Currently, there is no way provided to merely run scripts in
a fixed environment (without recording).

Short-term TODOs (done in descendant commits):
  - Fix the terminal width
  - Document the script
2023-10-03 23:52:28 -07:00
Ilya Grigoriev
eae9e3408d demos: allow broken pipe when doing jj | head, fix opid
`jj | head` exits with non-zero code since `head` breaks the
pipe. Also, removed `--color=always` from that command as it
will shortly become unnecessary.

Previosly, this caused the script to stop since it's run with
`set -o pipefail`.

Also, the operation id recovery code stopped working. We
can use `jj debug operation` for this purpose now.
2023-10-03 23:52:28 -07:00
Ilya Grigoriev
68b8069c5e demos: redirect setup commands to /dev/null
Previously, we needed to remove this manually from screenshots.
2023-10-03 23:52:28 -07:00
Ilya Grigoriev
438a4564b0 demos: rename demo_helpers.sh and demo_resolve_conflict.sh
I think it's clearer if only the actual demos started with `demo_`,
so I renamed `demo_helpers.sh` to just `helpers.sh`.

`demo_resolve_conflict.sh` should match `resolve_conflicts.png` (with an s).
2023-10-03 23:52:28 -07:00
Ilya Grigoriev
0e2579ee6a Switch graph node to use for commit instead of
This follows up on 5c703aeb03.

The only reason for this change is that, subjectively, the result looks better to me. I'm not sure why, but I couldn't get used to the old symbol in spite of its seeming reasonableness. It felt really bold and heavy.

If people agree, we can wait until we need to update the screenshots for some other reason before merging this. Sorry I didn't figure this out while the discussion about the referenced commit was going on.

I'm not 100% certain how many fonts support each symbol. Please try it out and let me know if it doesn't work for you.

Compare after:

![image](https://user-images.githubusercontent.com/4123047/229251383-563b889d-7233-42e2-a3c5-bf9368a4d1fd.png)

and before:

![image](https://user-images.githubusercontent.com/4123047/229251695-7fd0ff2c-2832-4262-ade5-5120288cccdf.png)
2023-04-02 23:15:37 -07:00
Martin von Zweigbergk
5c703aeb03 cli: replace o as graph node by when using unicode graph
@joyously found `o` confusing because it's a valid change id prefix. I
don't have much preference, but `●` seems fine. The "ascii",
"ascii-large", and "legacy" graph styles still use "o".

I didn't change `@` since it seems useful to have that match the
symbol used on the CLI. I don't think we want to have users do
something like `jj co ◎-`.
2023-03-12 23:21:05 -07:00
Martin von Zweigbergk
cb86efac61 demos: clarify command for finding operation to undo
The command grepped for 'o ' and picked the third line. That was meant
to match the graph nodes only, but it also matched the 'jj co master'
line. Let's match only 'o' at the beginning of the line, and throw in
another space for good measure (since that's what we get from the new
default graph style from Sapling).
2023-03-12 23:21:05 -07:00
Martin von Zweigbergk
e76492b5e9 demos: minor changes to operation log demo 2023-02-15 00:25:56 -08:00
Martin von Zweigbergk
91775fc4f6 demos: update with recent changes
I had to modify the operation log a bit to fit on my scren with #1221
fixed.

Closes #1221.
2023-02-14 22:12:23 -08:00
Martin von Zweigbergk
73ce048256 demos: add blank line at the end
This makes it slightly easier to take a screenshot without getting the
cursor character from the shell input line just below.
2023-02-14 22:12:23 -08:00
Martin von Zweigbergk
d87f49ce5f demos: remove unnecessary sleeps 2023-02-14 22:12:23 -08:00
Martin von Zweigbergk
50ba571527 log: move commit ID off to the right
We have talked about showing the commit ID only for divergent changes
because it's generally easier to work with the change ID, and it's
less likely to result in a divergent change. However, it's useful to
have the commit ID available for pasting into e.g. a commit message or
the GitHub UI. To try to steer users towards using the change ID, this
commit moves the commit ID off to the right in the log output.

I put it just after the "divergent" field, because that makes it close
to how I imagine it would look if we decided to hide the commit ID
except for divergent changes. I was thinking that could be rendered as
"divergent (abc123)". So if we add config to hide the commit ID, then
it would be rendered almost the same for divergent commits (just with
the added parentheses). It would also make sense to replace the
"divergent" field by a question mark on the change ID, since change
IDs basically behave like branches. If we do that, then the placement
of the commit ID I picked in this commit does not make sense.
2022-11-14 07:49:52 -08:00
Martin von Zweigbergk
f86455a452 demos: allow running without ui.allow-init-native = true
We need to use the native backend here because of #27, but we
shouldn't require the user running the script to have it in their
config.
2022-11-14 00:25:24 -08:00
Martin von Zweigbergk
5a4c463dc0 tests: avoid about-to-be-deleted close command 2022-11-05 06:14:37 -07:00
Martin von Zweigbergk
986fced69e demos: replace asciinema by screenshots
The demos don't need to be animated - the user wouldn't miss anything
if they skipped to the end. So let's just show the full output so the
user can read through it at their own pace. We could use plain text,
but I think the colors are helpful, so I went with screenshots.

Closes #166.
2022-10-21 06:04:31 -07:00
Martin von Zweigbergk
a15192c05b docs: update to use new jj branch syntax 2022-06-09 22:24:46 -07:00
Martin von Zweigbergk
71c789f50b cli: make log show only local commits by default
The default log output of showing all commits is not very useful when
contributing to an existing repo. Let's have it default to showing
commits not on any remote branch instead. I think that's the best we
can do since we don't have a configurable main branch yet, and we
don't even have per-repo configuration..

Closes #250.
2022-05-14 11:50:05 -07:00
Martin von Zweigbergk
5bad272e90 docs: update stale references to -o argument deleted in 8744015f33 2022-05-01 16:33:27 -07:00
Martin von Zweigbergk
d9b364442e cleanup: update references to .jj/store/git to .jj/repo/store/git
The `store/` directory (and many others) recently moved into
`.jj/repo/`, but I forgot to update a few places.
2022-02-17 22:44:14 -08:00
Martin von Zweigbergk
798b4bc897 demos: add demo showing how conflicting commits can be rebased etc 2021-11-07 15:17:51 -08:00
Martin von Zweigbergk
bf64f89521 demos: update conflict-resolution demo with recent changes
Conflicts are now preserved in the working copy until their conflict
markers are gone (they used to be considered resolved).
2021-11-07 15:17:51 -08:00
Martin von Zweigbergk
98337e819d demos: add more jj log calls to the working-copy demo
Thanks to @arxanas for the suggestion.
2021-10-27 21:16:29 -07:00
Martin von Zweigbergk
571336b827 demos: add some blank lines to separate groups of commands (and comments) 2021-10-27 16:55:59 -07:00
Martin von Zweigbergk
04e54b093d demos: make comment lines shorter, to better fit on mobile 2021-10-27 16:09:01 -07:00
Martin von Zweigbergk
6687f98d8a cli and docs: replace "id" by more correct "ID" 2021-10-27 15:06:10 -07:00
Martin von Zweigbergk
c661181e08 demos: add demo of basic conflict resolution 2021-10-23 14:40:33 -07:00
Martin von Zweigbergk
78050b3d42 demos: add a --fast mode to speed up recording
It can take quite a while to record a demo. This patch adds a `--fast`
flag for reducing delays to a tenth of the usual. You can play the
recording with `asciinema play -s 0.1` to get close-to-normal speed
(except that command delays will be slower). That way you can adjust
timings with shorter round-trips.
2021-10-23 14:21:15 -07:00