Re: How does receive-pack and pre-receive hook works ?

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

 



On Sat, Jun 26, 2010 at 7:24 PM, Mahesh Vaidya <forvaidya@xxxxxxxxx> wrote:
> How does receive-pack and pre-receive hook works ?
>
> I Would like know where does Git saves whatever I am pushing before
> exit 0 of this hook; Specifically how does it understand about
> 'd6d147f432869037a7ac8bdca3a2d5bc0cdc1e9f' which is not part of
> destination depot / repo.

The objects that were sent are actually added to the destination
repository, by creating one or more loose objects in the objects/
directory, or a single new pack file in the objects/pack/ directory if
more than 100 objects were sent.  These objects are in the repository,
but they aren't actually reachable from any ref, so they are subject
to garbage collection during a future `git gc`.  Once the objects are
safely stored, the hooks are invoked... which means the hooks can
access the objects, as they are already part of the repository.

If pre-receive or update exits with a non-zero status, the objects
stay around, but the references aren't updated.  By not updating the
references, the objects aren't reachable, and the objects will be
automatically removed during a future `git gc`.

-- 
Shawn.
--
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]