git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] Work around a bad interaction between Tcl and cmd.exe with "^{tree}"

From
Johannes Sixt <j.sixt@eudaptics.com>
Date
Jul 10, 2007, 13:09 UTC
Message-ID
<11840729692004-git-send-email-j.sixt@eudaptics.com>
From: Johannes Sixt <johannes.sixt@telecom.at>

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 the "git rev-parse" command. However, cmd.exe does not remove the backslash, so that the resulting ref expression ends up in git's guts as unrecognizable garbage.

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 <johannes.sixt@telecom.at>
---
 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
Message 1 of 1 in “Work around a bad interaction between Tcl and cmd.exe with "^{tree}"”
  1. Work around a bad interaction between Tcl and cmd.exe with "^{tree}"Johannes Sixt, Jul 10, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.