Trying to split a hunk into smaller ones by git add -p
and split
option, but entire file appears as one hunk and I can't split it.
git help add
says I should have split, and I recall using it, but in my current example the option doesn't appear in the prompt.Git version: 1.9.1. Xubuntu 14, oh-my-zsh. The hunk is not one line, it's multiple lines. Any ideas why would that be?
Edited with more data, here's console log:
+last line of long text Stage this hunk [y,n,q,a,d,/,e,?]? s y - stage this hunk n - do not stage this hunk q - quit; do not stage this hunk nor any of the remaining ones a - stage this hunk and all later hunks in the file d - do not stage this hunk nor any of the later hunks in the file g - select a hunk to go to / - search for a hunk matching the given regex j - leave this hunk undecided, see next undecided hunk J - leave this hunk undecided, see next hunk k - leave this hunk undecided, see previous undecided hunk K - leave this hunk undecided, see previous hunk s - split the current hunk into smaller hunks e - manually edit the current hunk ? - print help
This can be used to split a commit into two: Start an interactive rebase with git rebase -i <commit>^ , where <commit> is the commit you want to split. In fact, any commit range will do, as long as it contains that commit. Mark the commit you want to split with the action "edit".
The reason it's not working is because your hunk is already as small as git will automatically get it. Split only works when there are non-changed lines separating changed lines close enough that git assumes they belong together.
In order to achieve what you want, you will need to manually edit the patch
Why is split option missing in
git add -p
?
You won't have to ask this question with Git 2.17 (Q2 2018), since the single-key help is now given only for keys that are enabled (e.g. help for '/
' won't be shown when there is only one hunk).
See commit 4bdd6e7, commit 88f6ffc, commit 01a6966 (13 Feb 2018) by Phillip Wood (phillipwood
).
(Merged by Junio C Hamano -- gitster
-- in commit 60f8b89, 06 Mar 2018)
First:
add -p
: improve error messagesIf the user presses a key that isn't currently active then explain why it isn't active rather than just listing all the keys. It already did this for some keys, this patch does the same for the those that weren't already handled.
And:
add -p
: only display help for active keysIf the user presses a key that
add -p
wasn't expecting then it prints a list of key bindings.
Although the prompt only lists the active bindings the help was printed for all bindings.Fix this by using the list of keys in the prompt to filter the help.
Note that the list of keys was already passed tohelp_patch_cmd()
by the caller so there is no change needed to the call site.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With