One of the most serious recurring issues[1][2][3] with remote helpers is that marks get out of sync. The way to analize and reproduce these wasn't trivial, but the culprit seems to be a crash while doing `git push`. It has been known already how exactly that happens, but no simple way how to fix it. This is the simplest way so far; tell `git fast-export` to export the marks to a temporary file, and move it to the right location only *after* the remote helper has finished its job without errors. Since the code wasn't prepared for a change like this, some reorganization changes are needed. More changes might be welcome to further propagate the errors properly through the code, but for the moment the errors are propagated to the right location, in order to fix this specific problem. [1] http://article.gmane.org/gmane.comp.version-control.git/223962 [2] http://article.gmane.org/gmane.comp.version-control.git/241707 [3] https://github.com/felipec/git/issues/56 Felipe Contreras (5): transport-helper: remove barely used xchgline() remote-helpers: make recvline return an error transport-helper: propagate recvline() error pushing transport-helper: trivial cleanup transport-helper: fix sync issue on crashes t/t5801-remote-helpers.sh | 17 ++++++++++- transport-helper.c | 72 ++++++++++++++++++++++++++++------------------- 2 files changed, 59 insertions(+), 30 deletions(-) -- 1.9.1+fc3.9.gc73078e -- 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