git-commit-vandalism/builtin
Elijah Newren d76ce4f734 log,diff-tree: add --combined-all-paths option
The combined diff format for merges will only list one filename, even if
rename or copy detection is active.  For example, with raw format one
might see:

  ::100644 100644 100644 fabadb8 cc95eb0 4866510 MM	describe.c
  ::100755 100755 100755 52b7a2d 6d1ac04 d2ac7d7 RM	bar.sh
  ::100644 100644 100644 e07d6c5 9042e82 ee91881 RR	phooey.c

This doesn't let us know what the original name of bar.sh was in the
first parent, and doesn't let us know what either of the original names
of phooey.c were in either of the parents.  In contrast, for non-merge
commits, raw format does provide original filenames (and a rename score
to boot).  In order to also provide original filenames for merge
commits, add a --combined-all-paths option (which must be used with
either -c or --cc, and is likely only useful with rename or copy
detection active) so that we can print tab-separated filenames when
renames are involved.  This transforms the above output to:

  ::100644 100644 100644 fabadb8 cc95eb0 4866510 MM	desc.c	desc.c	desc.c
  ::100755 100755 100755 52b7a2d 6d1ac04 d2ac7d7 RM	foo.sh	bar.sh	bar.sh
  ::100644 100644 100644 e07d6c5 9042e82 ee91881 RR	fooey.c	fuey.c	phooey.c

Further, in patch format, this changes the from/to headers so that
instead of just having one "from" header, we get one for each parent.
For example, instead of having

  --- a/phooey.c
  +++ b/phooey.c

we would see

  --- a/fooey.c
  --- a/fuey.c
  +++ b/phooey.c

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-02-07 20:15:25 -08:00
..
add.c Merge branch 'js/add-e-clear-patch-before-stating' 2019-01-29 12:47:56 -08:00
am.c Merge branch 'nd/the-index' 2019-01-04 13:33:33 -08:00
annotate.c
apply.c
archive.c
bisect--helper.c bisect.c: remove the_repository reference 2018-11-12 14:50:05 +09:00
blame.c Merge branch 'nd/show-gitcomp-compilation-fix' into maint 2018-12-15 12:24:33 +09:00
branch.c Merge branch 'tq/branch-style-fix' into maint 2018-11-21 22:58:06 +09:00
bundle.c bundle.c: remove the_repository references 2018-11-12 14:50:06 +09:00
cat-file.c Merge branch 'tb/print-size-t-with-uintmax-format' 2018-11-19 16:24:41 +09:00
check-attr.c
check-ignore.c
check-mailmap.c
check-ref-format.c
checkout-index.c Merge branch 'nd/checkout-noisy' 2019-01-14 15:29:29 -08:00
checkout.c Merge branch 'nd/checkout-noisy' 2019-01-14 15:29:29 -08:00
clean.c assert NOARG/NONEG behavior of parse-options callbacks 2018-11-06 12:56:29 +09:00
clone.c Merge branch 'sg/clone-initial-fetch-configuration' 2019-01-04 13:33:34 -08:00
column.c
commit-graph.c
commit-tree.c
commit.c Merge branch 'jk/save-getenv-result' 2019-01-29 12:47:54 -08:00
config.c Merge branch 'jk/save-getenv-result' 2019-01-29 12:47:54 -08:00
count-objects.c rename "alternate_object_database" to "object_directory" 2018-11-13 14:22:02 +09:00
credential.c
describe.c refresh_index: remove unnecessary calls to preload_index() 2018-11-06 12:49:59 +09:00
diff-files.c
diff-index.c
diff-tree.c log,diff-tree: add --combined-all-paths option 2019-02-07 20:15:25 -08:00
diff.c
difftool.c checkout: print something when checking out paths 2018-11-14 15:10:35 +09:00
fast-export.c Merge branch 'en/fast-export-import' 2019-01-04 13:33:33 -08:00
fetch-pack.c Merge branch 'jt/fetch-pack-v2' 2019-01-29 12:47:54 -08:00
fetch.c Merge branch 'sb/submodule-recursive-fetch-gets-the-tip' 2019-01-29 12:47:54 -08:00
fmt-merge-msg.c
for-each-ref.c
fsck.c Merge branch 'nd/the-index' 2019-01-04 13:33:33 -08:00
gc.c Merge branch 'js/gc-repack-close-before-remove' 2019-01-18 13:49:57 -08:00
get-tar-commit-id.c
grep.c Merge branch 'bc/tree-walk-oid' 2019-01-29 12:47:56 -08:00
hash-object.c
help.c
index-pack.c Merge branch 'tb/print-size-t-with-uintmax-format' 2018-11-19 16:24:41 +09:00
init-db.c Merge branch 'jk/save-getenv-result' 2019-01-29 12:47:54 -08:00
interpret-trailers.c assert NOARG/NONEG behavior of parse-options callbacks 2018-11-06 12:56:29 +09:00
log.c Merge branch 'it/log-format-source' 2019-01-29 12:47:57 -08:00
ls-files.c Merge branch 'sb/submodule-recursive-fetch-gets-the-tip' 2019-01-29 12:47:54 -08:00
ls-remote.c Merge branch 'jk/proto-v2-ref-prefix-fix' 2018-11-13 22:37:17 +09:00
ls-tree.c Merge branch 'nd/attr-pathspec-in-tree-walk' 2019-01-14 15:29:28 -08:00
mailinfo.c
mailsplit.c
merge-base.c Merge branch 'pk/rebase-in-c-4-opts' 2018-11-02 11:04:55 +09:00
merge-file.c assert NOARG/NONEG behavior of parse-options callbacks 2018-11-06 12:56:29 +09:00
merge-index.c
merge-ours.c diff-lib.c: remove the_repository references 2018-11-12 14:50:06 +09:00
merge-recursive.c merge-recursive: copy $GITHEAD strings 2019-01-11 18:48:59 -08:00
merge-tree.c Merge branch 'bc/tree-walk-oid' 2019-01-29 12:47:56 -08:00
merge.c Merge branch 'nd/the-index' 2019-01-04 13:33:33 -08:00
mktag.c
mktree.c
multi-pack-index.c
mv.c
name-rev.c
notes.c Merge branch 'nd/the-index' 2019-01-04 13:33:33 -08:00
pack-objects.c Merge branch 'bc/tree-walk-oid' 2019-01-29 12:47:56 -08:00
pack-redundant.c
pack-refs.c
patch-id.c
prune-packed.c
prune.c Merge branch 'md/exclude-promisor-objects-fix-cleanup' 2019-01-14 15:29:31 -08:00
pull.c Merge branch 'nd/the-index' 2019-01-04 13:33:33 -08:00
push.c Merge branch 'nd/style-opening-brace' 2019-01-18 13:49:52 -08:00
range-diff.c
read-tree.c Merge branch 'nd/the-index' 2019-01-04 13:33:33 -08:00
rebase--interactive.c Merge branch 'js/rebase-i-redo-exec' 2019-01-29 12:47:53 -08:00
rebase.c Merge branch 'os/rebase-runs-post-checkout-hook' 2019-01-29 12:47:55 -08:00
receive-pack.c Merge branch 'jk/check-everything-connected-is-long-gone' into maint 2018-11-21 22:58:00 +09:00
reflog.c tree-walk: store object_id in a separate member 2019-01-15 09:57:41 -08:00
remote-ext.c
remote-fd.c
remote.c
repack.c Merge branch 'js/gc-repack-close-before-remove' 2019-01-18 13:49:57 -08:00
replace.c Merge branch 'ab/replace-graft-with-replace-advice' 2018-12-01 21:41:42 +09:00
rerere.c Merge branch 'nd/the-index' 2019-01-04 13:33:33 -08:00
reset.c Merge branch 'nd/the-index' 2019-01-04 13:33:33 -08:00
rev-list.c Merge branch 'md/exclude-promisor-objects-fix-cleanup' 2019-01-14 15:29:31 -08:00
rev-parse.c Merge branch 'ag/rev-parse-all-exclude-fix' 2018-11-13 22:37:23 +09:00
revert.c Merge branch 'nd/the-index' 2019-01-04 13:33:33 -08:00
rm.c
send-pack.c
serve.c
shortlog.c Merge branch 'nd/show-gitcomp-compilation-fix' into maint 2018-12-15 12:24:33 +09:00
show-branch.c assert NOARG/NONEG behavior of parse-options callbacks 2018-11-06 12:56:29 +09:00
show-index.c
show-ref.c assert NOARG/NONEG behavior of parse-options callbacks 2018-11-06 12:56:29 +09:00
stripspace.c stripspace: allow -s/-c outside git repository 2018-12-26 15:41:47 -08:00
submodule--helper.c Merge branch 'sb/submodule-recursive-fetch-gets-the-tip' 2019-01-29 12:47:54 -08:00
symbolic-ref.c
tag.c assert NOARG/NONEG behavior of parse-options callbacks 2018-11-06 12:56:29 +09:00
unpack-file.c
unpack-objects.c
update-index.c Merge branch 'nd/show-gitcomp-compilation-fix' into maint 2018-12-15 12:24:33 +09:00
update-ref.c
update-server-info.c
upload-archive.c
upload-pack.c
var.c
verify-commit.c
verify-pack.c
verify-tag.c
worktree.c worktree: allow to (re)move worktrees with uninitialized submodules 2019-01-07 09:26:33 -08:00
write-tree.c