feat(record): add --fixup option similar to reword --fixup #1632
+161
−55
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.
Implement
record --fixup=<rev>similar toreword --fixup=<rev>, i.e. by generating a commit message with thefixup! ...prefix, suitable for use withgit rebase --autosquash.There is an alternative behavior that we can implement: since now we have
move --fixup -d <rev>we can directly squash the changes into<rev>without even committing it at all. This behavior would be similar tojj squash --into=<rev>. However, I opted not to do this as the squash operation may fail (e.g. due to merge conflicts) and it seems more natural for the semantics ofrecordto be the same asreword. What do you think?By the way, although
recordandrewordhave similar semantics, their implementations are quite different:recordsimply callsgit commitdirectly, and we simply pass along the--fixupflag after resolving the revset expressions.