Skip to content
  • Shawn O. Pearce's avatar
    Change {pre,post}-receive hooks to use stdin · f43cd49f
    Shawn O. Pearce authored
    
    
    Sergey Vlasov, Andy Parkins and Alex Riesen all pointed out that it
    is possible for a single invocation of receive-pack to be given more
    refs than the OS might allow us to pass as command line parameters
    to a single hook invocation.
    
    We don't want to break these up into multiple invocations (like
    xargs might do) as that makes it impossible for the pre-receive
    hook to verify multiple related ref updates occur at the same time,
    and it makes it harder for post-receive to send out a single batch
    notification.
    
    Instead we pass the reference data on a pipe connected to the
    hook's stdin, supplying one ref per line to the hook.  This way a
    single hook invocation can obtain an infinite amount of ref data,
    without bumping into any operating system limits.
    
    Signed-off-by: default avatarShawn O. Pearce <spearce@spearce.org>
    Signed-off-by: default avatarJunio C Hamano <junkio@cox.net>
    f43cd49f