-
Notifications
You must be signed in to change notification settings - Fork 376
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: jj commit --insert-{before,after} <change id>
#2938
Comments
[As I was writing this comment, I realised my idea is not baked enough. I will possibly raise it again (or not); see final paragraph for the reason.] Prior discussionsA similar idea had been raised before, in this #1188 (comment) by @gasche (lightly edited excerpts):
If I read the ensuing discussion correctly, that idea fell short because of semantics and context. The context was of the My current proposal focuses on a more narrow use case, when the diff is in the working copy and we want to insert the changes as a new revision somewhere else in the graph. However, my proposal also falls short on semantics. |
My high-level understanding is that jj currently lacks tools to move changes around (we can use |
While I personally don't think that |
To me, the "just in the order the users did thing" notion of history corresponds to the operation log. Many version-control users want to be able to exert more control on the change graph, proposing an idealized view of the document evolution that may not correspond to the user's own history. "rewriting history" in this way is a key element of many social practices around software development (for example, change-by-change code review), and helps avoid conflicts or ease their resolution. Explicit control over the "history" (the graph of changes) is advertised as a core feature of jj, see for example the Comprehensive support for rewriting history subsection of the README. |
Yes, and I wonder if that is what makes it "change management" as opposed to "source code management". In my mind, the tool for "version control" takes the burden of the "control" part away from the user, providing ease with the "version" part. |
Effectively, overload
jj commit
with another atomic shortcut that is already achievable with a series of other commands:Would become a shortcut for:
jj new --message MSG --insert-after C # ↑ note the fresh new change id jj move --to new-change-id
The text was updated successfully, but these errors were encountered: