Re: git diff <file> HEAD^:<file> error message
- From
Nguyen Thai Ngoc Duy <pclouds@gmail.com>
- Date
- Jan 12, 2012, 17:34 UTC
- Message-ID
- <CACsJy8AFE0R3nfhfJkuZTkvWBmOR8+sPZDqA6SUdH17hgmTnMA@mail.gmail.com>
- In-Reply-To
- <20120111111831.GB15232@beez.lab.cmartin.tk>
On Wed, Jan 11, 2012 at 6:18 PM, Carlos Martín Nieto <cmn@elego.de> wrote:
Show 15 quoted lines
> 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 <tag> <tag>" 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