git-bisect: make "start", "good" and "skip" succeed or fail atomically
Before this patch, when "git bisect start", "git bisect good" or "git bisect skip" were called with many revisions, they could fail after having already marked some revisions as "good", "bad" or "skip".
This could be especilally bad for "git bisect start" because as the file ".git/BISECT_NAMES" would not have been written, there would have been no attempt to clear the marked revisions on a "git bisect reset". That's because if there is no ".git/BISECT_NAMES" file, nothing is done to clean things up, as the bisect session is not supposed to have started.
While at it, let's also create the ".git/BISECT_START" file, only after ".git/BISECT_NAMES" as been created.
Signed-off-by: Christian Couder <firstname.lastname@example.org> Signed-off-by: Junio C Hamano <email@example.com>