Skip to content
  • Jeff King's avatar
    cvsexportcommit: fix massive commits · 38a5b1d6
    Jeff King authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    Because we feed the changed filenames to CVS on the command
    line, it was possible for massive commits to overflow the
    system exec limits. Instead, we now do an xargs-like split
    of the arguments.
    
    This means that we lose some of the atomicity of calling CVS
    in one shot. Since CVS commits are not atomic, but the CVS
    protocol is, the possible effects of this are not clear;
    however, since CVS doesn't provide a different interface,
    this is our only option for large commits (short of writing
    a CVS client library).
    
    The argument size limit is arbitrarily set to 64kB. This
    should be high enough to trigger only in rare cases where it
    is necessary, so normal-sized commits are not affected by
    the atomicity change.
    
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    38a5b1d6