When referring to earlier commits in commit messages or other text, one of the established formats is
<abbrev-sha> ("<summary>", <author-date>)Add a "Copy commit summary" command to the context menu that puts this text for the currently selected commit on the clipboard. This makes it easy for our users to create well-formatted commit references.
The <abbrev-sha> is produced with the %h format specifier to make it unique. Its minimum length can be controlled with the config setting core.abbrev.
Signed-off-by: Beat Bolli <dev+git@drbeat.li> Reviewed-by: Eric Sunshine <sunshine@sunshineco.com> Reviewed-by: Johannes Sixt <j6t@kdbg.org> Cc: Paul Mackerras <paulus@samba.org>
--- Changes since v2: - call git log to produce a unique <abbrev-sha> - use the short date format
Changes since v1: - drop the "commit " literal in front of the <abbrev-sha> --- gitk-git/gitk | 12 ++++++++++++ 1 file changed, 12 insertions(+)
Show changes to gitk-git/gitk +12 −0
diff --git a/gitk-git/gitk b/gitk-git/gitk index 9a2daf3..4915f53 100755 --- a/gitk-git/gitk +++ b/gitk-git/gitk @@ -2617,6 +2617,7 @@ proc makewindow {} { {mc "Diff selected -> this" command {diffvssel 1}} {mc "Make patch" command mkpatch} {mc "Create tag" command mktag} + {mc "Copy commit summary" command copysummary} {mc "Write commit to file" command writecommit} {mc "Create new branch" command mkbranch} {mc "Cherry-pick this commit" command cherrypick} @@ -9341,6 +9342,17 @@ proc mktaggo {} { mktagcan } +proc copysummary {} { + global rowmenuid + + set format "%h (\"%s\", %ad)" + set summary [exec git show -s --pretty=format:$format --date=short \ + $rowmenuid] + + clipboard clear + clipboard append $summary +} + proc writecommit {} { global rowmenuid wrcomtop commitinfo wrcomcmd NS
-- 2.4.0