Skip to content

Commit

Permalink
gitk: Add a "Copy commit summary" command
Browse files Browse the repository at this point in the history
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 length can be controlled with the gitk preference
"Auto-select SHA1 (length)", or, if this preference is set to its
default value (40), with the Git config setting core.abbrev.

Signed-off-by: Beat Bolli <dev+git@drbeat.li>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
  • Loading branch information
Beat Bolli authored and Paul Mackerras committed Aug 13, 2015
1 parent dfed7f9 commit d835dbb
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions gitk
Original file line number Diff line number Diff line change
Expand Up @@ -2618,6 +2618,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}
Expand Down Expand Up @@ -9360,6 +9361,20 @@ proc mktaggo {} {
mktagcan
}

proc copysummary {} {
global rowmenuid autosellen

set format "%h (\"%s\", %ad)"
set cmd [list git show -s --pretty=format:$format --date=short]
if {$autosellen < 40} {
lappend cmd --abbrev=$autosellen
}
set summary [eval exec $cmd $rowmenuid]

clipboard clear
clipboard append $summary
}

proc writecommit {} {
global rowmenuid wrcomtop commitinfo wrcomcmd NS

Expand Down

0 comments on commit d835dbb

Please sign in to comment.