mbox series

[v2,0/2] git-gui: Use commit message template

Message ID 20201127145927.26222-1-me@yadavpratyush.com (mailing list archive)
Headers show
Series git-gui: Use commit message template | expand

Message

Pratyush Yadav Nov. 27, 2020, 2:59 p.m. UTC
Hi,

This series is a revival of [0] which was pointed to me by [1]. I have
made some changes to the patch by Martin.

- The rescan call in proc commit_committree is removed. git-gui goes to
  great lengths to avoid a rescan after commit by calculating the status
  of the files in memory. It makes sense to keep it that way. The
  purpose of the rescan was to reload the commit template in the buffer
  after a commit. The rescan path handles that, but we can do that
  manually as well.

- Add a call to load the commit message template in 'rescan' directly
  instead of relying on 'run_prepare_commit_msg_hook' to do it when the
  commit-msg hook does not exist.

In addition, patch 1/2 fixes a small bug in the commit message buffer
backup logic that would be exposed by using the template mechanism. If
you load git-gui, do some things, and exit it. Then if you change the
commit message template (or even remove it), and open git-gui again it
will use the previous message for the first commit and then use the new
one from the next commit onwards.

This happens because if the commit message buffer in not empty, git-gui
saves the contents to save accidental loss of data. And when opening it
again, the saved message (which is the older template) obviously gets
priority.

[0] https://public-inbox.org/git/1530608011429.41203@loewensteinmedical.de/T/
[1] https://github.com/prati0100/git-gui/issues/24

Martin Schön (1):
  git-gui: use commit message template

Pratyush Yadav (1):
  git-gui: Only touch GITGUI_MSG when needed

 git-gui.sh     | 12 +++++++++---
 lib/commit.tcl |  1 +
 2 files changed, 10 insertions(+), 3 deletions(-)

--
2.29.2

Comments

Pratyush Yadav Dec. 1, 2020, 7:12 p.m. UTC | #1
On 27/11/20 08:29PM, Pratyush Yadav wrote:
> Hi,
> 
> This series is a revival of [0] which was pointed to me by [1]. I have
> made some changes to the patch by Martin.
> 
> - The rescan call in proc commit_committree is removed. git-gui goes to
>   great lengths to avoid a rescan after commit by calculating the status
>   of the files in memory. It makes sense to keep it that way. The
>   purpose of the rescan was to reload the commit template in the buffer
>   after a commit. The rescan path handles that, but we can do that
>   manually as well.
> 
> - Add a call to load the commit message template in 'rescan' directly
>   instead of relying on 'run_prepare_commit_msg_hook' to do it when the
>   commit-msg hook does not exist.
> 
> In addition, patch 1/2 fixes a small bug in the commit message buffer
> backup logic that would be exposed by using the template mechanism. If
> you load git-gui, do some things, and exit it. Then if you change the
> commit message template (or even remove it), and open git-gui again it
> will use the previous message for the first commit and then use the new
> one from the next commit onwards.
> 
> This happens because if the commit message buffer in not empty, git-gui
> saves the contents to save accidental loss of data. And when opening it
> again, the saved message (which is the older template) obviously gets
> priority.
> 
> [0] https://public-inbox.org/git/1530608011429.41203@loewensteinmedical.de/T/
> [1] https://github.com/prati0100/git-gui/issues/24

Series merged to git-gui/master.
 
> Martin Schön (1):
>   git-gui: use commit message template
> 
> Pratyush Yadav (1):
>   git-gui: Only touch GITGUI_MSG when needed
> 
>  git-gui.sh     | 12 +++++++++---
>  lib/commit.tcl |  1 +
>  2 files changed, 10 insertions(+), 3 deletions(-)
> 
> --
> 2.29.2
>