Repository navigation
feat(server): add jj commit, push and PR workflows - #20753
Draft
THEjacob1000 wants to merge 5 commits into
Draft
THEjacob1000 wants to merge 5 commits into
THEjacob1000 wants to merge 5 commits into
Conversation
This was referenced Oct 17, 2026
This was referenced Oct 17, 2026
THEjacob1000
force-pushed
the
feat/jj-workflow
branch
4 times, most recently
from
October 17, 2026 22:25
43e2813 to
bde6d66
Compare
|
Three bugs, all reproduced on 0.46:
Smaller: commit is allowed on a conflicted The |
THEjacob1000
force-pushed
the
feat/jj-workflow
branch
2 times, most recently
from
October 19, 2026 18:00
6259a32 to
d53ad87
Compare
Co-authored-by: Лев Федорец <152093961+knocking4thcylinder@users.noreply.github.com>
Co-authored-by: Лев Федорец <152093961+knocking4thcylinder@users.noreply.github.com> Co-authored-by: Omar Shaarawi <16183117+omarshaarawi@users.noreply.github.com>
…vcs kind Co-authored-by: Лев Федорец <152093961+knocking4thcylinder@users.noreply.github.com>
Co-authored-by: Лев Федорец <152093961+knocking4thcylinder@users.noreply.github.com>
THEjacob1000
force-pushed
the
feat/jj-workflow
branch
from
October 19, 2026 20:12
d53ad87 to
9bc3914
Compare
|
Rechecked at 9bc3914 with jj 0.46.
Minor:
|
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Native status doesn't let a jj thread commit, publish its bookmark or open/check out a PR. Git mutations can target the wrong workspace or move a shared base bookmark. Stays dormant until #20756.
Change
JjStackedActionconnects native commit, remote operations and PR preparation. Commit usesjj committhen advances the selected bookmark, and selected paths are literal filesets. Push targets one bookmark. Pull fast-forwards the bookmark and rebases the empty@onto it, keeping its change id, description and edits; a diverged bookmark or non-empty@asks you to rebase in jj. PR creation reuses #20752's step, and checkout imports the source ref as a child commit in a native workspace.From @omarshaarawi's review: committing with
@mid-stack picks the nearest feature bookmark and never moves or pushesmain, a description already on@is kept (a message is generated only when it's empty), pull rebases instead ofjj newso edits can't be orphaned, and a conflicted@is refused. A failed first push to a new remote now gets the same guidance Git does. Includes @knocking4thcylinder's managed-bookmark protections and @omarshaarawi's shared-driver fix.Known gaps: jj commits don't run Git hooks (surfaced in the commit dialog by #20754), and automatic pull doesn't apply to jj repos, only the Pull action.
Scope and approval
Approval is pending in #18468. Commits 1 to 6 are dormant on their own, #20756 is the one that turns jj on, and #20755 (idle workspace cleanup) sits on top so it can wait until the rest lands. Tracks #1126, the originals #11373, #11382, #11383, #11384, and ports #13816, #16380. @gergesh's port was a reference.
GitHub can't create stacked PRs from a fork, so the diff carries the PRs below. Review the top commit only.
Verification
Against a local bare remote: bookmark create, a selected-file commit leaving the other file in
@, a mid-stack commit that kept the descendant,mainand the existing description, conflict refusal, push and pull, diverged-remote refusal and a first push. Hosted publish and PR create/checkout weren't exercised because they need real GitHub writes.Screenshots are from the integrated stack before the latest rebase onto current main. After rebasing, the stack was re-verified with the automated tests and the process comparison; the manual pass wasn't repeated.
Native controls and web workflow evidence