From: Nguyen Thai Ngoc Duy Date: Thu, 12 Jan 2012 17:34:50 GMT Subject: Re: git diff HEAD^: error message Message-ID: In-Reply-To: <20120111111831.GB15232@beez.lab.cmartin.tk> On Wed, Jan 11, 2012 at 6:18 PM, Carlos Martín Nieto wrote: > Hello, > > I was trying to figure out why running > >   git diff HEAD^:RelNotes RelNotes > > gives the expected output (on maint it tells me that the stable > version changed from 1.7.8.3 to 1.7.8.4) but swapping the arguments > doesn't. > >   git diff RelNotes HEAD^:RelNotes > > doesn't show the opposite patch but tells me that RelNotes doesn't > exist in HEAD^ which is clearly a lie (it sounds like it's a > misunderstanding on git's part, but it's certainly not the truth). I find Jonathan's comment [1] interesting: "Meanwhile, there is no plumbing command to compare two blobs. Strange". I _think_ the main purpose of git diff is to compare a stage (a revision, index, worktree) with another stage, filtered by path and blob-to-blob diff is a minor thing that is needed to support "git diff " where both tags point to a tag. It'd be better to start a new command that diff between two blobs (or files in worktree/index). Something pretty close to --no-index. You would not need to mess up with setup_revisions() or verify_filename(). [1] ed84e6d (Documentation: diff can compare blobs - 2010-10-11) -- Duy