Re: [PATCH v2 1/3] diff-files --raw: handle intent-to-add files correctly
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Jun 24, 2020, 13:34 UTC
- Message-ID
- <nycvar.QRO.7.76.6.2006241528290.54@tvgsbejvaqbjf.bet>
- In-Reply-To
- <20200624071116.GA79097@mail.clickyotomy.dev>
Hi Srinidhi,
On Wed, 24 Jun 2020, Srinidhi Kaushik wrote:
Show 6 quoted lines
> > The underlying problem is that some time ago, the (already incorrect) > > empty blob constant was replaced by the empty tree constant, by mistake. I > > contributed a patch series to fix that, and Cc:ed you you in v2 that I > > sent out earlier today. > > Thanks for CC-ing me!
Of course!
Show 7 quoted lines
> > - :000000 100644 0000000 $(git rev-parse --short $hash_t) A$(printf "\t")empty > > - :000000 100644 0000000 $(git rev-parse --short $hash_t) A$(printf "\t")not-empty > > + :000000 100644 0000000 $(git rev-parse --short $hash_e) A$(printf "\t")empty > > + :000000 100644 0000000 $(git rev-parse --short $hash_n) A$(printf "\t")not-empty > > Changing the test-case to reflect to the hash of the blob also makes > sense.
Yes, that's the post-image side. The pre-image side is marked with 0000000 (which is Git's way to say "dunno! no current information in the index").
And it is reflecting the `--patch` case that is unfortunately not visible in the diff context:
cat >expect.diff_p <<-EOF &&
diff --git a/empty b/empty
new file mode 100644
index 0000000..$(git rev-parse --short $hash_e)
diff --git a/not-empty b/not-empty
new file mode 100644
index 0000000..$(git rev-parse --short $hash_n)
--- /dev/null
+++ b/not-empty
@@ -0,0 +1 @@
+$content
EOF(This comment is not so much directed at you as it really is a continuation of my reply to Junio, see https://lore.kernel.org/git/nycvar.QRO.7.76.6.2006241517320.54@tvgsbejvaqbjf.bet/)
Show 10 quoted lines
> [...] > > > > + hash_e=$(git hash-object empty) && > > > + hash_n=$(git hash-object not-empty) && > > > + hash_t=$(git hash-object -t tree /dev/null) && > > > > > So this is the hash of the empty tree object, and... > > I guess we can get rid of the `hash_t' assignment here, because it > won't be used anywhere else in the test.
Right! I _knew_ there was something I wanted to do, still, but then forgot all about it...
Thanks, Dscho