Problem:
There is no way to apply the changes from a specific commit to the current branch without merging the entire history of that commit.
Fix:
Implement pit cherry-pick <commit> to calculate the diff of a commit and apply it as a new commit on the current branch.
Technical Detail:
This requires calculating the diff between <commit> and <commit>^ (parent). Then, we must patch the current working directory with this diff. If there are conflicts, we report them (similar to merge). Finally, we automatically commit the result.
Behaviour:
pit cherry-pick <hash>
Applies the changes introduced by <hash> onto the current HEAD and creates a new commit.
Note
Problem:
There is no way to apply the changes from a specific commit to the current branch without merging the entire history of that commit.
Fix:
Implement
pit cherry-pick <commit>to calculate the diff of a commit and apply it as a new commit on the current branch.Technical Detail:
This requires calculating the diff between
<commit>and<commit>^(parent). Then, we must patch the current working directory with this diff. If there are conflicts, we report them (similar to merge). Finally, we automatically commit the result.Behaviour:
pit cherry-pick <hash>Applies the changes introduced by
<hash>onto the current HEAD and creates a new commit.Note