git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* How does receive-pack and pre-receive hook works ?
@ 2010-06-27  2:24 Mahesh Vaidya
  2010-06-27  7:00 ` Shawn Pearce
  0 siblings, 1 reply; 2+ messages in thread
From: Mahesh Vaidya @ 2010-06-27  2:24 UTC (permalink / raw)
  To: git

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

I have added following in pre-recieve hook; all works fine. git
rev-list --pretty d6d147f432869037a7ac8bdca3a2d5bc0cdc1e9f
^a3fe19833480023b72350d6e56e939cbd0ba2c8b

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.

Thx/ Mahesh.

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: How does receive-pack and pre-receive hook works ?
  2010-06-27  2:24 How does receive-pack and pre-receive hook works ? Mahesh Vaidya
@ 2010-06-27  7:00 ` Shawn Pearce
  0 siblings, 0 replies; 2+ messages in thread
From: Shawn Pearce @ 2010-06-27  7:00 UTC (permalink / raw)
  To: Mahesh Vaidya; +Cc: git

On Sat, Jun 26, 2010 at 7:24 PM, Mahesh Vaidya <forvaidya@gmail.com> 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.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-06-27  7:01 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-27  2:24 How does receive-pack and pre-receive hook works ? Mahesh Vaidya
2010-06-27  7:00 ` Shawn Pearce

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).