git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] subtree.sh: Use raw subject and body modifier "%B" instead of "%s%n%n%b"

From
greened@obbligato.org <greened@obbligato.org>
Date
Dec 31, 2012, 22:57 UTC
Message-ID
<87mwwt4yp4.fsf@waller.obbligato.org>
In-Reply-To
<87zk5pdn43.fsf@waller.obbligato.org>
greened@obbligato.org writes:
Show 31 quoted lines
> Techlive Zheng <techlivezheng@gmail.com> writes:
>
>> "%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 <techlivezheng@gmail.com>
>> ---
>>  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_EMAIL
>
> This 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
Previous: greened@obbligato.orgNext: greened@obbligato.org
Message 4 of 6 in “[git-subtree.sh] Use raw subject and body modifier "%B" instead of "%s%n%n%b" for commit”
  1. [git-subtree.sh] Use raw subject and body modifier "%B" instead of "%s%n%n%b" for commitTechlive Zheng, Aug 10, 2012
  2. subtree.sh: Use raw subject and body modifier "%B" instead of "%s%n%n%b"Techlive Zheng, Aug 10, 2012
  3. greened@obbligato.orgAug 21, 2012
  4. greened@obbligato.orgDec 31, 2012
  5. greened@obbligato.orgJan 1, 2013
  6. greened@obbligato.orgAug 21, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.