Commit Graph

1074 Commits

Author SHA1 Message Date
Steve Klabnik
7da170d53f docs: mention ?? means 'divergence'
While divergence is talked about in the documentation, few places actually
mention how divergent changes are displayed. I've added such notes to the help
out put of `jj log`, the glossary, and added an example to the guide we have on
divergence.

Fixes #6365
2025-12-08 21:09:51 +00:00
Ian Wrzesinski
bcfd5c977c config: Add "exec-bit-change" setting for overriding policy on Unix 2025-12-04 17:32:40 +00:00
Martin von Zweigbergk
70fd8f7697 release: 0.36.0 2025-12-04 06:23:34 +00:00
Matt Stark
e698b52f2b design: Create a design doc for secure configuration for jj 2025-12-03 22:06:37 +00:00
Yuya Nishihara
26faf46dc7 cli: migrate "git push --bookmark" to parse_union_name_patterns() 2025-12-03 08:12:58 +00:00
Joseph Lou
5286b2e0f5 docs: Fix remotes.<remote> config documentation
Fixed typos in the examples (`remote.<remote>` vs. `remotes.<remote>`),
and fixed some broken links.
2025-12-03 07:27:57 +00:00
Tommi Virtanen
185c65482b docs: GitBackend uses gitoxide not git2
See #5548 for git2 deprecation.
2025-12-03 05:55:42 +00:00
Philip Metzger
ae0ff17c25 docs: delete a dead TODO and sort some links
Delete the dead reference to bwb's cultivate which no longer is actively worked on since
in the mean time ersc was founded. Also sort the links in the doc.
2025-12-02 21:23:14 +00:00
Velociraptor115
c1b7a6ea52 template: Add support for per-file diff stats
The primary benefit of this change is that it splits
"lines_added()" and "lines_removed()" into separate fields,
which will be useful for tools.

Many tools use "status()", "lines_added()", "lines_removed()",
"source()" and "target()" to show useful information about
every file modified in a commit.

The existing diff stats summary shows only the combined 
number of lines modified, along with a "percentage" representation
of line additions vs. deletions. This is lossy and not
useful for tools, since it is impossible to arrive at
the exact number of lines added and deleted.
2025-12-02 12:59:00 +00:00
Hubert Lefevre
42a713b5e4 docs: Move jj fix configuration documentation to config.md
In order to write config settings of tools for jj fix, you needed
information that were split in the `jj fix --help` text and
`jj help -k config` (or the respective web-pages).

Move every bit of information that is important to know to write
`jj fix` configurations in the config page. This avoid to have to
maintain the information up-to-date in two places.

Organize the help text of `jj fix` with several chapters.
2025-12-01 08:57:35 +00:00
Yuya Nishihara
4518bd14b4 docs: add example of using $PAGER variable if set
#8159
2025-12-01 01:13:19 +00:00
Martin von Zweigbergk
5215a643b3 glossary: avoid saying "the latest version of a revision"
Since we use "revision" and "commit" as synonyms, it's confusing to
say that "the latest version of revision".

Closes #7912.
2025-11-30 18:49:04 +00:00
Stephen Jennings
eb64739ede docs: Add Jujutsu for Git experts 2025-11-28 06:08:41 +00:00
QingyaoLin
f3a749fbff docs: update nushell completion 2025-11-26 15:20:37 +00:00
Steve Klabnik
5b3aa51140 docs: jj-vcs.github.io -> jj-vcs.dev
As a follow-up to #8115, this moves all references in the codebase to use the new website.

I didn't update the older CHANGELOG entries because I figured they're intended
to be immutable.
2025-11-26 00:36:39 +00:00
Joseph Lou
0563f4f559 docs: Add myself as a paid contributor 2025-11-25 21:28:19 +00:00
Martin von Zweigbergk
7f28aad17d docs: fix some typos
Most of these were noticed by @omahs (thanks). I also fixed another
instance of "the the".
2025-11-25 20:27:59 +00:00
Gaëtan Lehmann
00da178ed0 doc: use metaedit to generate a new change-id 2025-11-25 07:43:16 +00:00
Joseph Lou
0b8ecd5c63 template: Add join() function
Sometimes it's useful to add a separator between every argument, even if
it's empty.
2025-11-24 15:47:24 +00:00
Vincent Ging Ho Yim
bdd0302b11 docs/FAQ: fix Markdown heading level 2025-11-24 15:35:20 +00:00
Yuya Nishihara
c93682f218 revset: parameterize default string pattern kind, add config knob
Glob patterns will be enabled by default globally. Since this will be a big
breaking change in revsets, this patch adds a config knob to turn the new
default on/off.
2025-11-24 01:39:32 +00:00
Yuya Nishihara
3f88ea78f1 cli: use revset parser to parse bookmark/tag list patterns
These commands are easy ones. The other commands error out if one of the
patterns doesn't match anything. I'll make them warn only exact patterns instead
to keep the implementation simple. I'll also add warnings to these list
commands.
2025-11-23 03:00:12 +00:00
Hubert Lefevre
e0a3ceb374 docs: interop => interoperability
Use the full length terminology to assure good comprehension.
2025-11-22 22:45:06 +00:00
Hubert Lefevre
7627474588 docs: Use "repo" instead of "repository"
Changed to be consistent, at least in the same file, and avoid
using sometime repository/repositories and other times repo/repos.
"repo/repos" is currently the most use terminology.
2025-11-22 22:45:06 +00:00
Hubert Lefevre
c82728fe2e docs: Fix typo in core tenets
Correction made according to the other items on the list.

Closes #8004
2025-11-22 22:45:06 +00:00
Remo Senekowitsch
244cbf7d45 cli git push: deprecate --allow-new 2025-11-22 08:18:44 +00:00
Remo Senekowitsch
0bb55c6252 config: deprecate git.push-new-bookmarks 2025-11-22 07:09:29 +00:00
Remo Senekowitsch
5ada0f7ff2 config: deprecate git.auto-local-bookmark 2025-11-21 05:15:55 +00:00
abgox
bb3b61d7e1 docs: add PSCompletions as PowerShell's completion solutions 2025-11-20 14:56:53 +00:00
Björn Kautler
a76f2c4dac docs: fix markdown sublists for the produced web pages 2025-11-19 03:53:18 +00:00
Martin von Zweigbergk
2518add7cf glossary: fix typo ("work" -> "word") 2025-11-18 20:10:16 +00:00
Remo Senekowitsch
e22bc2d391 cli: remove legacy macos config dir 2025-11-18 17:30:17 +00:00
Remo Senekowitsch
4216aa6758 config: add remotes.<name>.auto-track-bookmarks
This configuration allows users to express a set of bookmarks that
should be automatically tracked when first encountered. This includes
on clone, fetch, create and set.

Until now, the configuration values `git.push-new-bookmarks` and
`git.auto-local-bookmark` fulfilled parts of those use cases. However,
both options represent an "all or nothing" approach. By turning them on,
users risk tracking and pushing more bookmarks than desired.

By using a bookmark pattern, users can express that they want to
auto-track bookmarks that belong to them (e.g. `glob:my-name/*`).
2025-11-18 15:10:56 +00:00
Björn Kautler
ddc6ed750d docs: fix some typos and blur in Git compatibility page 2025-11-18 03:23:02 +00:00
Chase Naples
adde57efc4 docs: document snapshot.auto-update-stale configuration
Add documentation for the snapshot.auto-update-stale configuration
option that was added in commit 49890fa2d but not included in the
configuration documentation.

This option allows automatic updating of stale working copies, which
is particularly useful for users with multiple workspaces.

Fixes #8033
2025-11-18 01:38:14 +00:00
Björn Kautler
17145beb76 docs: improve Git command table 2025-11-18 00:00:45 +00:00
Ilya Grigoriev
24e8aafa1b contributing: suggest setting up a RAM disk on Mac to speed up tests
After 42f645ed28
the tests have slowed down significantly on macOS. Apparently, `fsyncdata`
is quite slow there. However, setting up a RAM disk works around this
and makes tests fast again.

Thanks to @yuja for suggesting the RAM disk solution.

Thanks to @davidbarsky for the APFS lock article link
2025-11-16 16:06:28 +00:00
Martin von Zweigbergk
5a7a734395 cli: add visible() and hidden() aliases
When looking for a revset for visible commits, it seems natural to
reach for `visible()`. It's less obvious to find
`visible_heads()`.

Similarly, we don't have a revset for `hidden()` commits, so I added
that too. I defined it as the obvious `~visible()`. That doesn't
include all hidden commits reachable from the operation log (or from
the index). Maybe we'll want a revset for that eventually. Hopefully
we can come up with a decent name for it then. It's probably better to
define that as all of the historical commits including the current
ones in that case, so `hidden()` would not be a good name.
2025-11-15 03:37:58 +00:00
Jonas Greitemann
da3217015b docs: add a disclaimer to the community tools page 2025-11-14 17:59:14 +00:00
Martin von Zweigbergk
4bc3fbe7b9 docs: remove description of deprecated all: revset prefix
Since the prefix is no longer needed, I don't think there is much
reason to document. It just seems confusing to describe it if it's not
needed.
2025-11-14 17:56:43 +00:00
Jonas Greitemann
fafb24264a docs: simplify instructions to source standard PowerShell completions
Not quite sure why the previous version used a subshell expression when
the output could just as easily be piped to `Invoke-Expression`.
This is more akin to how `source` works in Fish as opposed to the Bash
builtin.

This also splits the instructions for dynamic completions into separate
lines. I think that helps better understand what's going on (PowerShell
lacks temporary environment variables) and avoid scrolling.
2025-11-14 06:57:51 +00:00
Jonas Greitemann
85c84b1445 docs: add note about PowerShell $PROFILE execution policy
On Windows, PowerShell scripts are not allowed to be executed by default
due to the default execution policy `Restricted`. This includes the
`$PROFILE` script (even though PowerShell will still happily attempt to
source it if it exist, resulting in "running scripts is disabled on this
system" errors every time it starts... go figure...).

To avoid this, you generally need to set the execution policy to at
least `RemoteSigned` (which will only block scripts downloaded from the
internet which are not signed; this is the default on Windows Server).
This can be done by running

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

as an administrator, though there tends to be [discussions][1] about the
security tradeoffs of scope and granularity, so I think it is best to
link to the MS documentation on execution policies to allow users to
draw their own conclusions. 

This issue does not affect PowerShell users on Linux or macOS.

[1]: https://superuser.com/questions/106360/how-to-enable-execution-of-powershell-scripts
2025-11-14 06:57:51 +00:00
abgox
393ded77b5 docs: add Dynamic completions for PowerShell 2025-11-13 20:53:47 +00:00
Julia DeMille
054d9a40c4 rust: update MSRV to Rust 1.89
Change-Id: Ife208d70a7ed2c01136ba36afa80040a6a6a6964
2025-11-13 15:50:30 +00:00
Kyle Lippincott
4967bd780b cli: ignore $PAGER in environment by default
When `$PAGER` is set in the environment, jj uses that instead of the
default (`:builtin` on Windows, `less -FRX` everywhere else). Commonly,
users will have `PAGER=less` in their environment for various reasons,
and this is respected by jj. This means that every jj command, even one
that only outputs one or two lines, will still invoke a full screen
pager. It also means that every jj command which uses escape sequences
for color, which is most of them, will be output through a pager that
doesn't handle that well, so users see output that looks like this,
which isn't very readable:

```
ESC[1mESC[38;5;2m@ESC[0m  ESC[1mESC[38;5;13mspmESC[38;5;8mwzlkq...
```

To fix this issue that new users stumble upon, ignore `$PAGER` from the
environment, and always use our per-platform default. Users can set
`ui.pager` to select whichever pager they prefer.

This seems like the least bad option for resolving #3502. The cases I
considered were:

1. User doesn't have `PAGER` set. No change.
2. User has `PAGER=less` in their environment. We'll still run `less`,
just with `-FRX`, so this seems fine. This case is surprisingly common.
3. User has `PAGER` set because they prefer another pager. We'll ignore
that preference and run `less -FRX`.
4. User has `PAGER` set because `less` isn't available on their
platform. This is uncommon except for Windows, where we'll run
`:builtin` instead of `less -FRX` by default anyway.

This may cause some users who have intentionally set and configured
`PAGER` to be frustrated that we aren't respecting that value, but it's
generally not possible to respect that value in all cases _and_ have a
consistent and usable experience out of the box for the majority of
users.

#### Alternatives considered

1. Disable color and OSC8 hyperlinks if `PAGER` is set, since we can't
be sure the pager supports the color codes.
2. Don't paginate by default if `PAGER` is set. This seems
counterintuitive, but would at least resolve the problem. Users would
assume that the `jj` CLI doesn't support paginating, and either wrap it
in a pager themselves (this is a bad outcome) or find `ui.pager` and
change the setting.
3. Set `LESS` (iff it's not set already), then invoke `PAGER`. This
means that users setting things like `LESS=i` breaks our output as well,
and cases where `PAGER` isn't 'less' aren't fixed.

Fixes #3502
2025-11-12 23:22:33 +00:00
Yuya Nishihara
ca797e087c fileset: enable glob matching by default
Since file names don't usually include glob meta characters, it's probably okay
to enable globs by default. There's also a plan to change the default of string
patterns to globs.

The short forms "cwd:"/"root:" are still aliased to literal patterns. I don't
have a strong reason to rename these.

Closes #6971
2025-11-12 11:27:41 +00:00
Yuya Nishihara
d06ab5abb9 fileset: add prefix glob patterns
"prefix-glob:" will be the default. I don't think these prefix glob patterns
are useful, but they are added for completeness.

It's odd that literal patterns do prefix matching by default whereas globs match
exactly. We can instead rename the existing "glob:" to "file-glob:" and add
prefix "glob:", but I'm not sure which is better.
2025-11-12 11:27:41 +00:00
Joseph Lou
3f486f3f82 template: Add RepoPath.absolute() method 2025-11-11 03:55:51 +00:00
Björn Kautler
f0b52724f1 docs: clarify substr index meaning 2025-11-11 01:01:18 +00:00
Martin von Zweigbergk
d6975d426b contributing.md: add a paragraph about our reviewer bottleneck 2025-11-10 18:36:39 +00:00