combine-diff: a few more finishing touches.

"new file" and "deleted file" were already reported in the
original code, but the logic was not as transparent as it could
have.  This uses a few variables and more comments to clarify
the flow.  The rule is: (1) if a path exists in the merge result
when no parent had it, we report "new" (otherwise it came from
the parents, as opposed to have added by the evil merge). (2) if
the path does not exist in the merge result, it is "deleted".

Since we can say "new" and "deleted", there is no reason not to
follow the /dev/null convention.  This fixes it.

Appending function name after @@@ ... @@@ is trivial, so
implement it.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2 files changed
tree: 74c39f25881a87278e0376abc67cf47ff0d37690
  1. arm/
  2. compat/
  3. contrib/
  4. Documentation/
  5. gitweb/
  6. mozilla-sha1/
  7. perl/
  8. ppc/
  9. t/
  10. templates/
  11. xdiff/
  12. .gitignore
  13. alloc.c
  14. archive-tar.c
  15. archive-zip.c
  16. archive.h
  17. base85.c
  18. blame.c
  19. blob.c
  20. blob.h
  21. builtin-add.c
  22. builtin-apply.c
  23. builtin-archive.c
  24. builtin-cat-file.c
  25. builtin-check-ref-format.c
  26. builtin-checkout-index.c
  27. builtin-commit-tree.c
  28. builtin-count-objects.c
  29. builtin-diff-files.c
  30. builtin-diff-index.c
  31. builtin-diff-stages.c
  32. builtin-diff-tree.c
  33. builtin-diff.c
  34. builtin-fmt-merge-msg.c
  35. builtin-grep.c
  36. builtin-init-db.c
  37. builtin-log.c
  38. builtin-ls-files.c
  39. builtin-ls-tree.c
  40. builtin-mailinfo.c
  41. builtin-mailsplit.c
  42. builtin-mv.c
  43. builtin-name-rev.c
  44. builtin-pack-objects.c
  45. builtin-prune-packed.c
  46. builtin-prune.c
  47. builtin-push.c
  48. builtin-read-tree.c
  49. builtin-repo-config.c
  50. builtin-rev-list.c
  51. builtin-rev-parse.c
  52. builtin-rm.c
  53. builtin-runstatus.c
  54. builtin-show-branch.c
  55. builtin-stripspace.c
  56. builtin-symbolic-ref.c
  57. builtin-tar-tree.c
  58. builtin-unpack-objects.c
  59. builtin-update-index.c
  60. builtin-update-ref.c
  61. builtin-upload-archive.c
  62. builtin-verify-pack.c
  63. builtin-write-tree.c
  64. builtin.h
  65. cache-tree.c
  66. cache-tree.h
  67. cache.h
  68. check-racy.c
  69. color.c
  70. color.h
  71. combine-diff.c
  72. commit.c
  73. commit.h
  74. config.c
  75. config.mak.in
  76. configure.ac
  77. connect.c
  78. convert-objects.c
  79. copy.c
  80. COPYING
  81. csum-file.c
  82. csum-file.h
  83. ctype.c
  84. daemon.c
  85. date.c
  86. delta.h
  87. describe.c
  88. diff-delta.c
  89. diff-lib.c
  90. diff.c
  91. diff.h
  92. diffcore-break.c
  93. diffcore-delta.c
  94. diffcore-order.c
  95. diffcore-pickaxe.c
  96. diffcore-rename.c
  97. diffcore.h
  98. dir.c
  99. dir.h
  100. dump-cache-tree.c
  101. entry.c
  102. environment.c
  103. exec_cmd.c
  104. exec_cmd.h
  105. fetch-clone.c
  106. fetch-pack.c
  107. fetch.c
  108. fetch.h
  109. fsck-objects.c
  110. generate-cmdlist.sh
  111. git-am.sh
  112. git-annotate.perl
  113. git-applymbox.sh
  114. git-applypatch.sh
  115. git-archimport.perl
  116. git-bisect.sh
  117. git-branch.sh
  118. git-checkout.sh
  119. git-cherry.sh
  120. git-clean.sh
  121. git-clone.sh
  122. git-commit.sh
  123. git-compat-util.h
  124. git-cvsexportcommit.perl
  125. git-cvsimport.perl
  126. git-cvsserver.perl
  127. git-fetch.sh
  128. git-instaweb.sh
  129. git-lost-found.sh
  130. git-ls-remote.sh
  131. git-merge-octopus.sh
  132. git-merge-one-file.sh
  133. git-merge-ours.sh
  134. git-merge-recursive-old.py
  135. git-merge-resolve.sh
  136. git-merge-stupid.sh
  137. git-merge.sh
  138. git-p4import.py
  139. git-parse-remote.sh
  140. git-pull.sh
  141. git-quiltimport.sh
  142. git-rebase.sh
  143. git-relink.perl
  144. git-repack.sh
  145. git-request-pull.sh
  146. git-rerere.perl
  147. git-reset.sh
  148. git-resolve.sh
  149. git-revert.sh
  150. git-send-email.perl
  151. git-sh-setup.sh
  152. git-shortlog.perl
  153. git-svn.perl
  154. git-svnimport.perl
  155. git-tag.sh
  156. git-verify-tag.sh
  157. GIT-VERSION-GEN
  158. git.c
  159. git.spec.in
  160. gitk
  161. gitMergeCommon.py
  162. grep.c
  163. grep.h
  164. hash-object.c
  165. help.c
  166. http-fetch.c
  167. http-push.c
  168. http.c
  169. http.h
  170. ident.c
  171. imap-send.c
  172. index-pack.c
  173. INSTALL
  174. interpolate.c
  175. interpolate.h
  176. list-objects.c
  177. list-objects.h
  178. local-fetch.c
  179. lockfile.c
  180. log-tree.c
  181. log-tree.h
  182. Makefile
  183. merge-base.c
  184. merge-file.c
  185. merge-index.c
  186. merge-recursive.c
  187. merge-tree.c
  188. mktag.c
  189. mktree.c
  190. object-refs.c
  191. object.c
  192. object.h
  193. pack-check.c
  194. pack-redundant.c
  195. pack.h
  196. pager.c
  197. patch-delta.c
  198. patch-id.c
  199. path-list.c
  200. path-list.h
  201. path.c
  202. peek-remote.c
  203. pkt-line.c
  204. pkt-line.h
  205. quote.c
  206. quote.h
  207. read-cache.c
  208. README
  209. receive-pack.c
  210. refs.c
  211. refs.h
  212. revision.c
  213. revision.h
  214. rsh.c
  215. rsh.h
  216. run-command.c
  217. run-command.h
  218. send-pack.c
  219. server-info.c
  220. setup.c
  221. sha1_file.c
  222. sha1_name.c
  223. shell.c
  224. show-index.c
  225. sideband.c
  226. sideband.h
  227. ssh-fetch.c
  228. ssh-pull.c
  229. ssh-push.c
  230. ssh-upload.c
  231. strbuf.c
  232. strbuf.h
  233. tag.c
  234. tag.h
  235. tar.h
  236. test-date.c
  237. test-delta.c
  238. test-sha1.c
  239. test-sha1.sh
  240. trace.c
  241. tree-diff.c
  242. tree-walk.c
  243. tree-walk.h
  244. tree.c
  245. tree.h
  246. unpack-file.c
  247. unpack-trees.c
  248. unpack-trees.h
  249. update-server-info.c
  250. upload-pack.c
  251. usage.c
  252. var.c
  253. write_or_die.c
  254. wt-status.c
  255. wt-status.h
  256. xdiff-interface.c
  257. xdiff-interface.h