Re: dangling blob which is not dangling at all

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Steven Grimm wrote:
Domenico Andreoli wrote:
What is this reflog thing and why is required?

It is a log of where each ref pointed at any given time. Or rather, a log of changes to refs, with timestamps. It is not *required* per se (you can turn it off and almost all of git will continue to work as before) but it's handy in that you can say stuff like

git checkout -b newbranch master@"{4 days ago}"

and git will give you a new branch pointing at the rev that master pointed to 4 days ago, even if it's a rev that is no longer reachable from any of the existing heads (e.g., because you did a "git rebase" and the rev in question was replaced by a new one.) Obviously as soon as you do a "git gc" you will lose the ability to go back to unreachable revs using the reflog.


Not strictly true. "git gc" does take the reflogs into account when determining reachability, but it also prunes the reflogs periodically to prevent them from growing without bound (and preventing pruning of otherwise unreachable objects).

From the git-gc manpage:

CONFIGURATION
 The optional configuration variable gc.reflogExpire can be set to
 indicate how long historical entries within each branch's reflog should
 remain available in this repository. The setting is expressed as a
 length of time, for example 90 days or 3 months. It defaults to 90
 days.

Regards,

Rogan

-
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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux