git replace woes: dirty stat with clean workdir

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

git replace woes: dirty stat with clean workdir

From: Michael J Gruber <hidden>
Date: 2016-06-15 22:47:42

Hi there,

when cooking up a "warning example" for git replace (don't draw
premature conclusions when there are replaced objects) I came across the
following problem: git status seems to compare the work dir with the
tree of HEAD, not the replacing tree. Even deleting the index does not help.

[ The example also shows that we need a way to specify
--no-replace-objects for gitk. Would easier if gitk really where git
something. ]

Michael

#!/bin/sh
rm -Rf rtest &&
mkdir rtest &&
cd rtest &&
git init &&
echo > comment &&
git add comment &&
git commit -m "empty comment" &&
echo nice > "comment" &&
git commit -am "nice comment" &&
echo ugly > "comment" &&
git commit -am "to be discarded" &&
git replace HEAD^^{tree} HEAD^{tree} &&
git reset --hard HEAD^ &&
git log -p &&
git st

Re: git replace woes: dirty stat with clean workdir

From: Christian Couder <hidden>
Date: 2016-06-15 22:47:42

Hi,

On mardi 10 novembre 2009, Michael J Gruber wrote:
Hi there,

when cooking up a "warning example" for git replace (don't draw
premature conclusions when there are replaced objects) I came across the
following problem: git status seems to compare the work dir with the
tree of HEAD, not the replacing tree. Even deleting the index does not
help.
Yeah, you are right. I must say that I never tested replacing trees before.
[ The example also shows that we need a way to specify
--no-replace-objects for gitk. Would easier if gitk really where git
something. ]
Yeah, I think --no-replace-objects might not work well for shell scripts or 
even commands that call other commands using run_command(). Perhaps we need 
an environment variable GIT_NO_REPLACE_OBJECTS to be set by commands that 
are passed --no-replace-objects and checked by all the commands. I will 
have a look at that.

Thanks,
Christian.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help