Web lists-archives.com

AW: [PATCH] git-gui: use commit message template




Hi,
thanks for the info.

I have read the parts of the code required to create the patch, but I do not think I really understand 
the git-gui code, nor tcl/tk.

This change was requested by some of my colleagues, who are used to git-gui and would like to 
continue using it. I personally prefer magit or the shell. This is why I cannot invest more time 
into fixing issues with git.gui, sorry.

However, I tested my change with our commit template, which is basically 30 lines of commented
text. When committing, we uncomment the lines that are relevant for the commit. The commented 
lines were correctly removed in my tests. As I understand it, both cases use the same mechanism,
so I think this is a bug. I cannot make any promises, but I will look into it, should it happen here.

The broken encoding is weird. The patch generated by format-patch is clean utf-8 and looks okay in an 
editor. Maybe it was corrupted somewhere in transfer.

Best Regards

Löwenstein Medical Technology GmbH + Co. KG
i.A. Martin Schön
Entwicklungsingenieur Firmware, F&E Schlaftherapie/Heimbeatmung/PI
Kronsaalsweg 40 ∙ 22525 Hamburg
T: +49 40 54702-126 ∙ F: +49 40 54702-473
Martin.Schoen@xxxxxxxxxxxxxxxxxxxxx ∙ www.loewensteinmedical.de

Geschäftsführung: Benjamin Löwenstein, Sascha Löwenstein ∙ Registergericht: Amtsgericht
Hamburg, Abt. A, Nr. 67 698, USt-IdNr. DE 118051598,  WEEE-Reg.Nr. DE 6339114 ∙ Komplementär: Löwenstein Medical
Technology Verwaltungs GmbH, Hamburg ∙ Registergericht Amtsgericht Hamburg,  Abt. B, Nr. 8678

________________________________________
Von: Stefan Beller <sbeller@xxxxxxxxxx>
Gesendet: Montag, 2. Juli 2018 21:49
An: Schoen, Martin; Pat Thoyts
Cc: git
Betreff: Re: [PATCH] git-gui: use commit message template

+cc Pat, in the hope of an answer.

See
https://public-inbox.org/git/xmqqd0z61xsv.fsf@xxxxxxxxxxxxxxxxxxxxxxxxx/
on the state of git-gui and its lack of maintenance. Maybe Junio will
pickup this patch.

On Mon, Jul 2, 2018 at 11:35 AM Martin Schön
<Martin.Schoen@xxxxxxxxxxxxxxxxxxxxx> wrote:
>
> Use the file described by commit.template (if set) to show the commit message
> template, just like other GUIs.

You seem to have looked at and understood the git-gui code, so
I have a feature request for you if you don't mind:
git-gui takes a commit message as a suggestion from git, for example
after a failed merge, when you open git-gui, it pre-populates the
commit message with

  <previous commit message>

  # Conflict: <file.c>

which git knows how to deal with as '#' is a comment character. However when
using git-gui to compose commit messages, these commented conflicts are not
cut out as git-gui doesn't know how to handle comments?

So it would be awesome if git-gui could either respect '#' as a comment char,
or rather 'core.commentChar'

>
> Signed-off-by: Martin Sch??n <Martin.Schoen@xxxxxxxxxxxxxxxxxxxxx>

The encoding seems to be broken here, as I see '??' in your last name.

> ---
>  git-gui.sh     | 9 +++++++++
>  lib/commit.tcl | 1 +
>  2 files changed, 10 insertions(+)
>
> diff --git a/git-gui.sh b/git-gui.sh
> index 5bc21b8..6fc598d 100755
> --- a/git-gui.sh
> +++ b/git-gui.sh
> @@ -1611,6 +1611,12 @@ proc run_prepare_commit_msg_hook {} {
>                 fconfigure $fd_sm -encoding utf-8
>                 puts -nonewline $fd_pcm [read $fd_sm]
>                 close $fd_sm
> +       } elseif {[file isfile [get_config commit.template]]} {
> +               set pcm_source "template"
> +               set fd_sm [open [get_config commit.template] r]
> +               fconfigure $fd_sm -encoding utf-8
> +               puts -nonewline $fd_pcm [read $fd_sm]
> +               close $fd_sm
>         } else {
>                 set pcm_source ""
>         }
> @@ -1620,6 +1626,9 @@ proc run_prepare_commit_msg_hook {} {
>         set fd_ph [githook_read prepare-commit-msg \
>                         [gitdir PREPARE_COMMIT_MSG] $pcm_source]
>         if {$fd_ph eq {}} {
> +               if {$pcm_source eq "template"} {
> +                       load_message PREPARE_COMMIT_MSG
> +               }
>                 catch {file delete [gitdir PREPARE_COMMIT_MSG]}
>                 return 0;
>         }
> diff --git a/lib/commit.tcl b/lib/commit.tcl
> index 83620b7..168f696 100644
> --- a/lib/commit.tcl
> +++ b/lib/commit.tcl
> @@ -506,6 +506,7 @@ A rescan will be automatically started now.
>         unlock_index
>         reshow_diff
>         ui_status [mc "Created commit %s: %s" [string range $cmt_id 0 7] $subject]
> +       rescan ui_ready
>  }
>
>  proc commit_postcommit_wait {fd_ph cmt_id} {
> --
> 2.17.1
>