Re: git push to a non-bare repository
From: Theodore Tso <tytso@mit.edu>
Date: 2016-06-15 22:43:00
On Sun, Mar 18, 2007 at 10:56:03PM -0400, Shawn O. Pearce wrote:
The reflog does update if the log file exists during a push (err, actually during receive-pack). Or if core.logAllRefUpdates is set to true. Now this isn't the default in a bare repository, but it should be the default in a repository with a working directory. So the case we are talking about should be seeing the reflog update.
So I dug a little more deeply, and the problem is that the reflog for
master was getting updated, but not the reflog for HEAD, and that's
what "git reflog" was showing --- hence my confusion.
What are the rules for when HEAD's reflog should get updated, and is
this documented anywhere in the man pages?
- Ted
Script started on Sun 18 Mar 2007 11:11:59 PM EDT
Top-level shell (parent script)
Using ssh-agent pid 7679
<tytso@candygram> {/home/tytso/talks/dscm/git}
1% cp -r test1 test2 ; cd test2
<tytso@candygram> {/home/tytso/talks/dscm/git/test2}
2% (cd r2; git-config core.logallrefupdates)
true
<tytso@candygram> {/home/tytso/talks/dscm/git/test2}
3% cat r2/.git/refs/heads/master
f2e3cc0bb64c8c94b89ba07bfbdd1653584586f2
<tytso@candygram> {/home/tytso/talks/dscm/git/test2}
4% cat r2/.git/logs/HEAD
0000000000000000000000000000000000000000 f2e3cc0bb64c8c94b89ba07bfbdd1653584586f2 Theodore Ts'o [off-list ref] 1174266825 -0400
<tytso@candygram> {/home/tytso/talks/dscm/git/test2}
5% cat r2/.git/logs/refs/heads/master
0000000000000000000000000000000000000000 f2e3cc0bb64c8c94b89ba07bfbdd1653584586f2 Theodore Ts'o [off-list ref] 1174266825 -0400
<tytso@candygram> {/home/tytso/talks/dscm/git/test2}
6% (cd r1 ; git push ../r2)
updating 'refs/heads/master'
from f2e3cc0bb64c8c94b89ba07bfbdd1653584586f2
to 37508dc11dbe274d021124057fd2d027f6ce9d17
Generating pack...
Done counting 5 objects.
Result has 3 objects.
Deltifying 3 objects.
100% (3/3) done
Writing 3 objects.
100% (3/3) done
Total 3 (delta 2), reused 0 (delta 0)
Unpacking 3 objects
100% (3/3) done
refs/heads/master: f2e3cc0bb64c8c94b89ba07bfbdd1653584586f2 -> 37508dc11dbe274d021124057fd2d027f6ce9d17
<tytso@candygram> {/home/tytso/talks/dscm/git/test2}
7% cd r2
<tytso@candygram> {/home/tytso/talks/dscm/git/test2/r2} [master]
8% cat .git/refs/heads/master
37508dc11dbe274d021124057fd2d027f6ce9d17
<tytso@candygram> {/home/tytso/talks/dscm/git/test2/r2} [master]
9% cat .git/logs/HEAD
0000000000000000000000000000000000000000 f2e3cc0bb64c8c94b89ba07bfbdd1653584586f2 Theodore Ts'o [off-list ref] 1174266825 -0400
<tytso@candygram> {/home/tytso/talks/dscm/git/test2/r2} [master]
10% cat .git/logs/refs/heads/master
0000000000000000000000000000000000000000 f2e3cc0bb64c8c94b89ba07bfbdd1653584586f2 Theodore Ts'o [off-list ref] 1174266825 -0400
f2e3cc0bb64c8c94b89ba07bfbdd1653584586f2 37508dc11dbe274d021124057fd2d027f6ce9d17 Theodore Ts'o [off-list ref] 1174274004 -0400 push
<tytso@candygram> {/home/tytso/talks/dscm/git/test2/r2} [master]
11% git reflog
37508dc... HEAD@{0}:
<tytso@candygram> {/home/tytso/talks/dscm/git/test2/r2} [master]
13% git version
git version 1.5.0.5.425.g9cec6-dirty
<tytso@candygram> {/home/tytso/talks/dscm/git/test2/r2} [master]
14% exit
Script done on Sun 18 Mar 2007 11:14:28 PM EDT