It seems that MSYS's wish does some quoting for Bourne shells, in
particular, escape the first '{' of the "^{tree}" suffix, but then it uses
cmd.exe to run "git rev-parse". However, cmd.exe does not remove the
backslash, so that the resulting rev expression ends up in git's guts
as unrecognizable garbage: rev-parse fails, and git-gui hickups in a way
that it must be restarted.
Fortunately, recent versions of git can refer to the root tree object using
the notation "$commit:", which avoids the problematic case.
Signed-off-by: Johannes Sixt <redacted>
---
This is a resend with a slightly improved commit message.
The first version didn't get through for some reason anyway, it seems.
lib/commit.tcl | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/lib/commit.tcl b/lib/commit.tcl
index dc7c88c..43a5aca 100644
--- a/lib/commit.tcl
+++ b/lib/commit.tcl
@@ -258,7 +258,7 @@ proc commit_committree {fd_wt curHEAD msg} {
# -- Verify this wasn't an empty change.
#
if {$commit_type eq {normal}} {
- set old_tree [git rev-parse "$PARENT^{tree}"]
+ set old_tree [git rev-parse "$PARENT:"]
if {$tree_id eq $old_tree} {
info_popup {No changes to commit.
--
1.5.3.rc0.32.g2968f