Commit 26090ea
committed
## [0.37.0] - 2026-01-07
### Release highlights
* A new syntax for referring to hidden and divergent change IDs is available:
`xyz/n` where `n` is a number. For instance, `xyz/0` refers to the latest
version of `xyz`, while `xyz/1` refers to the previous version of `xyz`.
This allows you to perform actions like `jj restore --from xyz/1 --to xyz` to
restore `xyz` to its previous contents, if you made a mistake.
For divergent changes, the numeric suffix will always be shown in the log,
allowing you to disambiguate them in a similar manner.
### Breaking changes
* [String patterns](docs/revsets.md#string-patterns) in revsets, command
arguments, and configuration are now parsed as globs by default. Use
`substring:` or `exact:` prefix as needed.
* `remotes.<name>.auto-track-bookmarks` is now parsed the same way they
are in revsets and can be combined with logical operators.
* `jj bookmark track`/`untrack` now accepts `--remote` argument. If omitted, all
remote bookmarks matching the bookmark names will be tracked/untracked. The
old `<bookmark>@<remote>` syntax is deprecated in favor of `<bookmark>
--remote=<remote>`.
* On Windows, symlinks that point to a path with `/` won't be supported. This
path is [invalid on Windows](https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#naming-conventions).
* The template alias `format_short_change_id_with_hidden_and_divergent_info(commit)`
has been replaced by `format_short_change_id_with_change_offset(commit)`.
* The following deprecated config options have been removed:
- `git.push-bookmark-prefix`
- `ui.default-description`
- `ui.diff.format`
- `ui.diff.tool`
* The deprecated `commit_id.normal_hex()` template method has been removed.
* Template expansion that did not produce a terminating newline will not be
fixed up to provide one by `jj log`, `jj evolog`, or `jj op log`.
* The `diff` conflict marker style can now use `\\\\\\\` markers to indicate
the continuation of a conflict label from the previous line.
### Deprecations
* The `git_head()` and `git_refs()` functions will be removed from revsets and
templates. `git_head()` should point to the `first_parent(@)` revision in
colocated repositories. `git_refs()` can be approximated as
`remote_bookmarks(remote=glob:*) | tags()`.
### New features
* Updated the executable bit representation in the local working copy to allow
ignoring executable bit changes on Unix. By default we try to detect the
filesystem's behavior, but this can be overridden manually by setting
`working-copy.exec-bit-change = "respect" | "ignore"`.
* `jj workspace add` now also works for empty destination directories.
* `jj git remote` family of commands now supports different fetch and push URLs.
* `[colors]` table now supports `dim = true` attribute.
* In color-words diffs, context line numbers are now rendered with decreased
intensity.
* Hidden and divergent commits can now be unambiguously selected using their
change ID combined with a numeric suffix. For instance, if there are two
commits with change ID `xyz`, then one can be referred to as `xyz/0` and the
other can be referred to as `xyz/1`. These suffixes are shown in the log when
necessary to make a change ID unambiguous.
* `jj util gc` now prunes unreachable files in `.jj/repo/store/extra` to save
disk space.
* Early version of a `jj file search` command for searching for a pattern in
files (like `git grep`).
* Conflict labels now contain information about where the sides of a conflict
came from (e.g. `nlqwxzwn 7dd24e73 "first line of description"`).
* `--insert-before` now accepts a revset that resolves to an empty set when
used with `--insert-after`. The behavior is similar to `--onto`.
* `jj tag list` now supports `--sort` option.
* `TreeDiffEntry` type now has a `display_diff_path()` method that formats
renames/copies appropriately.
* `TreeDiffEntry` now has a `status_char()` method that returns
single-character status codes (M/A/D/C/R).
* `CommitEvolutionEntry` type now has a `predecessors()` method which
returns the predecessor commits (previous versions) of the entry's commit.
* `CommitEvolutionEntry` type now has a `inter_diff()` method which
returns a `TreeDiff` between the entry's commit and its predecessor version.
Optionally accepts a fileset literal to limit the diff.
* `jj file annotate` now reports an error for non-files instead of succeeding
and displaying no content.
* `jj workspace forget` now warns about unknown workspaces instead of failing.
### Fixed bugs
* Broken symlink on Windows. [#6934](jj-vcs/jj#6934).
* Fixed failure on exporting moved/deleted annotated tags to Git. Moved tags are
exported as lightweight tags.
* `jj gerrit upload` now correctly handles mixed explicit and implicit
Change-Ids in chains of commits ([#8219](jj-vcs/jj#8219))
* `jj git push` now updates partially-pushed remote bookmarks accordingly.
[#6787](jj-vcs/jj#6787)
* Fixed problem of loading large Git packfiles.
GitoxideLabs/gitoxide#2265
* The builtin pager won't get stuck when stdin is redirected.
* `jj workspace add` now prevents creating an empty workspace name.
* Fixed checkout of symlinks pointing to themselves or `.git`/`.jj` on Unix. The
problem would still remain on Windows if symlinks are enabled.
[#8348](jj-vcs/jj#8348)
* Fixed a bug where jj would fail to read git delta objects from pack files.
GitoxideLabs/gitoxide#23441 parent 4b78055 commit 26090ea
5 files changed
Lines changed: 366 additions & 327 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
| 34 | + | |
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | | - | |
| 50 | + | |
51 | 51 | | |
52 | | - | |
53 | | - | |
| 52 | + | |
| 53 | + | |
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
66 | | - | |
67 | | - | |
| 66 | + | |
| 67 | + | |
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
| |||
105 | 105 | | |
106 | 106 | | |
107 | 107 | | |
108 | | - | |
| 108 | + | |
109 | 109 | | |
110 | 110 | | |
111 | 111 | | |
| |||
131 | 131 | | |
132 | 132 | | |
133 | 133 | | |
134 | | - | |
135 | | - | |
136 | | - | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
137 | 137 | | |
138 | 138 | | |
139 | 139 | | |
140 | | - | |
141 | | - | |
142 | | - | |
143 | | - | |
144 | | - | |
145 | | - | |
146 | | - | |
147 | | - | |
148 | | - | |
149 | | - | |
150 | | - | |
151 | | - | |
152 | | - | |
153 | | - | |
154 | | - | |
155 | | - | |
156 | | - | |
157 | | - | |
158 | | - | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
159 | 159 | | |
160 | 160 | | |
161 | | - | |
162 | | - | |
| 161 | + | |
| 162 | + | |
163 | 163 | | |
164 | | - | |
165 | | - | |
166 | | - | |
167 | | - | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
168 | 168 | | |
169 | | - | |
170 | | - | |
171 | | - | |
172 | | - | |
173 | | - | |
174 | | - | |
175 | | - | |
176 | | - | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
177 | 177 | | |
178 | 178 | | |
179 | | - | |
180 | | - | |
| 179 | + | |
| 180 | + | |
181 | 181 | | |
182 | 182 | | |
183 | 183 | | |
| |||
204 | 204 | | |
205 | 205 | | |
206 | 206 | | |
207 | | - | |
| 207 | + | |
208 | 208 | | |
209 | 209 | | |
210 | 210 | | |
211 | 211 | | |
212 | 212 | | |
213 | 213 | | |
214 | 214 | | |
215 | | - | |
216 | | - | |
217 | | - | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
218 | 218 | | |
219 | 219 | | |
220 | | - | |
221 | | - | |
| 220 | + | |
| 221 | + | |
222 | 222 | | |
223 | 223 | | |
224 | 224 | | |
225 | | - | |
226 | | - | |
| 225 | + | |
| 226 | + | |
227 | 227 | | |
228 | | - | |
229 | 228 | | |
230 | 229 | | |
231 | 230 | | |
232 | 231 | | |
233 | 232 | | |
234 | | - | |
| 233 | + | |
235 | 234 | | |
236 | 235 | | |
237 | 236 | | |
| |||
273 | 272 | | |
274 | 273 | | |
275 | 274 | | |
276 | | - | |
277 | | - | |
278 | | - | |
279 | | - | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
280 | 279 | | |
281 | 280 | | |
282 | 281 | | |
| |||
298 | 297 | | |
299 | 298 | | |
300 | 299 | | |
301 | | - | |
| 300 | + | |
302 | 301 | | |
303 | 302 | | |
304 | 303 | | |
| |||
308 | 307 | | |
309 | 308 | | |
310 | 309 | | |
311 | | - | |
| 310 | + | |
312 | 311 | | |
313 | 312 | | |
314 | 313 | | |
| |||
320 | 319 | | |
321 | 320 | | |
322 | 321 | | |
| 322 | + | |
323 | 323 | | |
324 | 324 | | |
325 | 325 | | |
326 | | - | |
| 326 | + | |
327 | 327 | | |
328 | 328 | | |
329 | 329 | | |
| |||
332 | 332 | | |
333 | 333 | | |
334 | 334 | | |
335 | | - | |
| 335 | + | |
336 | 336 | | |
337 | 337 | | |
338 | 338 | | |
| |||
347 | 347 | | |
348 | 348 | | |
349 | 349 | | |
350 | | - | |
| 350 | + | |
351 | 351 | | |
352 | 352 | | |
353 | 353 | | |
| |||
372 | 372 | | |
373 | 373 | | |
374 | 374 | | |
375 | | - | |
| 375 | + | |
376 | 376 | | |
377 | | - | |
| 377 | + | |
378 | 378 | | |
379 | 379 | | |
380 | 380 | | |
| |||
394 | 394 | | |
395 | 395 | | |
396 | 396 | | |
397 | | - | |
| 397 | + | |
398 | 398 | | |
399 | 399 | | |
400 | 400 | | |
401 | 401 | | |
402 | 402 | | |
403 | 403 | | |
404 | 404 | | |
405 | | - | |
| 405 | + | |
406 | 406 | | |
407 | 407 | | |
408 | 408 | | |
409 | | - | |
| 409 | + | |
410 | 410 | | |
411 | 411 | | |
412 | | - | |
| 412 | + | |
413 | 413 | | |
414 | 414 | | |
415 | 415 | | |
| |||
438 | 438 | | |
439 | 439 | | |
440 | 440 | | |
| 441 | + | |
441 | 442 | | |
442 | | - | |
443 | | - | |
444 | | - | |
445 | | - | |
446 | | - | |
447 | | - | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
448 | 448 | | |
449 | | - | |
| 449 | + | |
450 | 450 | | |
451 | 451 | | |
452 | 452 | | |
453 | 453 | | |
454 | 454 | | |
455 | 455 | | |
456 | | - | |
| 456 | + | |
457 | 457 | | |
458 | 458 | | |
459 | 459 | | |
| |||
487 | 487 | | |
488 | 488 | | |
489 | 489 | | |
490 | | - | |
| 490 | + | |
491 | 491 | | |
492 | 492 | | |
493 | 493 | | |
| |||
501 | 501 | | |
502 | 502 | | |
503 | 503 | | |
504 | | - | |
| 504 | + | |
| 505 | + | |
0 commit comments