Commit graph

906 commits

Author SHA1 Message Date
Ilya Grigoriev
fedbc3017f cli merge tools: allow setting diff-args=[] to disable diff formatting with a tool
Not setting `diff-args` is equivalent to `diff-args=["$left",
"$right"]`, which I also documented here.

I couldn't decide whether the new error should be part of
`DiffRenderError`, `DiffGenerateError`, or `MergeToolError`. Since the
treatment of diff formatters is already very different from other merge
tools, I just made it a CommandError for now.
2025-07-19 03:39:16 +00:00
Ilya Grigoriev
dae9ce7677 cli merge tools: allow setting edit-args=[] to disable diff editing with a tool 2025-07-19 03:39:16 +00:00
Ilya Grigoriev
2a221b0f8e docs config.md: explain unspecified merge-args/diff-args for a tool 2025-07-19 03:39:16 +00:00
Josh Steadmon
d7fa04f510 templater: add parents() method for Operation
Add a parents() method for `Operation` template objects, copied from the
implementation for `Commit`s.

The test case added in test_operations.rs was heavily inspired by
test_commit_templates.rs:test_log_parents().

Fixes #6979
2025-07-18 17:16:09 +00:00
Philip Metzger
24e565c8de website: Add the CHANGELOG
This was requested by @lilyball on Discord. I still think we should create a blog longterm
so we can announce stuff and run surveys, but this small step won't block it.
2025-07-17 22:59:58 +00:00
Kaiyi Li
f1f1556731 local working copy: add support for EOL conversion 2025-07-17 15:36:28 +00:00
Martin von Zweigbergk
3b32b88e6c docs: explain how e.g. the commit_id() revset can override a bookmark 2025-07-17 06:16:31 +00:00
Tyarel8
36133ced77 docs: add scoop to windows installation 2025-07-16 20:34:53 +00:00
Yuya Nishihara
ea3c1791a6 revset: soft-deprecate "all:" modifier syntax 2025-07-11 17:15:26 +00:00
Yuya Nishihara
6c8f6e9744 cli: allow "large" revsets by default
Since divergent/conflicted symbols no longer resolve to multiple revisions, it's
less scary to allow "large" revsets than before.

The config doc is removed because it's largely duplicated from the revsets doc,
and the config key will be removed.

#6016
2025-07-11 17:15:26 +00:00
Martin von Zweigbergk
51d7738112 code-of-conduct: replace @avamsi by @icorbrey as Community Leader
As we've discussed on Discord, the community would prefer the
community leaders to be people who are actively involved in the
community. Vamsi hasn't been involved lately, and Isaac has offered to
take on the role. Thanks, both!
2025-07-11 17:14:07 +00:00
Martin von Zweigbergk
d4d9881563 docs: jj diff -r is no longer an example of single-revision command 2025-07-11 17:10:00 +00:00
Martin von Zweigbergk
6485049676 docs: include another example of .. vs :: difference
We still get many questions about the difference between `..` and
`::`. It turns out we didn't have an example of the typical case of
using `..` to find commits on a feature branch compared to the main
branch. This patch adds such an example.
2025-07-10 05:58:26 +00:00
Alexander Kobjolke
d858d8cb41 docs: document Commit.signature() 2025-07-08 00:47:52 +00:00
Pavan Kumar Sunkara
c038ef4bc3 workspaces: Add templating support to workspace list 2025-07-07 19:14:07 +00:00
Yuya Nishihara
be094ef76e revset: don't resolve symbol expression to multiple revisions
It's surprising that a symbol expression may be resolved to multiple revisions,
and that's one of the reason we require all: modifier in some places. Let's make
a symbol resolution fail in that case so we can deprecate the all: syntax.

The new error hints are a bit less informative, but I don't want to implement
ad-hoc formatting for resolve_some_revsets_default_single(). The user will have
to review the graph anyway in order to resolve divergence/conflicts.

Closes #5632
2025-07-07 14:11:29 +00:00
Jan Klass
344aa91df6 docs: Add GitButler to related-work 2025-07-06 12:51:44 +00:00
Jan Klass
5f399e7444 Drop defunct Sturdy from related-work
* HTTPS can't connect
* HTTP has cloudfront 403 error page - [as per web archive at least since 2023-10-18](https://web.archive.org/web/20231018153827/https://getsturdy.com/)
* Uncommented [issue ticket](https://github.com/sturdy-dev/sturdy/issues/1360) since 2024-02-18
2025-07-06 06:55:50 +00:00
Martin von Zweigbergk
a3c81ea3eb faq: fix various issues in the new "undo merge" entry
* Added an explanation for why reverting a merge often results in an
   empty commit.
 
 * `jj revert <merge>` requires `-r`.

 * Fixed backwards description of merge direction (compared to what
   the graph shows).

 * Minor copy editing.
2025-07-02 11:40:31 +00:00
raylu
0921975dcf docs: Add git log -G to git command table 2025-07-02 03:38:59 +00:00
Yuya Nishihara
3a8b83d1fc cli: git-push: make "change" bookmark names templated
Someone asked this on Discord, and it's useful if the bookmark name should
include e.g. issue number (which can be extracted from commit description.)
2025-07-02 01:55:59 +00:00
Philip Metzger
60ccf6770e FAQ: Answer on how to revert merge commits
This is idiosyncratic to new users coming from Git, since `jj revert <merge>` does not 
usually do what users want. Maybe a followup could be adding a
warning in `jj revert`.

The explanation is from a Discord message from Austin.
2025-07-01 12:24:33 +00:00
Yuya Nishihara
49fc8abe69 docs: document the purpose of Stringify template type 2025-07-01 00:30:22 +00:00
Yuya Nishihara
e3b6599424 templater: rename PlainText pseudo type to Stringify
Since the goal of this pseudo type is to get a String value, it can be called a
ToString or Stringify. I chose the latter because Stringify sounds similar to
Serialize (verb), and I don't want to rename the internal functions to
.try_into_to_string().

https://github.com/jj-vcs/jj/pull/6840#discussion_r2173076763
2025-07-01 00:30:22 +00:00
juemrami
32271aeb98 docs: add vite/vitest issues section to faq 2025-07-01 00:11:33 +00:00
Yuya Nishihara
8db40c7fa2 revset: add change_id/commit_id(prefix) predicates
Basically, these functions work in the same way as bookmarks()/tags(). They
restrict the namespace to search the specified symbol, and unmatched symbol
isn't an error. One major difference is that ambiguous prefix triggers an error.
That's because ambiguous prefix should logically select all matching entries,
whereas the underlying functions don't provide this behavior. It's also unclear
whether we would want to get all matching commits by commit_id(prefix:'').

#5632
2025-06-30 14:38:50 +00:00
Scott Taylor
bcde9ca728 revset: add parents(x, depth) and children(x, depth)
Resolves #3337.
2025-06-29 03:51:19 +00:00
Yuya Nishihara
4d3fa2b5d4 docs: show which template types support implicit conversions 2025-06-28 00:40:14 +00:00
Yuya Nishihara
a561fab59c templater: add PlainText/Serialize pseudo types for documentation purpose 2025-06-28 00:40:14 +00:00
Osama Qarem
77131919da Update mention of deprecated config ui.diff.format to ui.diff-formatter
As per the warning when using `ui.diff.format`:

```
Warning: Deprecated user-level config: ui.diff.format is updated to ui.diff-formatter = ":git"
```
2025-06-26 09:39:17 +00:00
Jade Lovelace
98d32e395b docs/working-copy: fix missing link annotation
Change-Id: I6a6a696473cc868890b8f011b123ca5b1748ef0e
2025-06-20 23:42:09 +00:00
Daniel Luz
2f95eaf998 formatter: add support for ANSI 256-color palette
Fixes #6691.
2025-06-20 22:47:32 +00:00
Yuya Nishihara
123088b8e4 revset: expand all() set to include all referenced commits
The semantics is similar to experimental.directaccess=true in Mercurial. Hidden
revisions and their ancestors become temporarily available. This means all() is
not exactly the same as ::visible_heads(). The latter never includes hidden
revisions.

We could instead transform all() to (all() | referenced_commits). However, this
wouldn't work if expressions like ::hidden are intersected/united with filters,
all(), etc.

Fixes #5871
2025-06-19 11:21:49 +00:00
Austin Seipp
3b0c6d440f docs: fix indentation levels of some items
Thanks to idealseal on GitHub for the pointer.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
2025-06-18 19:23:12 +00:00
Yuya Nishihara
0a60e85525 templater: add json() function
This was discussed in #3219 and #3262, and apparently, people don't agree
whether we should implement machine-readable formatting by using templater.
However, there are recurring requests about JSON output, and "jj api" is still
vaporware. So I think it's good to add some support for JSON output.

I'm not going to add syntax to build custom JSON object/list for now. Instead,
property types such as Commit will implement fixed serialization output. The
user might have to write ad-hoc JSON constructs to concatenate the default JSON
output and their custom JSON fields.

We'll need a documentation about which types are serializable. I think this can
be added later when more types get serialization support.
2025-06-18 18:34:37 +00:00
Kaiyi Li
f4274dd845 docs: record 06393993 as a contributor whose employer pays for contributions 2025-06-16 18:05:58 +00:00
Lars Francke
1a8ada0611 docs: Remove now outdated reference to issue 469 2025-06-13 12:25:38 +00:00
Josh Steadmon
dda07150f5 paid_contributors: correct Ben Brittain's GitHub username 2025-06-10 19:40:33 +00:00
Scott Taylor
a8876cb1ec revset: parse x.. as ~ancestors(x)
Currently, this is parsed as `x..visible_heads()`, which prevents
optimizing `x.. & ::y` to `x..y`.

An alternative would be to remove `::visible_heads()` from
intersections, similar to `all()`, but it might be better to avoid
removing `visible_heads()` if it was explictly requested by a user.
2025-06-09 04:35:33 +00:00
Greg Morenz
4ff0594542 Don't blame libgit2 for lack of partial clone support
jj no longer uses libgit2, so this can't be blamed on it. We still don't support partial clones though [1] . 

There's no real tracking issue for this. This PR [2] is as close as it gets, but it doesn't feel appropriate to link in the docs.

[1] https://github.com/jj-vcs/jj/issues/6690#issuecomment-2946785320
[2] https://github.com/jj-vcs/jj/pull/6451/
2025-06-08 00:49:53 +00:00
Ilya Grigoriev
43b5feaff6 docs: put bare URLs in angle brackets
This makes MkDocs render them as links.
2025-06-07 20:20:47 +00:00
Vincent Ging Ho Yim
9925d52f89 docs: add missing word in paid_contributors.md 2025-06-07 17:51:23 +00:00
Ilya Grigoriev
b8c156bd54 docs releasing: suggest checking for misplaced changelog entries
See parent commit for an example
2025-06-07 02:15:31 +00:00
Austin Seipp
b16bed1350 docs: file ben/austin as paid contributors for ERSC
Signed-off-by: Austin Seipp <austin@ersc.io>
2025-06-05 21:21:03 +00:00
Yuya Nishihara
04ba49f083 docs: fix unbalanced parentheses in jq script 2025-06-04 14:01:13 +00:00
Yuya Nishihara
8739bdfa36 docs: mention expressions equivalent to heads() and roots()
In the context of #6659, I was wondering whether it would help if heads(x) were
decomposed to x & ~::x-.
2025-06-03 08:34:17 +00:00
Colin Nelson
66254d5d0f docs: add note about inotify and watchman 2025-06-02 20:29:47 +00:00
Vincent Ging Ho Yim
fce53da225 docs/releasing: update jq filter
- Use `jq -s` to read the entire input (could be several arrays due to GitHub API
  pagination) before running the filter just once.
- Deduplicate by `.author.login` in case a person with the same GitHub username has
  commits under different names within a release.
- Use string interpolation to format each line.
2025-05-28 05:41:54 +00:00
Martin von Zweigbergk
6012083ca8 docs: rewrite copy-tracking design with proposal for handling conflicts
This version describes a design that I think will work relatively well
for supporting copy tracing even when there are conflicts.

There are still some open questions, in particular around how to
populate the data in Git repos, and how to efficiently query the data
in very large repos like the one at Google. I think it's still clear
enough that we can start working on the implementation.
2025-05-24 17:44:17 +00:00
Vincent Ging Ho Yim
bc7294695f docs: move shell completion commands into tabs 2025-05-23 17:53:30 +00:00