`git notes append`创建额外的空行

vyu0f0g1  于 2023-08-01  发布在  Git
关注(0)|答案(2)|浏览(138)

假设我有git commit和git note:

commit 385f6c188a5b1cef25acb6412ba4acd7c25b0b9c (HEAD -> master)
Author: zuku
Date:   Tue Oct 8 14:14:31 2019 +0200

    Test commit

Notes:
    Test note

字符串
现在,我想在这篇文章中添加更多的内容:

git notes append -m "Next line"
git notes append -m "Another line"


问题是每次git notes append添加空行时:

commit 385f6c188a5b1cef25acb6412ba4acd7c25b0b9c (HEAD -> master)
Author: zuku
Date:   Tue Oct 8 14:14:31 2019 +0200

    Test commit

Notes:
    Test note

    Next line

    Another line


我看不出这样做的目的,我真的希望避免这些空洞的台词。我知道我可以使用git notes edit并手动输入文本,但我需要从命令行执行此操作,而不使用编辑器。我在docs中没有找到任何有用的信息。有什么办法吗?- 谢谢-谢谢

m4pnthwp

m4pnthwp1#

使用这个小脚本

# 1 line script:
notes=$(git notes show HEAD); git notes add -f -m"${notes}<YOUR MESSAGE>"

字符串

说明

# Get the current note's message and store it in notes variable
# In this sample I'm using HEAD but you can use any commit you wish
notes=$(git notes show HEAD)

# Use the previous not and append the desired extra message to it
# Update the current message using the -f flag so it will overwrite the existing note
git notes add -f -m"${notes}<YOUR MESSAGE>"

jv4diomz

jv4diomz2#

TLDR;使用git notes add -m foo -m bar --no-separator
或者:

git notes append --no-separator -m "Next line"
git notes append --no-separator  -m "Another line"

字符串
你可以看到Git 2.42(Q3 2023)中的分隔符:'git notes append'(man)被教导'--separator'指定要在段落之间插入的字符串。
参见commit 3d6a316commit c4e2aa7commit b7d87adcommit 90bc19bcommit 5958704commit 3d27ae0commit ef48fcc(2023年5月27日)by Teng Long ( dyrone )
(由Junio C Hamano -- gitster --合并于commit a9cc3b8,2023年7月6日)

notes.c:引入'--separator='选项

签收人:腾龙
当添加新注解或追加到现有注解时,我们将在段落之间插入一个空行,如:

$ git notes add -m foo -m bar
$ git notes show HEAD
foo

bar


默认行为有时是不够的,用户可能希望在段落之间使用自定义分隔符,例如在指定'-m','-F','-C','-c'选项时。
因此,这次提交为'git notes add'(man)和'git notes append'(man)引入了一个新的'--separator'选项,例如在执行时:

$ git notes add -m foo -m bar --separator="-"
$ git notes show HEAD
foo
-
bar


如果--separator的值还没有以一结束,则向该值添加一个换行符。
所以执行时:

$ git notes add -m foo -m bar --separator="-"


和$ export LF=”“$ git notes add -m foo -m bar --separator="-$LF”
这两种执行都产生相同的结果。
我们使用“strbuf”数组来concat而不是"string_list",的原因是二进制文件内容可能在中间包含'\0',如果使用字符串保存,这将导致损坏的结果。
git notes现在在其手册页中包括:
-m-F选项给出的新消息附加到对象的现有注解中,或者如果不存在注解,则将其作为新注解添加(默认为HEAD)。当附加到现有注解时,在每个新消息之前添加一个空行作为段落间分隔符。分离器可以使用--separator选项进行自定义。
git notes现在在其手册页中包括:

--separator <paragraph-break>

指定用作自定义段落间分隔符的字符串(根据需要在末尾添加换行符)。默认为空行。
但现在:

notes:我的天啊引入“--no-separator”选项

签收人:腾龙
有时,用户可能想要添加或追加多个注解,而不在它们之间添加任何分隔符。
讨论:
https://public-inbox.org/git/3f86a553-246a-4626-b1bd-bacd8148318a@app.fastmail.com/
git notes现在在其手册页中包括:

--[no-]separator, --separator=<paragraph-break>(1000个像素)

git notes现在在其手册页中包括:
如果--no-separator,则段落之间不添加分隔符。
默认为空行。

相关问题