"John Dlugosz" [off-list ref] writes:
Developer B runs git fsck --full, gets no errors but one dangling blob.
Does a push. No errors.
Now, on the upstream repo, I run fsck, and find a bunch of danglings (as
always) and a missing blob.
Any fetch from that repo will fail, due to that missing blob.
What's going on? How can I fix his local repository, other than...
It sounds like there is nothing to fix in "his local repository"; the
error is in your "upstream repo".
The dangling objects can happen if you push over dumb transport and
interrupt in the middle, or you force a push of a rewound branch, so it
does not necessarily indicate any errors, but a missing object is always
an error.
The dangling objects can happen if you push over dumb transport and
interrupt in the middle, or you force a push of a rewound branch, so
it
does not necessarily indicate any errors, but a missing object is
always an error.
Thanks.
That's what I thought danglings were. But why doesn't gc get rid of
them?
TradeStation Group, Inc. is a publicly-traded holding company (NASDAQ GS: TRAD) of three operating subsidiaries, TradeStation Securities, Inc. (Member NYSE, FINRA, SIPC and NFA), TradeStation Technologies, Inc., a trading software and subscription company, and TradeStation Europe Limited, a United Kingdom, FSA-authorized introducing brokerage firm. None of these companies provides trading or investment advice, recommendations or endorsements of any kind. The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited.
If you received this in error, please contact the sender and delete the material from any computer.
John Dlugosz wrote:
quoted
The dangling objects can happen if you push over dumb transport and
interrupt in the middle, or you force a push of a rewound branch, so
it
quoted
does not necessarily indicate any errors, but a missing object is
always an error.
Thanks.
That's what I thought danglings were. But why doesn't gc get rid of
them?
Jeff already explained why in his email to you about "dangling commits ...".
What you may not realize (and Jeff hinted at) is that unreferenced objects
are created often. This is because the object must be created _before_
the reference to the object is created. The existence of a reference to an
object is what differentiates a dangling,unreferenced object from one that is
not dangling,unreferenced. Usually, an unreferenced object exists in the
repository for a very short time before becoming referenced by the creation
of a commit which references it. But, there is always some period of time
that an object exists in the repository as a dangling,unreferenced object.
That is why gc does not delete all dangling,unreferenced objects that it
encounters immediately. As Jeff pointed out, it only deletes those that are
two weeks old by default.
-brandon