From: "Daniel Sonbolian via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Daniel Sonbolian <dsal3389@gmail.com>
Subject: [PATCH v2 0/2] git.c: improve readability | git-p4: minor optimization
Date: Fri, 07 Oct 2022 14:38:04 +0000 [thread overview]
Message-ID: <pull.1355.v2.git.git.1665153486.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.1355.git.git.1665056747.gitgitgadget@gmail.com>
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@gmail.com>
+Author: Daniel Sonbolian <dsal3389@gmail.com>
## 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@gmail.com>
## 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@gmail.com>
+Author: Daniel Sonbolian <dsal3389@gmail.com>
## 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@gmail.com>
--
gitgitgadget
next prev parent reply other threads:[~2022-10-07 14:38 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-06 11:45 [PATCH 0/2] Minor Refactors: remove useless else dsal3389 via GitGitGadget
2022-10-06 11:45 ` [PATCH 1/2] python file more pytonic, adjust "if" and "for" dsal3389 via GitGitGadget
2022-10-06 16:02 ` Victoria Dye
2022-10-06 17:16 ` Junio C Hamano
2022-10-06 11:45 ` [PATCH 2/2] removed else statement dsal3389 via GitGitGadget
2022-10-06 16:14 ` Victoria Dye
2022-10-07 18:35 ` Junio C Hamano
2022-10-06 17:16 ` Junio C Hamano
2022-10-06 17:06 ` [PATCH 0/2] Minor Refactors: remove useless else Junio C Hamano
2022-10-07 14:38 ` Daniel Sonbolian via GitGitGadget [this message]
2022-10-07 14:38 ` [PATCH v2 1/2] git-p4: minor optimization in read_pip_lines Daniel Sonbolian via GitGitGadget
2022-10-07 15:17 ` Phillip Wood
2022-10-07 17:28 ` Junio C Hamano
2022-10-07 14:38 ` [PATCH v2 2/2] git.c: improve code readability in cmd_main Daniel Sonbolian via GitGitGadget
2022-10-08 16:21 ` [PATCH v3] " Daniel Sonbolian via GitGitGadget
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pull.1355.v2.git.git.1665153486.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=dsal3389@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).