Skip to content
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

FR: allow pushing commits with an empty author #3029

Closed
colemickens opened this issue Feb 12, 2024 · 2 comments · Fixed by #3936
Closed

FR: allow pushing commits with an empty author #3029

colemickens opened this issue Feb 12, 2024 · 2 comments · Fixed by #3936
Labels
enhancement New feature or request

Comments

@colemickens
Copy link
Contributor

Is your feature request related to a problem? Please describe.

context: https://discord.com/channels/968932220549103686/968932220549103689/1206485113949388860

context explained:

  1. I am using jj with nixpkgs.
  2. I rebased my custom cmpkgs branch on nixos-unstable@nixos (aka https://github.com/nixos/nixpkgs -> nixos-unstable branch)
  3. I tried to push
  4. I get:
Error: Won't push commit c2e3bdf541bc since it has no author and/or committer set

This stems from this commit: NixOS/nixpkgs@c2e3bdf
from this PR: NixOS/nixpkgs#284580

Describe the solution you'd like

A flag to ignore this safety/sanity check and allow me to push anyway.

Describe alternatives you've considered
n/a seems unavoidable, I can't control upstream.

Additional context

workaround

> # this assumes you have named jj branch and 'origin' git branch the same
> b=cmpkgs # branch name
> # make sure you don't have [ui] color=always
> git -C .jj/repo/store/git push origin $(jj log -r ${b} -T commit_id --no-graph):$b -f
@PhilipMetzger PhilipMetzger added the enhancement New feature or request label Feb 12, 2024
@thoughtpolice
Copy link
Collaborator

See also: #2633, which is similar but for the case of a fully empty commit message, as opposed to the author.

@ilyagr
Copy link
Collaborator

ilyagr commented Jun 15, 2024

@thoughtpolice suggested in https://discord.com/channels/968932220549103686/1166440777325490276/threads/1251567859465719960 that we should not run this check on immutable commits.

This is slightly different to having an option. Both seem useful to me, but if people agree that the immutable commits approach is a good one, that feature seems more important to me.

mlcui-corp added a commit to mlcui-corp/jj that referenced this issue Jun 21, 2024
mlcui-corp added a commit to mlcui-corp/jj that referenced this issue Jun 21, 2024
mlcui-corp added a commit to mlcui-corp/jj that referenced this issue Jun 23, 2024
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this issue Jul 7, 2024
## [0.19.0] - 2024-07-03

### Breaking changes

* In revset aliases, top-level `kind:pattern` expression is now parsed as
  modifier. Surround with parentheses if it should be parsed as string/file
  pattern.

* Dropped support for automatic upgrade of repo formats used by versions before
  0.12.0.

* `jj fix` now defaults to the broader revset `-s reachable(@, mutable())`
  instead of `-s @`.

* Dropped support for deprecated `jj branch delete`/`forget` `--glob` option.

* `jj branch set` now creates new branch if it doesn't exist. Use `jj branch
  move` to ensure that the target branch already exists.
  [#3584](jj-vcs/jj#3584)

### Deprecations

* Replacing `-l` shorthand for `--limit` with `-n` in `jj log`, `jj op log`
  and `jj obslog`.

* `jj split --siblings` is deprecated in favor of `jj split --parallel` (to
  match `jj parallelize`).

* A new `jj file` subcommand now replaces several existing uncategorized
  commands, which are deprecated.
  - `jj file show` replaces `jj cat`.
  - `jj file chmod` replaces `jj chmod`.
  - `jj file list` replaces `jj files`.

### New features

* Support background filesystem monitoring via watchman triggers enabled with
  the `core.watchman.register_snapshot_trigger = true` config.

* Show paths to config files when configuration errors occur.

* `jj fix` now supports configuring the default revset for `-s` using the
  `revsets.fix` config.

* The `descendants()` revset function now accepts an optional `depth` argument;
  like the `ancestors()` depth argument, it limits the depth of the set.

* Revset/template aliases now support function overloading.
  [#2966](jj-vcs/jj#2966)

* Conflicted files are individually simplified before being materialized.

* The `jj file` subcommand now contains several existing file utilities.
  - `jj file show`, replacing `jj cat`.
  - `jj file chmod` replacing `jj chmod`.
  - `jj file list` replacing `jj files`.

* New command `jj branch move` let you update branches by name pattern or source
  revision.

* New diff option `jj diff --name-only` allows for easier shell scripting.

* In color-words diffs, hunks are now highlighted with underline. See [diff
  colors and styles](docs/config.md#diff-colors-and-styles) for customization.

* `jj git push -c <arg>` can now accept revsets that resolve to multiple
  revisions. This means that `jj git push -c xyz -c abc` is now equivalent to
  `jj git push -c 'all:(xyz | abc)'`.

* `jj prev` and `jj next` have gained a `--conflict` flag which moves you
  to the next conflict in a child commit.

* New command `jj git remote set-url` that sets the url of a git remote.

* Author timestamp is now reset when rewriting discardable commits (empty
  commits with no description) if authored by the current user.
  [#2000](jj-vcs/jj#2000)

* `jj commit` now accepts `--reset-author` option to match `jj describe`.

* `jj squash` now accepts a `--keep-emptied` option to keep the source commit.

### Fixed bugs

* `jj git push` now ignores immutable commits when checking whether a
  to-be-pushed commit has conflicts, or has no description / committer / author
  set. [#3029](jj-vcs/jj#3029)

* `jj` will look for divergent changes outside the short prefix set even if it
  finds the change id inside the short prefix set.
  [#2476](jj-vcs/jj#2476)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants