On 7/1/07, Jan Hudec <bulb@xxxxxx> wrote:
On Mon, Jun 11, 2007 at 07:45:51 +0200, Marco Costalba wrote: > On 6/11/07, Jan Hudec <bulb@xxxxxx> wrote: > > However, I am currently not sure how to handle errors. If the current commit fails, it will show a message box with it's output, but I can't see where it is generated. It seems it's somewhere inside MyProcess, so I don't have to do anything special though, right?
You have 2 ways to start a git command: QGit::run() and QGit::runAsync() The first starts the command and wait for completion, a bool is returned to indicate success as example if (!run("git read-tree --reset HEAD")) return false; The second one is use to start a command and return immediately, so it's used for long commands that should be non-blocking, as example: if (!runAsync("git diff-index -r -m --patch-with-stat HEAD")) return false; In the latter case success it means the command has been _started_ successfully. A bool is the only flag returned, because error detect is done at lower level, in MyProcess::sendErrorMsg() in file myprocess.cpp that handles the low level of running an external process and is called by run(). In case of an error MyProcess::sendErrorMsg() is called to inform the GUI (a popup dialog box) about the error and the stderr output received. What is an error ? :-) It's not so trivial due to different OS and git commands behaviours regarding stderr and exiting codes, check the comment at the beginning of MyProcess::on_finished() in myprocess.cpp to see *how* qgit detects an error has occurred and informs upstream. So the bottom line is: no, you don't have to do anything special. The returned 'false' value from run() call is for your use only, if needed, you don't have to propagate upstream to let user be informed. Hope this helps. Marco P.S: Why 'git-commit --amend -F' it's explicitely forbidden? - 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