Re: [PATCH] subtree.sh: Use raw subject and body modifier "%B" instead of "%s%n%n%b"
From: <hidden>
Date: 2016-06-15 22:55:37
greened@obbligato.org writes:
Techlive Zheng [off-list ref] writes:quoted
"%s%n%n%b" is not always equal to "%B". If the commit msg does not have a body, this will append an extra new-line character to the msg title which would cause the splited commit has a new sha1 hash. In most cases, this does not matter, but for a project which did not merged using this script initially, the 'split' command would not genereate the same commits as the orginal which may cause conflicts. Signed-off-by: Techlive Zheng <redacted> --- contrib/subtree/git-subtree.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh index 920c664..5598210 100755 --- a/contrib/subtree/git-subtree.sh +++ b/contrib/subtree/git-subtree.sh@@ -296,7 +296,7 @@ copy_commit() # We're going to set some environment vars here, so # do it in a subshell to get rid of them safely later debug copy_commit "{$1}" "{$2}" "{$3}" - git log -1 --pretty=format:'%an%n%ae%n%ad%n%cn%n%ce%n%cd%n%s%n%n%b' "$1" | + git log -1 --pretty=format:'%an%n%ae%n%ad%n%cn%n%ce%n%cd%n%B' "$1" | ( read GIT_AUTHOR_NAME read GIT_AUTHOR_EMAILThis looks good to me. I assume this passes all the tests. Can you add a test for this bug so we don't regress? Junio, I am good with this patch as soon as we get a test for the problem.
I've applied this patch to my working copy but I'm not finding that I
can recreate the original problem when the patch is disabled.
I assumed the scenario you're trying to fix is:
- Make some commit C to project A with a one-line message
- work, commit, work...
- Add project A as a subproject
- work, commit, work...
- Split project A off into a separate repository
After this, commit C with the one-line message in the split-off projet
should have the same hash it had before project A was incorporated as a
subproject.
As I understad it, you saw the post-split commit having a different
hash?
Is that right? I am not seeing that problem even without your patch.
I want to make sure I understand what the problem is so I can test for
it.
Thanks!
-David