You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
I frequently build long sets of commits, then decide to rebase them in a particular order and group them into several PRs which are all in parallel. That is, I start with:
A - B - C - D - E - F - G
and want to turn it into:
A - B - C \
- G
D - E - F /
With Git, this is accomplished by some irritating git rebase -i invocations. With jj, it looked like jj parallelize did exactly what I was wanting, but it turns out the behavior is exactly backward from this workflow: you can pass multiple revsets, but if you do, the commits within each revset will be parallelized separately.
Note how this is backward from what I am hoping for: each commit within the groups I gave is a sibling; I wanted the groups to be siblings of each other.
Describe alternatives you've considered
It could be a flag for jj parallelize (--groups?): I don't know how useful the current behavior is considered (I'm a new user).
Parallelizing the individual desired tip revisions has no effect, but perhaps it could automatically grab revisions between the indicated ones:
I have just discovered that the desired workflow can be accomplished by judicious use of rebase:
$ jj rebase -s 'all:yk|x' -d z
This works because rebase also automatically rebases child commits of the one(s) named in the revset. all: is required because by default rebase wants a single revision. This still isn't a perfect workflow, since it needs the user to name the first commit of each desired branch (not the tip - aesthetically superior in my opinion, but this is a quibble).
The syntax is not awful although dedicated porcelain would be really slick, and if it were discoverable how to do this from parallelize then that would also be an acceptable alternative I think.
You may already know this, but just to explain the current behavior, jj parallelize --help says this:
The command effectively says "these revisions are actually independent",
meaning that they should no longer be ancestors/descendants of each other.
The current behavior is consistent with that description.
I think your proposal is also reasonable. I know we've talked about it before (maybe in #1079 but I haven't verified). Maybe we could allow jj parallelize --group yk..t --group x..l to say that internal dependencies within each group should be preserved but dependencies between them should not. I haven't thought much about how well that would work. There might be corner cases.
Is your feature request related to a problem? Please describe.
I frequently build long sets of commits, then decide to rebase them in a particular order and group them into several PRs which are all in parallel. That is, I start with:
and want to turn it into:
With Git, this is accomplished by some irritating
git rebase -i
invocations. Withjj
, it looked likejj parallelize
did exactly what I was wanting, but it turns out the behavior is exactly backward from this workflow: you can pass multiple revsets, but if you do, the commits within each revset will be parallelized separately.Here's an actual example:
Describe the solution you'd like
Note how this is backward from what I am hoping for: each commit within the groups I gave is a sibling; I wanted the groups to be siblings of each other.
Describe alternatives you've considered
It could be a flag for
jj parallelize
(--groups
?): I don't know how useful the current behavior is considered (I'm a new user).Parallelizing the individual desired tip revisions has no effect, but perhaps it could automatically grab revisions between the indicated ones:
Version info
The text was updated successfully, but these errors were encountered: