Skip to content

jj split of a newly added executable file does not commit file as executable #3846

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
spectral54 opened this issue Jun 7, 2024 · 4 comments · Fixed by #5486
Closed

jj split of a newly added executable file does not commit file as executable #3846

spectral54 opened this issue Jun 7, 2024 · 4 comments · Fixed by #5486
Labels
🐛bug Something isn't working scm-record Issues relating to the scm-record library, used as the default interactive diff/merge editor.

Comments

@spectral54
Copy link
Contributor

Description

Steps to Reproduce the Problem

$ jj git init
$ echo hi > executable_file && chmod +x executable_file
$ echo hi > other_file
$ jj split        # pick only executable_file
$ jj status
Working copy changes:
M executable_file
A some_other_file
Working copy : ysmvmwqx edefcfd6 (no description set)
Parent commit: zosvqltr 1fca1963 Commit executable file
$ jj diff
Non-executable file became executable at executable_file:
Added regular file some_other_file:
        1: hi

Expected Behavior

Files committed via jj split should also commit their metadata changes (such as +x).

Actual Behavior

The file contents are committed, but not the metadata

Specifications

  • Platform: Linux
  • Version: jj google-0.17.1-jj-client_20240528_00_RC00
@martinvonz
Copy link
Member

@arxanas: What are we supposed to pass into scm-record in this case? We currently don't add a mode section if the file was absent on one side because we intended for the mode from the other side to be preserved, but that does happen here. Is File::file_mode supposed to indicate the file mode on the "before" side of the diff (i.e. absent in this case)? In that case we'll have to keep track of the new mode in the integration in jj-cli. Or are we supposed to set File::file_mode to the "after" state (i.e. executable in this case)?

@arxanas
Copy link
Contributor

arxanas commented Jun 15, 2024

Here is the documentation for File::file_mode:

The Unix file mode of the file (before any changes), if available. This may be rendered by the UI.

This value is not directly modified by the UI; instead, construct a Section::FileMode and use the [FileState::get_file_mode] function to read a user-provided updated to the file mode function to read a user-provided updated to the file mode.

@martinvonz I think it's the "before" case you're describing, so the file mode doesn't appear in the "after" version.

What the caller was "supposed" to do is always have a FileMode section for newly-created (or newly-deleted) files. The user could choose to include the file mode change in their selection or not.

  • This would also handle the current issue of not being able to select empty files because they have no items inside of them; instead, there would be a FileMode section.
  • The main problem is that you want logical implication in certain cases:
    • If you select some lines to add without selecting the "newly-added" file mode, then you would somehow be requesting to add some of the file contents without adding the file itself.
    • If you select the "newly-deleted" file mode without also selecting all the changes that would delete the lines of that file, then you would somehow be requesting that the file be deleted but also keep some of its contents.

Maybe scm_record should support certain implication rules, or maybe there's a better design that I haven't thought of. One possibility is to not allow line-wise selection for newly-added or newly-deleted files (which might be what hg crecord does?).

Also, maybe scm_record trying really hard to preserve/maintain the "before" file mode is misguided anyways 🙃. It might be better to include only opaque caller-supplied metadata, or just force the caller to handle it out-of-band.

@lgarron
Copy link
Contributor

lgarron commented Mar 10, 2025

I just ran into this issue, and it took me three attempts to realize I was expecting this to be the behaviour of jj when it is not.

I can't speak for everyone, but I cannot think of a situation where I create a new file with executable permissions that I would not want jj split to commit as executable.

Although I expect to commit the entire contents of the script virtually every time, I think this makes sense even if I commit a subset. (Otherwise, I would have waited to put the executable flag on it.)

Now that I know what's going on I can work around it, but I think it would be great to fix for future jj users.

@lgarron
Copy link
Contributor

lgarron commented Mar 20, 2025

I can confirm that #3846 is working well for me with brew install --HEAD jj! 🥳

netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this issue Apr 11, 2025
## [0.28.1] - 2025-04-04

### Security fixes

* Fixed SHA-1 collision attacks not being detected.
  ([GHSA-794x-2rpg-rfgr](GHSA-794x-2rpg-rfgr))

### Fixed bugs

* Resolved some potential build issues for packagers.
  [#6232](jj-vcs/jj#6232)

* Fix a bug with `:ours` and `:theirs` merge tools involving conflicted trees
  with more than two sides. [#6227](jj-vcs/jj#6227)

## [0.28.0] - 2025-04-02

### Release highlights

* jj's configuration can now be split into multiple files more easily.

* `jj resolve` now accepts built-in tools `:ours` and `:theirs`.

* In colocated repos, newly-created files will now appear in `git diff`.

* A long-standing bug relating to empty files in the built-in diff editor was
  fixed. [#3702](jj-vcs/jj#3702)

### Breaking changes

* The minimum supported Rust version (MSRV) is now 1.84.0.

* The `git.push-branch-prefix` config has been removed in favor of
  `git.push-bookmark-prefix`.

* `jj abandon` no longer supports `--summary` to suppress the list of abandoned
  commits. The list won't show more than 10 commits to not clutter the console.

* `jj unsquash` has been removed in favor of `jj squash` and
  `jj diffedit --restore-descendants`.

* The `jj untrack` subcommand has been removed in favor of `jj file untrack`.

* The following deprecated revset functions have been removed:
  - `branches()`, `remote_branches()`, `tracked_remote_branches()`, and
    `untracked_remote_branches()`, which were renamed to "bookmarks".
  - `file()` and `conflict()`, which were renamed to plural forms.
  - `files(x, y, ..)` with multiple patterns. Use `files(x|y|..)` instead.

* The following deprecated template functions have been removed:
  - `branches()`, `local_branches()`, and `remote_branches()`, which were
    renamed to "bookmarks".

* The flags `--all` and `--tracked` on `jj git push` by themself do not cause
  deleted bookmarks to be pushed anymore, as an additional safety measure. They
  can now be combined with `--deleted` instead.

### Deprecations

* `core.watchman.register_snapshot_trigger` has been renamed to `core.watchman.register-snapshot-trigger` for consistency with other configuration options.

* `jj backout` is deprecated in favor of `jj revert`.

### New features

* `jj sign` can now sign with PKCS#12 certificates through the `gpgsm` backend.

* `jj sign` will automatically use the gpg key associated with the author's email
  in the absence of a `signing.key` configuration.

* Multiple user configs are now supported and are loaded in the following precedence order:
  - `$HOME/.jjconfig.toml`
  - `$XDG_CONFIG_HOME/jj/config.toml`
  - `$XDG_CONFIG_HOME/jj/conf.d/*.toml`

* The `JJ_CONFIG` environment variable can now contain multiple paths separated
  by a colon (or semicolon on Windows).

* The command `jj config list` now supports showing the origin of each variable
  via the `builtin_config_list_detailed` template.

* `jj config {edit,set,unset}` now prompt when multiple config files are found.

* `jj diff -r` now allows multiple revisions (as long as there are no gaps in
  the revset), such as `jj diff -r 'mutable()'`.

* `jj git push` now accepts a `--named NAME=REVISION` argument to create a named
  bookmark and immediately push it.

* The 'how to resolve conflicts' hint that is shown when conflicts appear can
  be hidden by setting `hints.resolving-conflicts = false`.

* `jj op diff` and `jj op log --op-diff` now show changes to which commits
  correspond to working copies.

* `jj op log -d` is now an alias for `jj op log --op-diff`.

* `jj bookmark move --to/--from` can now be abbreviated to `jj bookmark move -t/-f`

* `jj bookmark list` now supports `--sort` option. Similar to `git branch --sort`.
  See `jj bookmark list --help` for more details.

* A new command `jj revert` is added, which is similar to `jj backout` but
  adds the `--destination`, `--insert-after`, and `--insert-before` options to
  customize the location of reverted commits.

* A new command `jj git root` is added, which prints the location of the Git
  directory of a repository using the Git backend.

* In colocated repos, any files that jj considers added in the working copy will
  now show up in `git diff` (as if you had run `git add --intent-to-add` on
  them).

* Reversing colors is now supported. For example, to highlight words by
  reversing colors rather than underlining, you can set
  `colors."diff token"={ underline = false, reverse = true }` in your config.

* Added `revsets.log-graph-prioritize`, which can be used to configure
  which branch in the `jj log` graph is displayed on the left instead of `@`
  (e.g. `coalesce(description("megamerge\n"), trunk())`)

* `jj resolve` now accepts new built-in merge tools `:ours` and `:theirs`.
  These merge tools accept side #1 and side #2 of the conflict respectively.

### Fixed bugs

* `jj log -p --stat` now shows diff stats as well as the default color-words/git
  diff output. [#5986](jj-vcs/jj#5986)

* The built-in diff editor now correctly handles deleted files.
  [#3702](jj-vcs/jj#3702)

* The built-in diff editor now correctly retains the executable bit on newly
  added files when splitting. [#3846](jj-vcs/jj#3846)

* `jj config set`/`--config` value parsing rule is relaxed in a way that
  unquoted apostrophes are allowed.
  [#5748](jj-vcs/jj#5748)

* `jj fix` could previously create new conflicts when a descendant of a fixed
  revision was already correctly formatted.
tmeijn pushed a commit to tmeijn/dotfiles that referenced this issue May 10, 2025
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [martinvonz/jj](https://github.com/martinvonz/jj) | minor | `v0.27.0` -> `v0.29.0` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>martinvonz/jj (martinvonz/jj)</summary>

### [`v0.29.0`](https://github.com/jj-vcs/jj/releases/tag/v0.29.0)

[Compare Source](jj-vcs/jj@v0.28.2...v0.29.0)

##### About

jj is a Git-compatible version control system that is both simple and powerful. See the [installation instructions](https://jj-vcs.github.io/jj/v0.29.0/install-and-setup/) to get started.

##### Release highlights

-   Experimental support for transferring the change ID to/from Git remotes behind configuration
    setting `git.write-change-id-header`. If this is enabled, the change ID will be stored in the Git
    commit itself (in a commit header called `change-id`), which means it will be transferred by
    regular `git push` etc. This is an evolving feature that currently defaults to "false". This
    default will likely change in the future as we gain confidence with forge support and user
    expectations.

##### Breaking changes

-   `jj git push -c`/`--change` no longer moves existing local bookmarks.

-   The `editor-*.jjdescription` files passed to your editor by e.g. `jj describe`
    are now written to your system's temporary directory instead of `.jj/repo/`.

##### Deprecations

-   `git.subprocess = false` has been deprecated, and the old `libgit2`
    code path for fetches and pushes will be removed entirely in 0.30.
    Please report any remaining issues you have with the Git
    subprocessing path.

-   `ui.default-description` has been deprecated, and will be migrated to
    `template-aliases.default_commit_description`. Please also consider using
    [`templates.draft_commit_description`](docs/config.md#default-description),
    and/or [`templates.commit_trailers`](docs/config.md#commit-trailers).

-   On macOS, config.toml files in `~/Library/Application Support/jj` are
    deprecated; one should instead use `$XDG_CONFIG_HOME/jj`
    (defaults to `~/.config/jj`)

##### New features

-   Color-words diff has gained [an option to compare conflict pairs without
    materializing](docs/config.md#color-words-diff-options).

-   `jj show` patches can now be suppressed with `--no-patch`.

-   Added `ui.bookmark-list-sort-keys` setting to configure default sort keys for the
    `jj bookmark list` command.

-   New `signed` revset function to filter for cryptographically signed commits.

-   `jj describe`, `jj commit`, `jj new`, `jj squash` and `jj split` add the
    commit trailers, configured in the `commit_trailers` template, to the commit
    description. Use cases include DCO Sign Off and Gerrit Change Id.

-   Added `duplicate_description` template, which allows [customizing the descriptions
    of the commits `jj duplicate` creates](docs/config.md#duplicate-commit-description).

-   `jj absorb` can now squash a deleted file if it was added by one of the
    destination revisions.

-   Added `ui.streampager.show-ruler` setting to configure whether the ruler should be
    shown when the builtin pager starts up.

-   `jj git fetch` now warns instead of erroring for unknown `git.fetch` remotes
    if other remotes are available.

-   Commit objects in templates now have `trailers() -> List<Trailer>`, the Trailer
    objects have `key() -> String` and `value() -> String`.

-   `jj config edit` will now roll back to previous version if a syntax error has been introduced in the new config.

-   When using dynamic command-line completion, revision names will be completed
    in more complex expressions. For example, typing
    `jj log -r first-bookmark..sec` and then pressing Tab could complete the
    expression to `first-bookmark..second-bookmark`.

##### Fixed bugs

-   Fixed crash on change-delete conflict resolution. [#&#8203;6250](jj-vcs/jj#6250)

-   The builtin diff editor now tries to preserve unresolved conflicts. [#&#8203;4963](jj-vcs/jj#4963)

-   Fixed bash and zsh shell completion when completing aliases of multiple arguments. [#&#8203;5377](jj-vcs/jj#5377)

##### Packaging changes

-   Jujutsu now uses [`zlib-rs`](https://github.com/trifectatechfoundation/zlib-rs), a fast compression library written in Rust. Packagers should remove any dependency on CMake and drop the `packaging` Cargo feature.

##### Contributors

Thanks to the people who made this release happen!

-   Aleksey Kuznetsov ([@&#8203;zummenix](https://github.com/zummenix))
-   Austin Seipp ([@&#8203;thoughtpolice](https://github.com/thoughtpolice))
-   Benjamin Brittain ([@&#8203;benbrittain](https://github.com/benbrittain))
-   Benjamin Tan ([@&#8203;bnjmnt4n](https://github.com/bnjmnt4n))
-   Caleb White ([@&#8203;calebdw](https://github.com/calebdw))
-   Daniel Luz ([@&#8203;mernen](https://github.com/mernen))
-   Emily ([@&#8203;emilazy](https://github.com/emilazy))
-   Emily ([@&#8203;neongreen](https://github.com/neongreen))
-   Gaëtan Lehmann ([@&#8203;glehmann](https://github.com/glehmann))
-   George Christou ([@&#8203;gechr](https://github.com/gechr))
-   Ilya Grigoriev ([@&#8203;ilyagr](https://github.com/ilyagr))
-   Jacob Hayes ([@&#8203;JacobHayes](https://github.com/JacobHayes))
-   Jonas Greitemann ([@&#8203;jgreitemann](https://github.com/jgreitemann))
-   Josh Steadmon ([@&#8203;steadmon](https://github.com/steadmon))
-   Martin von Zweigbergk ([@&#8203;martinvonz](https://github.com/martinvonz))
-   Mateus Auler ([@&#8203;mateusauler](https://github.com/mateusauler))
-   Nicole Patricia Mazzuca ([@&#8203;strega-nil](https://github.com/strega-nil))
-   Nils Koch ([@&#8203;nilskch](https://github.com/nilskch))
-   Philip Metzger ([@&#8203;PhilipMetzger](https://github.com/PhilipMetzger))
-   Remo Senekowitsch ([@&#8203;senekor](https://github.com/senekor))
-   Sam ([@&#8203;Samasaur1](https://github.com/Samasaur1))
-   Steve Fink ([@&#8203;hotsphink](https://github.com/hotsphink))
-   Théo Daron ([@&#8203;tdaron](https://github.com/tdaron))
-   TimerErTim ([@&#8203;TimerErTim](https://github.com/TimerErTim))
-   Vincent Ging Ho Yim ([@&#8203;cenviity](https://github.com/cenviity))
-   Winter ([@&#8203;winterqt](https://github.com/winterqt))
-   Yuya Nishihara ([@&#8203;yuja](https://github.com/yuja))

### [`v0.28.2`](https://github.com/jj-vcs/jj/releases/tag/v0.28.2)

[Compare Source](jj-vcs/jj@v0.28.1...v0.28.2)

##### Fixed bugs

-   Fixed problem that old commits could be re-imported from Git.
    GitoxideLabs/gitoxide#1928

### [`v0.28.1`](https://github.com/jj-vcs/jj/releases/tag/v0.28.1)

[Compare Source](jj-vcs/jj@v0.28.0...v0.28.1)

> \[!NOTE]\
> Also see the [v0.28.0 release notes](https://github.com/jj-vcs/jj/releases/tag/v0.28.0).

##### About

jj is a Git-compatible version control system that is both simple and powerful. See the [installation instructions](https://jj-vcs.github.io/jj/v0.28.0/install-and-setup/) to get started.

##### Security fixes

-   Fixed SHA-1 collision attacks not being detected.
    ([GHSA-794x-2rpg-rfgr](GHSA-794x-2rpg-rfgr))

##### Fixed bugs

-   Resolved some potential build issues for packagers.
    [#&#8203;6232](jj-vcs/jj#6232)

-   Fix a bug with `:ours` and `:theirs` merge tools involving conflicted trees
    with more than two sides. [#&#8203;6227](jj-vcs/jj#6227)

##### Contributors

Thanks to the people who made this release happen!

-   Emily ([@&#8203;emilazy](https://github.com/emilazy))
-   Ilya Grigoriev ([@&#8203;ilyagr](https://github.com/ilyagr))
-   Nicole Patricia Mazzuca ([@&#8203;strega-nil](https://github.com/strega-nil))
-   Scott Taylor ([@&#8203;scott2000](https://github.com/scott2000))
-   Yuya Nishihara ([@&#8203;yuja](https://github.com/yuja))

### [`v0.28.0`](https://github.com/jj-vcs/jj/releases/tag/v0.28.0)

[Compare Source](jj-vcs/jj@v0.27.0...v0.28.0)

> \[!IMPORTANT]
> v0.28.0 was yanked from https://crates.io and superseded by [v0.28.1](https://github.com/jj-vcs/jj/releases/tag/v0.28.1).

##### About

jj is a Git-compatible version control system that is both simple and powerful. See the [installation instructions](https://jj-vcs.github.io/jj/v0.28.0/install-and-setup/) to get started.

##### Release highlights

-   jj's configuration can now be split into multiple files more easily.

-   `jj resolve` now accepts built-in tools `:ours` and `:theirs`.

-   In colocated repos, newly-created files will now appear in `git diff`.

-   A long-standing bug relating to empty files in the built-in diff editor was
    fixed. [#&#8203;3702](jj-vcs/jj#3702)

##### Breaking changes

-   The minimum supported Rust version (MSRV) is now 1.84.0.

-   The `git.push-branch-prefix` config has been removed in favor of
    `git.push-bookmark-prefix`.

-   `jj abandon` no longer supports `--summary` to suppress the list of abandoned
    commits. The list won't show more than 10 commits to not clutter the console.

-   `jj unsquash` has been removed in favor of `jj squash` and
    `jj diffedit --restore-descendants`.

-   The `jj untrack` subcommand has been removed in favor of `jj file untrack`.

-   The following deprecated revset functions have been removed:
    -   `branches()`, `remote_branches()`, `tracked_remote_branches()`, and
        `untracked_remote_branches()`, which were renamed to "bookmarks".
    -   `file()` and `conflict()`, which were renamed to plural forms.
    -   `files(x, y, ..)` with multiple patterns. Use `files(x|y|..)` instead.

-   The following deprecated template functions have been removed:
    -   `branches()`, `local_branches()`, and `remote_branches()`, which were
        renamed to "bookmarks".

-   The flags `--all` and `--tracked` on `jj git push` by themself do not cause
    deleted bookmarks to be pushed anymore, as an additional safety measure. They
    can now be combined with `--deleted` instead.

##### Deprecations

-   `core.watchman.register_snapshot_trigger` has been renamed to `core.watchman.register-snapshot-trigger` for consistency with other configuration options.

-   `jj backout` is deprecated in favor of `jj revert`.

##### New features

-   `jj sign` can now sign with [PKCS#12](https://github.com/PKCS/jj/issues/12) certificates through the `gpgsm` backend.

-   `jj sign` will automatically use the gpg key associated with the author's email
    in the absence of a `signing.key` configuration.

-   Multiple user configs are now supported and are loaded in the following precedence order:
    -   `$HOME/.jjconfig.toml`
    -   `$XDG_CONFIG_HOME/jj/config.toml`
    -   `$XDG_CONFIG_HOME/jj/conf.d/*.toml`

-   The `JJ_CONFIG` environment variable can now contain multiple paths separated
    by a colon (or semicolon on Windows).

-   The command `jj config list` now supports showing the origin of each variable
    via the `builtin_config_list_detailed` template.

-   `jj config {edit,set,unset}` now prompt when multiple config files are found.

-   `jj diff -r` now allows multiple revisions (as long as there are no gaps in
    the revset), such as `jj diff -r 'mutable()'`.

-   `jj git push` now accepts a `--named NAME=REVISION` argument to create a named
    bookmark and immediately push it.

-   The 'how to resolve conflicts' hint that is shown when conflicts appear can
    be hidden by setting `hints.resolving-conflicts = false`.

-   `jj op diff` and `jj op log --op-diff` now show changes to which commits
    correspond to working copies.

-   `jj op log -d` is now an alias for `jj op log --op-diff`.

-   `jj bookmark move --to/--from` can now be abbreviated to `jj bookmark move -t/-f`

-   `jj bookmark list` now supports `--sort` option. Similar to `git branch --sort`.
    See `jj bookmark list --help` for more details.

-   A new command `jj revert` is added, which is similar to `jj backout` but
    adds the `--destination`, `--insert-after`, and `--insert-before` options to
    customize the location of reverted commits.

-   A new command `jj git root` is added, which prints the location of the Git
    directory of a repository using the Git backend.

-   In colocated repos, any files that jj considers added in the working copy will
    now show up in `git diff` (as if you had run `git add --intent-to-add` on
    them).

-   Reversing colors is now supported. For example, to highlight words by
    reversing colors rather than underlining, you can set
    `colors."diff token"={ underline = false, reverse = true }` in your config.

-   Added `revsets.log-graph-prioritize`, which can be used to configure
    which branch in the `jj log` graph is displayed on the left instead of `@`
    (e.g. `coalesce(description("megamerge\n"), trunk())`)

-   `jj resolve` now accepts new built-in merge tools `:ours` and `:theirs`.
    These merge tools accept side [#&#8203;1](jj-vcs/jj#1) and side [#&#8203;2](jj-vcs/jj#2) of the conflict respectively.

##### Fixed bugs

-   `jj log -p --stat` now shows diff stats as well as the default color-words/git
    diff output. [#&#8203;5986](jj-vcs/jj#5986)

-   The built-in diff editor now correctly handles deleted files.
    [#&#8203;3702](jj-vcs/jj#3702)

-   The built-in diff editor now correctly retains the executable bit on newly
    added files when splitting. [#&#8203;3846](jj-vcs/jj#3846)

-   `jj config set`/`--config` value parsing rule is relaxed in a way that
    unquoted apostrophes are allowed.
    [#&#8203;5748](jj-vcs/jj#5748)

-   `jj fix` could previously create new conflicts when a descendant of a fixed
    revision was already correctly formatted.

##### Contributors

Thanks to the people who made this release happen!

-   Aleksey Kuznetsov ([@&#8203;zummenix](https://github.com/zummenix))
-   Anton Älgmyr ([@&#8203;algmyr](https://github.com/algmyr))
-   Austin Seipp ([@&#8203;thoughtpolice](https://github.com/thoughtpolice))
-   Baltasar Dinis ([@&#8203;bsdinis](https://github.com/bsdinis))
-   Benjamin Tan ([@&#8203;bnjmnt4n](https://github.com/bnjmnt4n))
-   Brandon Hall ([@&#8203;tenkabuto](https://github.com/tenkabuto))
-   Caleb White ([@&#8203;calebdw](https://github.com/calebdw))
-   Daniel Luz ([@&#8203;mernen](https://github.com/mernen))
-   David Rieber ([@&#8203;drieber](https://github.com/drieber))
-   demize ([@&#8203;demize](https://github.com/demize))
-   Emily ([@&#8203;emilazy](https://github.com/emilazy))
-   Evan Mesterhazy ([@&#8203;emesterhazy](https://github.com/emesterhazy))
-   Fedor Sheremetyev ([@&#8203;sheremetyev](https://github.com/sheremetyev))
-   George Christou ([@&#8203;gechr](https://github.com/gechr))
-   Ilya Grigoriev ([@&#8203;ilyagr](https://github.com/ilyagr))
-   Jakob Hellermann ([@&#8203;jakobhellermann](https://github.com/jakobhellermann))
-   Jo Liss ([@&#8203;joliss](https://github.com/joliss))
-   Joachim Desroches ([@&#8203;jedesroches](https://github.com/jedesroches))
-   Johannes Altmanninger ([@&#8203;krobelus](https://github.com/krobelus))
-   Jonathan Gilchrist ([@&#8203;jgilchrist](https://github.com/jgilchrist))
-   Kenyon Ralph ([@&#8203;kenyon](https://github.com/kenyon))
-   Lucas Garron ([@&#8203;lgarron](https://github.com/lgarron))
-   Martin von Zweigbergk ([@&#8203;martinvonz](https://github.com/martinvonz))
-   Nick Pupko ([@&#8203;npupko](https://github.com/npupko))
-   Philip Metzger ([@&#8203;PhilipMetzger](https://github.com/PhilipMetzger))
-   Raphael Borun Das Gupta ([@&#8203;das-g](https://github.com/das-g))
-   Remo Senekowitsch ([@&#8203;senekor](https://github.com/senekor))
-   Robin Stocker ([@&#8203;robinst](https://github.com/robinst))
-   Scott Taylor ([@&#8203;scott2000](https://github.com/scott2000))
-   Siva Mahadevan ([@&#8203;svmhdvn](https://github.com/svmhdvn))
-   Vincent Ging Ho Yim ([@&#8203;cenviity](https://github.com/cenviity))
-   Yuya Nishihara ([@&#8203;yuja](https://github.com/yuja))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC4xMS4yIiwidXBkYXRlZEluVmVyIjoiNDAuMTEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90Il19-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐛bug Something isn't working scm-record Issues relating to the scm-record library, used as the default interactive diff/merge editor.
Projects
None yet
5 participants