From: Shawn O. Pearce Date: Fri, 19 Oct 2007 06:13:51 GMT Subject: Re: [PATCH] Avoid invoking diff drivers during git-stash Message-ID: <20071019061351.GL14735@spearce.org> In-Reply-To: <471849D7.1020303@viscovery.net> Johannes Sixt wrote: > Shawn O. Pearce schrieb: > > Johannes Sixt wrote: > > > (1) Looking at git-stash.sh I see a few uses of 'git diff' in > > > apply_stash(). Shouldn't these use one of git-diff-{tree,index,files)? > > The > > > reason is that porcelain 'git diff' invokes custom diff drivers (that > > in my > case run a UI program), whereas the plumbing does not. > > > > > > Is there a particular reason to use porcelain 'git diff'? > > > > Does this fix the problem? > > It does! > > >@@ -110,7 +110,7 @@ show_stash () { > > > > w_commit=$(git rev-parse --verify "$s") && > > b_commit=$(git rev-parse --verify "$s^") && > >- git diff $flags $b_commit $w_commit > >+ git diff-tree $flags $b_commit $w_commit > > However, this porcelain 'git diff' should actually remain because it's part > of show_stash(). Heh. Damn. I was just starting to prepare my evening push and this patch is in maint, which I just merged to master, and I just rebased all of my pu topic branches over that. Junio's Meta toolkit doesn't have an "unrebase" so I can go back and amend that damn commit before pushing. I'm feeling lazy and don't want to create an unRB right now. I'll probably just throw another commit into maint to fix the above hunk. Thanks for catching it. -- Shawn.