git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH] git-gui: use commit message template
@ 2018-07-02 13:28 Martin Schön
  2018-07-02 19:49 ` Stefan Beller
  0 siblings, 1 reply; 3+ messages in thread
From: Martin Schön @ 2018-07-02 13:28 UTC (permalink / raw)
  To: git

Use the file described by commit.template (if set) to show the commit message
template, just like other GUIs.

Signed-off-by: Martin Sch??n <Martin.Schoen@loewensteinmedical.de>
---
 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


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] git-gui: use commit message template
  2018-07-02 13:28 [PATCH] git-gui: use commit message template Martin Schön
@ 2018-07-02 19:49 ` Stefan Beller
  2018-07-03  8:53   ` AW: " Schoen, Martin
  0 siblings, 1 reply; 3+ messages in thread
From: Stefan Beller @ 2018-07-02 19:49 UTC (permalink / raw)
  To: Martin.Schoen, Pat Thoyts; +Cc: git

+cc Pat, in the hope of an answer.

See
https://public-inbox.org/git/xmqqd0z61xsv.fsf@gitster-ct.c.googlers.com/
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@loewensteinmedical.de> 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@loewensteinmedical.de>

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
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* AW: [PATCH] git-gui: use commit message template
  2018-07-02 19:49 ` Stefan Beller
@ 2018-07-03  8:53   ` Schoen, Martin
  0 siblings, 0 replies; 3+ messages in thread
From: Schoen, Martin @ 2018-07-03  8:53 UTC (permalink / raw)
  To: Stefan Beller, Pat Thoyts; +Cc: git

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@loewensteinmedical.de ∙ 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@google.com>
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@gitster-ct.c.googlers.com/
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@loewensteinmedical.de> 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@loewensteinmedical.de>

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
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-07-03  8:58 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-02 13:28 [PATCH] git-gui: use commit message template Martin Schön
2018-07-02 19:49 ` Stefan Beller
2018-07-03  8:53   ` AW: " Schoen, Martin

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).