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

[PATCH v8 0/2] am: support --empty=(die|drop|keep) option to handle empty patches

From
Aleen via GitGitGadget <gitgitgadget@gmail.com>
Date
Nov 22, 2021, 06:46 UTC
Message-ID
<pull.1076.v8.git.1637563611.gitgitgadget@gmail.com>
In-Reply-To
<pull.1076.v7.git.1637298298.gitgitgadget@gmail.com>

Since that git has supported the --always option for the git-format-patch command to create a patch with an empty commit message, git-am should support applying and committing with empty patches.

----------------------------------------------------------------------------
Changes since v1:
 1. add a case when not passing the --always option.
 2. rename the --always option to --allow-empty.
----------------------------------------------------------------------------
Changes since v2:
 1. rename the --allow-empty option to --empty-commit.
 2. introduce three different strategies (die|skip|asis) when trying to
    record empty patches as empty commits.
----------------------------------------------------------------------------
Changes since v3:
 1. generate the missed file for test cases.
 2. grep -f cannot be used under Mac OS.
----------------------------------------------------------------------------
Changes since v4:
 1. rename the --empty-commit option to --empty.
 2. rename three different strategies (die|skip|asis) to die, drop and keep
    correspondingly.
----------------------------------------------------------------------------
Changes since v5:
 1. throw an error when passing --empty option without value.
----------------------------------------------------------------------------
Changes since v6:
 1. update code according to the seen branch
 2. fix wrong document of git-am
----------------------------------------------------------------------------
Aleen (2):
  doc: git-format-patch: describe the option --always
  am: support --empty=<option> to handle empty patches
 Documentation/git-am.txt           |  8 +++++
 Documentation/git-format-patch.txt |  6 +++-
 builtin/am.c                       | 55 +++++++++++++++++++++++++++---
 t/t4150-am.sh                      | 49 ++++++++++++++++++++++++++
 4 files changed, 112 insertions(+), 6 deletions(-)
base-commit: ca35af825273b98fc8dc11527488952f5db8eb80
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1076%2Faleen42%2Fnext-v8
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1076/aleen42/next-v8
Pull-Request: https://github.com/gitgitgadget/git/pull/1076
Range-diff vs v7:
 1:  d612bc49d57 ! 1:  5d98a088e14 doc: git-format-patch: describe the option --always
     @@ Commit message
          This commit has described how to use '--always' option in the command
          'git-format-patch' to include patches for commits that emit no changes.
      
     -    Signed-off-by: Aleen <aleen42@vip.qq.com>
     +    Signed-off-by: Aleen 徐沛文 <aleen42@vip.qq.com>
      
       ## Documentation/git-format-patch.txt ##
      @@ Documentation/git-format-patch.txt: SYNOPSIS
 2:  9e60e77c041 ! 2:  3ff18e16a7a am: support --empty=<option> to handle empty patches
     @@ Commit message
          those empty patches. In this commit, we have implemented three
          valid options ('die', 'drop' and 'keep').
      
     -    Signed-off-by: Aleen <aleen42@vip.qq.com>
     +    Signed-off-by: Aleen 徐沛文 <aleen42@vip.qq.com>
      
       ## Documentation/git-am.txt ##
      @@ Documentation/git-am.txt: SYNOPSIS
     @@ Documentation/git-am.txt: OPTIONS
       --quoted-cr=<action>::
       	This flag will be passed down to 'git mailinfo' (see linkgit:git-mailinfo[1]).
       
     -+--empty-commit=(die|drop|keep)::
     ++--empty=(die|drop|keep)::
      +	By default, or when the option is set to 'die', the command
      +	errors out on an input e-mail message that lacks a patch. When
      +	this option is set to 'drop', skip such an e-mail message instead.
     @@ builtin/am.c: int cmd_am(int argc, const char **argv, const char *prefix)
       			N_("(internal use for git-rebase)")),
       		OPT_END()
      
     - ## po/bg.po ##
     -@@ po/bg.po: msgid "Dirty index: cannot apply patches (dirty: %s)"
     - msgstr ""
     - "Индексът не е чист: кръпките не може да бъдат приложени (замърсени са: %s)"
     - 
     --#: builtin/am.c:1798 builtin/am.c:1865
     -+#: builtin/am.c:1834 builtin/am.c:1902
     - #, c-format
     - msgid "Applying: %.*s"
     - msgstr "Прилагане: %.*s"
     -
     - ## po/ca.po ##
     -@@ po/ca.po: msgstr "no s'ha pogut escriure el fitxer d'índex"
     - msgid "Dirty index: cannot apply patches (dirty: %s)"
     - msgstr "Índex brut: no es poden aplicar pedaços (bruts: %s)"
     - 
     --#: builtin/am.c:1798 builtin/am.c:1865
     -+#: builtin/am.c:1834 builtin/am.c:1902
     - #, c-format
     - msgid "Applying: %.*s"
     - msgstr "S'està aplicant: %.*s"
     -
     - ## po/de.po ##
     -@@ po/de.po: msgstr "Konnte Index-Datei nicht schreiben."
     - msgid "Dirty index: cannot apply patches (dirty: %s)"
     - msgstr "Geänderter Index: kann Patches nicht anwenden (geändert: %s)"
     - 
     --#: builtin/am.c:1798 builtin/am.c:1865
     -+#: builtin/am.c:1834 builtin/am.c:1902
     - #, c-format
     - msgid "Applying: %.*s"
     - msgstr "Wende an: %.*s"
     -
     - ## po/el.po ##
     -@@ po/el.po: msgstr "Να γίνει εφαρμογή; [y]es/[n]o/[e]dit/[v]iew patch/[a]ccep
     - msgid "Dirty index: cannot apply patches (dirty: %s)"
     - msgstr ""
     - 
     --#: builtin/am.c:1749 builtin/am.c:1817
     -+#: builtin/am.c:1834 builtin/am.c:1902
     - #, c-format
     - msgid "Applying: %.*s"
     - msgstr ""
     -
     - ## po/es.po ##
     -@@ po/es.po: msgstr "no es posible escribir el archivo índice"
     - msgid "Dirty index: cannot apply patches (dirty: %s)"
     - msgstr "Índice sucio: no se puede aplicar parches (sucio: %s)"
     - 
     --#: builtin/am.c:1798 builtin/am.c:1865
     -+#: builtin/am.c:1834 builtin/am.c:1902
     - #, c-format
     - msgid "Applying: %.*s"
     - msgstr "Aplicando: %.*s"
     -
     - ## po/fr.po ##
     -@@ po/fr.po: msgstr "impossible d'écrire le fichier d'index"
     - msgid "Dirty index: cannot apply patches (dirty: %s)"
     - msgstr "Index sale : impossible d'appliquer des patchs (sales : %s)"
     - 
     --#: builtin/am.c:1798 builtin/am.c:1865
     -+#: builtin/am.c:1834 builtin/am.c:1902
     - #, c-format
     - msgid "Applying: %.*s"
     - msgstr "Application de  %.*s"
     -
     - ## po/git.pot ##
     -@@ po/git.pot: msgstr ""
     - msgid "Dirty index: cannot apply patches (dirty: %s)"
     - msgstr ""
     - 
     --#: builtin/am.c:1798 builtin/am.c:1865
     -+#: builtin/am.c:1834 builtin/am.c:1902
     - #, c-format
     - msgid "Applying: %.*s"
     - msgstr ""
     -
     - ## po/id.po ##
     -@@ po/id.po: msgstr "tidak dapat menulis berkas indeks"
     - msgid "Dirty index: cannot apply patches (dirty: %s)"
     - msgstr "Indeks kotor: tidak dapat menerapkan tambalan (kotor: %s)"
     - 
     --#: builtin/am.c:1798 builtin/am.c:1865
     -+#: builtin/am.c:1834 builtin/am.c:1902
     - #, c-format
     - msgid "Applying: %.*s"
     - msgstr "Menerapkan: %.*s"
     -
     - ## po/it.po ##
     -@@ po/it.po: msgstr "impossibile scrivere il file indice"
     - msgid "Dirty index: cannot apply patches (dirty: %s)"
     - msgstr "Indice sporco: impossibile applicare le patch (elemento sporco: %s)"
     - 
     --#: builtin/am.c:1761 builtin/am.c:1829
     -+#: builtin/am.c:1834 builtin/am.c:1902
     - #, c-format
     - msgid "Applying: %.*s"
     - msgstr "Applicazione in corso: %.*s"
     -
     - ## po/ko.po ##
     -@@ po/ko.po: msgstr "적용? 예[y]/아니오[n]/편집[e]/패치 보기[v]/모두 적용[a]:
     - msgid "Dirty index: cannot apply patches (dirty: %s)"
     - msgstr "변경된 인덱스: 패치를 적용할 수 없습니다 (dirty: %s)"
     - 
     --#: builtin/am.c:1808 builtin/am.c:1879
     -+#: builtin/am.c:1834 builtin/am.c:1902
     - #, c-format
     - msgid "Applying: %.*s"
     - msgstr "적용하는 중: %.*s"
     -
     - ## po/pl.po ##
     -@@ po/pl.po: msgstr "nie można zapisać pliku indeksu"
     - msgid "Dirty index: cannot apply patches (dirty: %s)"
     - msgstr "Brudny indeks: nie można zastosować łatek (brudny: %s)"
     - 
     --#: builtin/am.c:1798 builtin/am.c:1865
     -+#: builtin/am.c:1834 builtin/am.c:1902
     - #, c-format
     - msgid "Applying: %.*s"
     - msgstr "Stosowanie: %.*s"
     -
     - ## po/pt_PT.po ##
     -@@
     - #   bisect                           |  bisetar
     - #   blame                            |  blame
     - #   blob object                      |  objeto-blob
     --#   branch                           |  ramo 
     -+#   branch                           |  ramo
     - #   bug                              |  bug
     - #   bundle                           |  conjunto
     - #   bypass                           |  desviar
     -@@
     - #   loose refs                       |  refs soltas
     - #   mark                             |  marca
     - #   master                           |  master
     --#   merge                            |  junção 
     -+#   merge                            |  junção
     - #   mergetag                         |  etiqueta-junção
     - #   object                           |  objeto
     - #   object database                  |  base dados de objeto
     -@@
     - #   token                            |  token
     - #   unset                            |  desdefinir
     - #   untrack                          |  desmonitorizar
     --#   
     -+#
     - #
     - msgid ""
     - msgstr ""
     -@@ po/pt_PT.po: msgstr "incapaz escrever ficheiro de index"
     - msgid "Dirty index: cannot apply patches (dirty: %s)"
     - msgstr "Index sujo: incapaz aplicar patches (sujo: %s)"
     - 
     --#: builtin/am.c:1797 builtin/am.c:1865
     -+#: builtin/am.c:1834 builtin/am.c:1902
     - #, c-format
     - msgid "Applying: %.*s"
     - msgstr "A aplicar: %.*s"
     -
     - ## po/ru.po ##
     -@@
     - # SOME DESCRIPTIVE TITLE.
     - # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
     - # This file is distributed under the same license as the PACKAGE package.
     --# 
     -+#
     - # Translators:
     - # Alexander Golubev <fatzer2@gmail.com>, 2020
     - # Dimitriy Ryazantcev <DJm00n@mail.ru>, 2014-2021
     -@@ po/ru.po: msgstr "не удалось записать индекс"
     - msgid "Dirty index: cannot apply patches (dirty: %s)"
     - msgstr "Индекс изменён: нельзя применять патчи (изменено: %s)"
     - 
     --#: builtin/am.c:1748 builtin/am.c:1816
     -+#: builtin/am.c:1834 builtin/am.c:1902
     - #, c-format
     - msgid "Applying: %.*s"
     - msgstr "Применение: %.*s"
     -
     - ## po/sv.po ##
     -@@ po/sv.po: msgstr "kan inte skriva indexfil"
     - msgid "Dirty index: cannot apply patches (dirty: %s)"
     - msgstr "Smutsigt index: kan inte tillämpa patchar (smutsiga: %s)"
     - 
     --#: builtin/am.c:1798 builtin/am.c:1865
     -+#: builtin/am.c:1834 builtin/am.c:1902
     - #, c-format
     - msgid "Applying: %.*s"
     - msgstr "Tillämpar: %.*s"
     -
     - ## po/tr.po ##
     -@@ po/tr.po: msgstr "indeks dosyası yazılamıyor"
     - msgid "Dirty index: cannot apply patches (dirty: %s)"
     - msgstr "Kirli indeks: Yamalar uygulanamıyor (kirli: %s)"
     - 
     --#: builtin/am.c:1798 builtin/am.c:1865
     -+#: builtin/am.c:1834 builtin/am.c:1902
     - #, c-format
     - msgid "Applying: %.*s"
     - msgstr "Uygulanıyor: %.*s"
     -
     - ## po/vi.po ##
     -@@ po/vi.po: msgstr "không thể ghi tập tin lưu mục lục"
     - msgid "Dirty index: cannot apply patches (dirty: %s)"
     - msgstr "Bảng mục lục bẩn: không thể áp dụng các miếng vá (bẩn: %s)"
     - 
     --#: builtin/am.c:1798 builtin/am.c:1865
     -+#: builtin/am.c:1834 builtin/am.c:1902
     - #, c-format
     - msgid "Applying: %.*s"
     - msgstr "Áp dụng: %.*s"
     -
     - ## po/zh_CN.po ##
     -@@ po/zh_CN.po: msgstr "坏的索引文件 sha1 签名"
     - msgid "index uses %.4s extension, which we do not understand"
     - msgstr "索引使用不被支持的 %.4s 扩展"
     - 
     --# 	
     -+#
     - #: read-cache.c:1834
     - #, c-format
     - msgid "ignoring %.4s extension"
     -@@ po/zh_CN.po: msgstr "无法写入索引文件"
     - msgid "Dirty index: cannot apply patches (dirty: %s)"
     - msgstr "脏索引:不能应用补丁(脏文件:%s)"
     - 
     --#: builtin/am.c:1798 builtin/am.c:1865
     -+#: builtin/am.c:1834 builtin/am.c:1902
     - #, c-format
     - msgid "Applying: %.*s"
     - msgstr "应用:%.*s"
     - 
     -+#: builtin/am.c:1818
     -+#, c-format
     -+msgid "Skipping: %.*s"
     -+msgstr "跳过:%.*s"
     -+
     - #: builtin/am.c:1815
     - msgid "No changes -- Patch already applied."
     - msgstr "没有变更 —— 补丁已经应用过。"
     -
     - ## po/zh_TW.po ##
     -@@ po/zh_TW.po: msgstr "無法寫入索引檔案"
     - msgid "Dirty index: cannot apply patches (dirty: %s)"
     - msgstr "髒索引:不能套用修補檔(髒檔案:%s)"
     - 
     --#: builtin/am.c:1798 builtin/am.c:1865
     -+#: builtin/am.c:1834 builtin/am.c:1902
     - #, c-format
     - msgid "Applying: %.*s"
     - msgstr "套用:%.*s"
     - 
     -+#: builtin/am.c:1818
     -+#, c-format
     -+msgid "Skipping: %.*s"
     -+msgstr "忽略:%.*s"
     -+
     - #: builtin/am.c:1815
     - msgid "No changes -- Patch already applied."
     - msgstr "沒有變更——修補檔已經套用過。"
     -
       ## t/t4150-am.sh ##
      @@ t/t4150-am.sh: test_expect_success setup '
       
     @@ t/t4150-am.sh: test_expect_success 'apply binary blob in partial clone' '
       	git -C client am ../patch
       '
       
     -+test_expect_success 'An empty input file is error regardless of --empty option' '
     ++test_expect_success 'an empty input file is error regardless of --empty option' '
     ++	test_when_finished "git am --abort || :" &&
      +	test_must_fail git am --empty=drop empty.patch 2>actual &&
     -+	echo Patch format detection failed. >expected &&
     ++	echo "Patch format detection failed." >expected &&
      +	test_cmp expected actual
      +'
      +
      +test_expect_success 'invalid when passing the --empty option alone' '
     ++	test_when_finished "git am --abort || :" &&
      +	git checkout empty-commit^ &&
      +	test_must_fail git am --empty empty-commit.patch 2>err &&
      +	echo "error: Invalid value for --empty: empty-commit.patch" >expected &&
     @@ t/t4150-am.sh: test_expect_success 'apply binary blob in partial clone' '
      +test_expect_success 'a message without a patch is an error (default)' '
      +	test_when_finished "git am --abort || :" &&
      +	test_must_fail git am empty-commit.patch >err &&
     -+	grep "Patch is empty" err &&
     -+	rm -fr .git/rebase-apply
     ++	grep "Patch is empty" err
      +'
      +
      +test_expect_success 'a message without a patch is an error where an explicit "--empty=die" is given' '
      +	test_when_finished "git am --abort || :" &&
      +	test_must_fail git am --empty=die empty-commit.patch >err &&
     -+	grep "Patch is empty." err &&
     -+	rm -fr .git/rebase-apply
     ++	grep "Patch is empty." err
      +'
      +
      +test_expect_success 'a message without a patch will be skipped when "--empty=drop" is given' '
-- 
gitgitgadget
Previous: Junio C HamanoNext: Aleen via GitGitGadget
Message 57 of 129 in “am: support --always option to am empty commits”
  1. 0/2 am: support --always option to am empty commitsAleen via GitGitGadget, Nov 12, 2021
  2. 1/2 doc: git-format-patch: specify the option --alwaysAleen via GitGitGadget, Nov 12, 2021
  3. 2/2 am: support --always option to am empty commitsAleen via GitGitGadget, Nov 12, 2021
  4. René ScharfeNov 12, 2021
  5. Junio C HamanoNov 12, 2021
  6. Aleen 徐沛文Nov 12, 2021
  7. René ScharfeNov 12, 2021
  8. Junio C HamanoNov 12, 2021
  9. AleenNov 12, 2021
  10. 0/4 am: support --allow-empty option to am empty commitsAleen via GitGitGadget, Nov 12, 2021
  11. 1/4 doc: git-format-patch: specify the option --alwaysAleen via GitGitGadget, Nov 12, 2021
  12. Junio C HamanoNov 12, 2021
  13. 2/4 am: support --always option to am empty commitsAleen via GitGitGadget, Nov 12, 2021
  14. Junio C HamanoNov 12, 2021
  15. 3/4 test: am: add the case when not passing the --always optionAleen via GitGitGadget, Nov 12, 2021
  16. 4/4 chore: am: rename the --always option to --allow-emptyAleen via GitGitGadget, Nov 12, 2021
  17. 0/2 am: support --empty-commit=(die|skip|asis) option to am empty commitsAleen via GitGitGadget, Nov 15, 2021
  18. 1/2 doc: git-format-patch: describe the option --alwaysAleen via GitGitGadget, Nov 15, 2021
  19. 2/2 am: support --empty-commit option to handle empty patchesAleen via GitGitGadget, Nov 15, 2021
  20. Aleen 徐沛文Nov 15, 2021
  21. 0/2 am: support --empty-commit=(die|skip|asis) option to am empty commitsAleen via GitGitGadget, Nov 16, 2021
  22. 1/2 doc: git-format-patch: describe the option --alwaysAleen via GitGitGadget, Nov 16, 2021
  23. 2/2 am: support --empty-commit option to handle empty patchesAleen via GitGitGadget, Nov 16, 2021
  24. Phillip WoodNov 16, 2021
  25. Aleen 徐沛文Nov 16, 2021
  26. Junio C HamanoNov 17, 2021
  27. 0/2 am: support --empty-commit=(die|skip|asis) option to am empty commitsAleen via GitGitGadget, Nov 17, 2021
  28. 1/2 doc: git-format-patch: describe the option --alwaysAleen via GitGitGadget, Nov 17, 2021
  29. 2/2 am: support --empty option to handle empty patchesAleen via GitGitGadget, Nov 17, 2021
  30. 0/3 am: support --empty=(die|drop|keep) option to handle empty patchesAleen via GitGitGadget, Nov 18, 2021
  31. 1/3 doc: git-format-patch: describe the option --alwaysAleen via GitGitGadget, Nov 18, 2021
  32. 2/3 am: support --empty option to handle empty patchesAleen via GitGitGadget, Nov 18, 2021
  33. Junio C HamanoNov 19, 2021
  34. Bagas SanjayaNov 19, 2021
  35. Ævar Arnfjörð BjarmasonNov 19, 2021
  36. Eric SunshineNov 19, 2021
  37. Junio C HamanoNov 19, 2021
  38. Junio C HamanoNov 19, 2021
  39. 3/3 am: throw an error when passing --empty option without valueAleen via GitGitGadget, Nov 18, 2021
  40. Junio C HamanoNov 19, 2021
  41. Aleen 徐沛文Nov 19, 2021
  42. Junio C HamanoNov 18, 2021
  43. Aleen 徐沛文Nov 19, 2021
  44. Junio C HamanoNov 19, 2021
  45. Aleen 徐沛文Nov 19, 2021
  46. AleenNov 19, 2021
  47. Junio C HamanoNov 19, 2021
  48. Aleen 徐沛文Nov 19, 2021
  49. Junio C HamanoNov 19, 2021
  50. Johannes SchindelinNov 22, 2021
  51. Aleen 徐沛文Nov 19, 2021
  52. 0/2 am: support --empty=(die|drop|keep) option to handle empty patchesAleen via GitGitGadget, Nov 19, 2021
  53. 1/2 doc: git-format-patch: describe the option --alwaysAleen via GitGitGadget, Nov 19, 2021
  54. 2/2 am: support --empty=<option> to handle empty patchesAleen via GitGitGadget, Nov 19, 2021
  55. Junio C HamanoNov 19, 2021
  56. Junio C HamanoNov 19, 2021
  57. 0/2 am: support --empty=(die|drop|keep) option to handle empty patchesAleen via GitGitGadget, Nov 22, 2021
  58. 1/2 doc: git-format-patch: describe the option --alwaysAleen via GitGitGadget, Nov 22, 2021
  59. 2/2 am: support --empty=<option> to handle empty patchesAleen via GitGitGadget, Nov 22, 2021
  60. Junio C HamanoNov 22, 2021
  61. Aleen 徐沛文Nov 22, 2021
  62. 0/2 am: support --empty=(die|drop|keep) option to handle empty patchesAleen via GitGitGadget, Nov 22, 2021
  63. 1/2 doc: git-format-patch: describe the option --alwaysAleen 徐沛文 via GitGitGadget, Nov 22, 2021
  64. 2/2 am: support --empty=<option> to handle empty patchesAleen 徐沛文 via GitGitGadget, Nov 22, 2021
  65. Aleen 徐沛文Nov 22, 2021
  66. 0/2 am: support --empty=(die|drop|keep) option to handle empty patchesAleen via GitGitGadget, Nov 22, 2021
  67. 1/2 doc: git-format-patch: describe the option --alwaysAleen via GitGitGadget, Nov 22, 2021
  68. Johannes SchindelinNov 22, 2021
  69. Aleen 徐沛文Nov 23, 2021
  70. Johannes SchindelinNov 23, 2021
  71. 2/2 am: support --empty=<option> to handle empty patchesAleen via GitGitGadget, Nov 22, 2021
  72. 0/2 am: support --empty=(die|drop|keep) option to handle empty patchesAleen via GitGitGadget, Nov 23, 2021
  73. 1/2 doc: git-format-patch: describe the option --always徐沛文 (Aleen) via GitGitGadget, Nov 23, 2021
  74. Johannes SchindelinNov 23, 2021
  75. Junio C HamanoNov 23, 2021
  76. 2/2 am: support --empty=<option> to handle empty patches徐沛文 (Aleen) via GitGitGadget, Nov 23, 2021
  77. Elijah NewrenNov 26, 2021
  78. Aleen 徐沛文Nov 29, 2021
  79. Aleen 徐沛文Nov 29, 2021
  80. Elijah NewrenNov 29, 2021
  81. Aleen 徐沛文Nov 30, 2021
  82. Junio C HamanoNov 29, 2021
  83. Elijah NewrenNov 29, 2021
  84. 0/3 am: support --empty=(die|drop|keep) option and --allow-empty option to handle empty patchesAleen via GitGitGadget, Nov 30, 2021
  85. 1/3 doc: git-format-patch: describe the option --always徐沛文 (Aleen) via GitGitGadget, Nov 30, 2021
  86. 2/3 am: support --empty=<option> to handle empty patches徐沛文 (Aleen) via GitGitGadget, Nov 30, 2021
  87. 3/3 am: support --allow-empty to record specific empty patches徐沛文 (Aleen) via GitGitGadget, Nov 30, 2021
  88. Junio C HamanoNov 30, 2021
  89. 0/3 am: support --empty=(die|drop|keep) option and --allow-empty option to handle empty patchesAleen via GitGitGadget, Nov 30, 2021
  90. 1/3 doc: git-format-patch: describe the option --always徐沛文 (Aleen) via GitGitGadget, Nov 30, 2021
  91. 2/3 am: support --empty=<option> to handle empty patches徐沛文 (Aleen) via GitGitGadget, Nov 30, 2021
  92. 3/3 am: support --allow-empty to record specific empty patches徐沛文 (Aleen) via GitGitGadget, Nov 30, 2021
  93. 0/3 am: support --empty=(die|drop|keep) option and --allow-empty option to handle empty patchesAleen via GitGitGadget, Dec 1, 2021
  94. 1/3 doc: git-format-patch: describe the option --always徐沛文 (Aleen) via GitGitGadget, Dec 1, 2021
  95. 2/3 am: support --empty=<option> to handle empty patches徐沛文 (Aleen) via GitGitGadget, Dec 1, 2021
  96. Johannes SchindelinDec 3, 2021
  97. 3/3 am: support --allow-empty to record specific empty patches徐沛文 (Aleen) via GitGitGadget, Dec 1, 2021
  98. Junio C HamanoDec 2, 2021
  99. Aleen 徐沛文Dec 6, 2021
  100. 0/3 am: support --empty=(die|drop|keep) option and --allow-empty option to handle empty patchesAleen via GitGitGadget, Dec 6, 2021
  101. 1/3 doc: git-format-patch: describe the option --always徐沛文 (Aleen) via GitGitGadget, Dec 6, 2021
  102. 2/3 am: support --empty=<option> to handle empty patches徐沛文 (Aleen) via GitGitGadget, Dec 6, 2021
  103. 3/3 am: support --allow-empty to record specific empty patches徐沛文 (Aleen) via GitGitGadget, Dec 6, 2021
  104. 0/3 am: support --empty=(die|drop|keep) option and --allow-empty option to handle empty patchesAleen via GitGitGadget, Dec 7, 2021
  105. 1/3 doc: git-format-patch: describe the option --always徐沛文 (Aleen) via GitGitGadget, Dec 7, 2021
  106. 2/3 am: support --empty=<option> to handle empty patches徐沛文 (Aleen) via GitGitGadget, Dec 7, 2021
  107. 3/3 am: support --allow-empty to record specific empty patches徐沛文 (Aleen) via GitGitGadget, Dec 7, 2021
  108. 0/3 am: support --empty=(die|drop|keep) option and --allow-empty option to handle empty patchesAleen via GitGitGadget, Dec 7, 2021
  109. 1/3 doc: git-format-patch: describe the option --always徐沛文 (Aleen) via GitGitGadget, Dec 7, 2021
  110. 2/3 am: support --empty=<option> to handle empty patches徐沛文 (Aleen) via GitGitGadget, Dec 7, 2021
  111. Junio C HamanoDec 7, 2021
  112. 3/3 am: support --allow-empty to record specific empty patches徐沛文 (Aleen) via GitGitGadget, Dec 7, 2021
  113. Junio C HamanoDec 7, 2021
  114. Junio C HamanoDec 7, 2021
  115. 0/3 am: support --empty=(die|drop|keep) option and --allow-empty option to handle empty patchesAleen via GitGitGadget, Dec 8, 2021
  116. 1/3 doc: git-format-patch: describe the option --always徐沛文 (Aleen) via GitGitGadget, Dec 8, 2021
  117. 2/3 am: support --empty=<option> to handle empty patches徐沛文 (Aleen) via GitGitGadget, Dec 8, 2021
  118. 3/3 am: support --allow-empty to record specific empty patches徐沛文 (Aleen) via GitGitGadget, Dec 8, 2021
  119. Junio C HamanoDec 8, 2021
  120. Aleen 徐沛文Dec 8, 2021
  121. Junio C HamanoDec 8, 2021
  122. 0/3 am: support --empty=(die|drop|keep) option and --allow-empty option to handle empty patchesAleen via GitGitGadget, Dec 9, 2021
  123. 1/3 doc: git-format-patch: describe the option --always徐沛文 (Aleen) via GitGitGadget, Dec 9, 2021
  124. Bagas SanjayaDec 9, 2021
  125. Aleen 徐沛文Dec 10, 2021
  126. Bagas SanjayaDec 10, 2021
  127. Junio C HamanoDec 11, 2021
  128. 2/3 am: support --empty=<option> to handle empty patches徐沛文 (Aleen) via GitGitGadget, Dec 9, 2021
  129. 3/3 am: support --allow-empty to record specific empty patches徐沛文 (Aleen) via GitGitGadget, Dec 9, 2021

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.