From 880579dc1e368bd6111b6f2d4c4449f4d42cd1b3 Mon Sep 17 00:00:00 2001 From: Daniel Shahaf Date: Thu, 3 Sep 2015 09:24:16 +0000 Subject: 36410: vcs_info git: Present merge heads as patches This shows, during 'git merge', the revision hashes of the "remote" head (the one that will become second parent of the commit) in the %m expando. Review-by: Frank Terbeck --- ChangeLog | 6 ++++++ Doc/Zsh/contrib.yo | 2 +- Functions/VCS_Info/Backends/VCS_INFO_get_data_git | 17 +++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index bb2d507c2..05d6999ce 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2015-09-05 Daniel Shahaf + + * 36410: Doc/Zsh/contrib.yo + Functions/VCS_Info/Backends/VCS_INFO_get_data_git: vcs_info git: + Present merge heads as patches + 2015-09-04 Peter Stephenson * 36421: Src/pattern.c: can't-get-the-staff fix for idiocy in diff --git a/Doc/Zsh/contrib.yo b/Doc/Zsh/contrib.yo index db0940d94..741d4ad07 100644 --- a/Doc/Zsh/contrib.yo +++ b/Doc/Zsh/contrib.yo @@ -1339,7 +1339,7 @@ tt(formats) and tt(actionformats) and will be available in the global tt(backend_misc) array as tt(${backend_misc[bookmarks]}). ) item(tt(gen-applied-string))( -Called in the tt(git) (with tt(stgit) or during rebase), and tt(hg) +Called in the tt(git) (with tt(stgit) or during rebase or merge), and tt(hg) (with tt(mq)) backends and in tt(quilt) support when the tt(applied-string) is generated; the tt(use-quilt) zstyle must be true for tt(quilt) (the tt(mq) and tt(stgit) backends are active by default). diff --git a/Functions/VCS_Info/Backends/VCS_INFO_get_data_git b/Functions/VCS_Info/Backends/VCS_INFO_get_data_git index 3fc861eeb..638ea4572 100644 --- a/Functions/VCS_Info/Backends/VCS_INFO_get_data_git +++ b/Functions/VCS_Info/Backends/VCS_INFO_get_data_git @@ -230,6 +230,23 @@ elif [[ -d "${gitdir}/rebase-apply" ]]; then fi git_patches_unapplied=($(seq $cur $(< "${patchdir}/last"))) + VCS_INFO_git_handle_patches +elif [[ -f "${gitdir}/MERGE_HEAD" ]]; then + # This is 'git merge --no-commit' + local -a heads=( ${(@f)"$(<"${gitdir}/MERGE_HEAD")"} ) + local subject; + IFS='' read -r subject < "${gitdir}/MERGE_MSG" + # $subject is the subject line of the would-be commit + # Maybe we can get the subject lines of MERGE_HEAD's commits cheaply? + + local p + for p in $heads[@]; do + git_patches_applied+=("$p $subject") + done + unset p + + # Not touching git_patches_unapplied + VCS_INFO_git_handle_patches else gitmisc='' -- cgit 1.4.1