Skip to contentSkip to conversation

git-gui: '/dev/null' on Windows is named 'nul'

PATCH In review Johannes Sixt 2 participants 2 messages Jun 15, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 git-gui: '/dev/null' on Windows is named 'nul'

From: Johannes Sixt <[email protected]>

Making (or amending) an initial commit on Windows fails because redirecting something to '/dev/null' must fail - this device does not exist. Redirect to 'nul' instead.

---
I've noticed this while using the MinGW port, but I do not know whether this is needed or even works on Cygwin.

(Now lets see whether my MUA wraps long lines...)

-- Hannes

 git-gui/git-gui.sh |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)
git-gui/git-gui.sh +5 -1
index f84ba33..971d5fe 100755
@@ -1288,7 +1288,11 @@ proc commit_committree {fd_wt curHEAD msg} {
 		}
 	} else {
 		# git commit-tree writes to stderr during initial commit.
-		lappend cmd 2>/dev/null
+		if {[is_Windows]} {
+			lappend cmd 2>nul
+		} else {
+			lappend cmd 2>/dev/null
+		}
 	}
 	lappend cmd <$msg_p
 	if {[catch {set cmt_id [eval exec $cmd]} err]} {
Signature · 1 line
1.5.0.2.279.g4808
#1 lore raw
Quoted 10 lines · Johannes Sixt

From: Johannes Sixt <[email protected]>

Making (or amending) an initial commit on Windows fails because redirecting something to '/dev/null' must fail - this device does not exist. Redirect to 'nul' instead.

---
I've noticed this while using the MinGW port, but I do not know whether this is needed or even works on Cygwin.

I had previously fixed this in gitgui-0.6.3, which is now also merged into maint in git.git. It was fixed by just removing that redirection block, in git 1.5.0 and later commit-tree doesn't print anything on stderr when making an initial commit.

Signature · 1 line
Shawn.