• S
    Generate crash reports on die in fast-import · 8acb3297
    Shawn O. Pearce 提交于
    As fast-import is quite strict about its input and die()'s anytime
    something goes wrong it can be difficult for a frontend developer
    to troubleshoot why fast-import rejected their input, or to even
    determine what input command it rejected.
    
    This change introduces a custom handler for Git's die() routine.
    When we receive a die() for any reason (fast-import or a lower level
    core Git routine we called) the error is first dumped onto stderr
    and then a more extensive crash report file is prepared in GIT_DIR.
    Finally we exit the process with status 128, just like the stock
    builtin die handler.
    
    An internal flag is set to prevent any further die()'s that may be
    invoked during the crash report generator from causing us to enter
    into an infinite loop.  We shouldn't die() from our crash report
    handler, but just in case someone makes a future code change we are
    prepared to gaurd against small mistakes turning into huge problems
    for the end-user.
    Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
    8acb3297
fast-import.c 57.6 KB