git.c - made the code more readable in cmd_main by moving the spacial casing for "version" and "help" as part of the regular code path git-p4.py - minor optimization in read_pipe_lines by first checking for errors, then reading data and/or decoding it from the pip stream Daniel Sonbolian (2): git-p4: minor optimization in read_pip_lines git.c: improve code readability in cmd_main git-p4.py | 10 +++++++--- git.c | 14 ++++++++------ 2 files changed, 15 insertions(+), 9 deletions(-) base-commit: bcd6bc478adc4951d57ec597c44b12ee74bc88fb Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1355%2Fdsal3389%2Frm-useless-else-v2 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1355/dsal3389/rm-useless-else-v2 Pull-Request: https://github.com/git/git/pull/1355 Range-diff vs v1: 1: 71da6f53a44 ! 1: dd81a2cadec python file more pytonic, adjust "if" and "for" @@ ## Metadata ## -Author: dsal3389 <dsal3389@xxxxxxxxx> +Author: Daniel Sonbolian <dsal3389@xxxxxxxxx> ## Commit message ## - python file more pytonic, adjust "if" and "for" + git-p4: minor optimization in read_pip_lines - L371 - redesign few lines to get rid of the "else" statement - - L404 - moved the if statement below another if statement that - checks if it should exit the code, only if it doesnt need to, - then we can iterate the for loop and decode the text - - Changes to be committed: - modified: git-p4.py + checking for an error condition before reading and/or decoding + lines from the pip stream to avoid unnecessary computation Signed-off-by: Daniel Sonbolian <dsal3389@xxxxxxxxx> ## git-p4.py ## -@@ git-p4.py: def read_pipe(c, ignore_error=False, raw=False, *k, **kw): - """ - retcode, out, err = read_pipe_full(c, *k, **kw) - if retcode != 0: -- if ignore_error: -- out = "" -- else: -+ if not ignore_error: - die('Command failed: {}\nError: {}'.format(' '.join(c), err)) -+ out = "" - if not raw: - out = decode_text_stream(out) - return out @@ git-p4.py: def read_pipe_lines(c, raw=False, *k, **kw): + p = subprocess.Popen(c, stdout=subprocess.PIPE, *k, **kw) pipe = p.stdout ++ ++ if p.wait(): ++ die('Command failed: {}'.format(' '.join(c))) ++ lines = pipe.readlines() -- if not raw: ++ pipe.close() ++ + if not raw: - lines = [decode_text_stream(line) for line in lines] - if pipe.close() or p.wait(): - die('Command failed: {}'.format(' '.join(c))) -+ if not raw: -+ lines = [decode_text_stream(line) for line in lines] +- if pipe.close() or p.wait(): +- die('Command failed: {}'.format(' '.join(c))) ++ return [decode_text_stream(line) for line in lines] return lines 2: c107ad9f6ff ! 2: 7fe59688018 removed else statement @@ ## Metadata ## -Author: dsal3389 <dsal3389@xxxxxxxxx> +Author: Daniel Sonbolian <dsal3389@xxxxxxxxx> ## Commit message ## - removed else statement + git.c: improve code readability in cmd_main - there is no need for the else statement if we can do it more - elegantly with a signle if statement we no "else" + checking for an error condition whose body unconditionally exists first, + and then the special casing of "version" and "help" as part of the + preparation for the "normal codepath", making the code simpler to read Signed-off-by: Daniel Sonbolian <dsal3389@xxxxxxxxx> -- gitgitgadget