-
Notifications
You must be signed in to change notification settings - Fork 319
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
jj handles renames of the remote trunk poorly #4616
Comments
You'll need to update I agree the error message isn't actionable. |
yuja
added a commit
to yuja/jj
that referenced
this issue
Oct 10, 2024
This patch replaces all call sites with present(trunk()), and adds an explicit check for unresolvable trunk(). If we add coalesce() expression, maybe it can be rewritten to coalesce(present(trunk()), builtin_trunk()). Fixes martinvonz#4616
4 tasks
yuja
added a commit
to yuja/jj
that referenced
this issue
Oct 11, 2024
This patch replaces all call sites with present(trunk()), and adds an explicit check for unresolvable trunk(). If we add coalesce() expression, maybe it can be rewritten to coalesce(present(trunk()), builtin_trunk()). Fixes martinvonz#4616
netbsd-srcmastr
pushed a commit
to NetBSD/pkgsrc
that referenced
this issue
Nov 10, 2024
## [0.23.0] - 2024-11-06 ### Security fixes * Fixed path traversal by cloning/checking out crafted Git repository containing `..`, `.jj`, `.git` paths. ([GHSA-88h5-6w7m-5w56](https://github.com/martinvonz/jj/security/advisories/GHSA-88h5-6w7m-5w56);CVE-2024-51990) ### Breaking changes * Revset function names can no longer start with a number. * Evaluation error of `revsets.short-prefixes` configuration is now reported. * The `HEAD@git` symbol no longer resolves to the Git HEAD revision. Use `git_head()` or `@-` revset expression instead. The `git_head` template keyword now returns a boolean. * Help command doesn't work recursively anymore, i.e. `jj workspace help root` doesn't work anymore. * The color label `op_log` from the `[colors]` config section now **only** applies to the op log and not to the other places operations are displayed. In almost all cases, if you configured `op_log` before, you should use the new `operation` label instead. * Default operation log template now shows end times of operations instead of start times. ### Deprecations * `git.auto-local-bookmark` replaces `git.auto-local-branch`. The latter remains supported for now (at lower precedence than the former). ### New features * Added diff options to ignore whitespace when comparing lines. Whitespace changes are still highlighted. * New command `jj simplify-parents` will remove redundant parent edges. * `jj squash` now supports `-f/-t` shorthands for `--from/--[in]to`. * Initial support for shallow Git repositories has been implemented. However, deepening the history of a shallow repository is not yet supported. * `jj git clone` now accepts a `--depth <DEPTH>` option, which allows to clone the repository with a given depth. * New command `jj file annotate` that annotates files line by line. This is similar in functionality to `git blame`. Invoke the command with `jj file annotate <file_path>`. The output can be customized via the `templates.annotate_commit_summary` config variable. * `jj bookmark list` gained a `--remote REMOTE` option to display bookmarks belonging to a remote. This option can be combined with `--tracked` or `--conflicted`. * New command `jj config unset` that unsets config values. For example, `jj config unset --user user.name`. * `jj help` now has the flag `--keyword` (shorthand `-k`), which can give help for some keywords (e.g. `jj help -k revsets`). To see a list of the available keywords you can do `jj help --help`. * New `at_operation(op, expr)` revset can be used in order to query revisions based on historical state. * String literals in filesets, revsets and templates now support hex bytes (with `\e` as escape / shorthand for `\x1b`). * New `coalesce(revsets...)` revset which returns commits in the first revset in the `revsets` list that does not evaluate to `none()`. * New template function `raw_escape_sequence(...)` preserves escape sequences. * Timestamp objects in templates now have `after(date) -> Boolean` and `before(date) -> Boolean` methods for comparing timestamps to other dates. * New template functions `pad_start()`, `pad_end()`, `truncate_start()`, and `truncate_end()` are added. * Add a new template alias `bultin_log_compact_full_description()`. * Added the config settings `diff.color-words.context` and `diff.git.context` to control the default number of lines of context shown. ### Fixed bugs * Error on `trunk()` revset resolution is now handled gracefully. [#4616](martinvonz/jj#4616) * Updated the built-in diff editor `scm-record` to version [0.4.0](https://github.com/arxanas/scm-record/releases/tag/v0.4.0), which includes multiple fixes.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Description
Steps to Reproduce the Problem
master
branchjj git init --colocate
in this copyjj branch track master@origin
in this copymaster
tomain
, push the newmain
branch to the remote, deletemaster
on the remotejj git fetch
on the first checkoutmain
branch withjj new main
Expected Behavior
Ideally: You're able to continue developing the on local repo with the new name for the trunk branch.
At a minimum: Warn the target that the
trunk()
alias refers to has been deleted and you need to update thetrunk()
alias.Actual Behavior
Output from
jj git fetch
in step 6:Most
jj
commands fail after thisjj git fetch
.It's not clear how to recover from this situation other than
rm -R .jj && jj git init --colocate
Specifications
The text was updated successfully, but these errors were encountered: