Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: > On Mon, 24 Sep 2007, David Tweed wrote: > >> ... In >> a different directory, OUTSIDE of $HOME/V, I tried >> >> env GIT_DIR=$HOME/V/.git git diff master@{midnight} >> >> to get the same effect but, whilst I do get a diff output, it >> looks like a diff of the commit against an empty tree. > > Yes, this is fully expected. > > The @{time} notation accesses the _reflogs_, which are purely local > beasts. They are not transmitted when cloning. Yeah, but my reading of the problem description suggests the two cases refer to the same repository (hence the same reflogs). The issue is that the second case runs "git diff <one-tree>" in a random directory. This form is about comparing the part of work tree you are in with a given tree, and does not make _any_ sense when outside the work tree. Usually without GIT_DIR environment, the command would give you an error message. With $GIT_DIR, but without $GIT_WORK_TREE, the user is telling the command that it is being run at the top level of the work tree and the repository metadata is not in the usual ".git" subdirectory of the top level of the work tree (in this case, by definition that is "$PWD/.git") but elsewhere where $GIT_DIR specifies. Because it is very likely that the files under the random location does not share much resemblance to what are in $HOME/V, it is not surprising that the output consisted of many deletions. It would be illustrative if David did the following. $ cd $HOME $ cp -a V W $ rm -fr W/.git $ cd W $ GIT_DIR=$HOME/V/.git git diff @{midnight} Now we are in a random place outside of the work tree (i.e. "W"), and we drive "git diff" with GIT_DIR specified, telling it to pretend that we are at the top level of the work tree. So ~/W/frotz is compared with "frotz" at the top level of the commit (which usually is compared with ~/V/frotz), etc. But the directory we happen to be in very much resembles the work tree, so it would give identical results to $ cd $HOME/V $ git diff @{midnight} - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html