Subject: [PATCH v2 0/2] git.c: improve readability | git-p4: minor optimization

From: "Daniel Sonbolian via GitGitGadget" <[email-masked]>
Date: Fri, 07 Oct 2022 14:38:04 +0000

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 <[email-masked]>
     +Author: Daniel Sonbolian <[email-masked]>
      
       ## 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 <[email-masked]>
      
       ## 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 <[email-masked]>
     +Author: Daniel Sonbolian <[email-masked]>
      
       ## 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 <[email-masked]>

-- 
gitgitgadget