From: "Ben Keene via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Ben Keene <seraphire@gmail.com>, Junio C Hamano <gitster@pobox.com>
Subject: [PATCH v5 0/4] git-p4: Usability enhancements
Date: Mon, 16 Dec 2019 14:02:18 +0000 [thread overview]
Message-ID: <pull.675.v5.git.git.1576504942.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.675.v4.git.git.1576245481.gitgitgadget@gmail.com>
Some user interaction with git-p4 is not as user-friendly as the rest of the
Git ecosystem.
Here are three areas that can be improved on:
1) When a patch fails and the user is prompted, there is no sanitization of
the user input so for a "yes/no" question, if the user enters "YES" instead
of a lowercase "y", they will be re-prompted to enter their answer.
Commit 1 addresses this by sanitizing the user text by trimming and
lowercasing their input before testing. Now "YES" will succeed!
2) If the command line arguments are incorrect for git-p4, the program
reports that there was a syntax error, but doesn't show what the correct
syntax is.
Commit 2 displays the context help for the failed command.
3) If Git generates an error while attempting to clean up the RCS Keyword
expansions, it currently leaves P4 in an invalid state. Files that were
checked out by P4 are not revereted.
Commit 3 adds and exception handler that catches this condition and issues a
P4 Revert for the files that were previously edited.
4) Git can handle scraping the RCS Keyword expansions out of source files
when it is preparing to submit them to P4. However, if the config value
"git-p4.attemptRCSCleanup" isn't set, it will just report that it fails.
Commit 4 adds a helpful suggestion, that the user might want to set
git-p4.attemptRCSCleanup.
Revisions
=========
v3 - Implemented the various suggestions from Luke and Denton.
I did not add additional exception handling for the EOFError in the prompt
method. I do believe that it is a good idea, but that would change the logic
handling of the existing code to handle this new "no answer" condition and I
didn't want to introduce that at this time.
v4 - Whitespace clean up and commit clarifications.
Submit 3 suggested some clarifications to the commit test and revealed some
whitespace errors.
v5 - Fixed typo in a commit message. (Invalid attribute to Thanks-to: Denton
Liu liu.denton@gmail.com [liu.denton@gmail.com])
Ben Keene (4):
git-p4: yes/no prompts should sanitize user text
git-p4: show detailed help when parsing options fail
git-p4: wrap patchRCSKeywords test to revert changes on failure
git-p4: failure because of RCS keywords should show help
git-p4.py | 93 +++++++++++++++++++++++++++++++++++--------------------
1 file changed, 59 insertions(+), 34 deletions(-)
base-commit: ad05a3d8e5a6a06443836b5e40434262d992889a
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-675%2Fseraphire%2Fseraphire%2Fp4-usability-v5
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-675/seraphire/seraphire/p4-usability-v5
Pull-Request: https://github.com/git/git/pull/675
Range-diff vs v4:
1: 6c23cd5684 ! 1: 7e0145fa32 git-p4: yes/no prompts should sanitize user text
@@ -26,7 +26,7 @@
choices, remove the loop from the calling code that handles response
verification.
- Thanks-to: Denton Liu <Denton Liu>
+ Thanks-to: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Ben Keene <seraphire@gmail.com>
diff --git a/git-p4.py b/git-p4.py
2: bfdd3dc517 = 2: 4960d1fa22 git-p4: show detailed help when parsing options fail
3: 20f6398693 = 3: 81a09a1228 git-p4: wrap patchRCSKeywords test to revert changes on failure
4: c78e2e4db1 = 4: 4c4b783fd5 git-p4: failure because of RCS keywords should show help
--
gitgitgadget
next prev parent reply other threads:[~2019-12-16 14:02 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-09 14:16 [PATCH 0/3] git-p4: Usability enhancements Ben Keene via GitGitGadget
2019-12-09 14:16 ` [PATCH 1/3] git-p4: [usability] yes/no prompts should sanitize user text Ben Keene via GitGitGadget
2019-12-09 22:00 ` Junio C Hamano
2019-12-10 14:26 ` Ben Keene
2019-12-09 14:16 ` [PATCH 2/3] git-p4: [usability] RCS Keyword failure should suggest help Ben Keene via GitGitGadget
2019-12-09 22:22 ` Junio C Hamano
2019-12-09 14:16 ` [PATCH 3/3] git-p4: [usability] Show detailed help when parsing options fail Ben Keene via GitGitGadget
2019-12-09 22:24 ` Junio C Hamano
2019-12-09 22:06 ` [PATCH 0/3] git-p4: Usability enhancements Junio C Hamano
2019-12-10 15:22 ` [PATCH v2 0/4] " Ben Keene via GitGitGadget
2019-12-10 15:22 ` [PATCH v2 1/4] git-p4: yes/no prompts should sanitize user text Ben Keene via GitGitGadget
2019-12-11 11:52 ` Denton Liu
2019-12-11 11:59 ` Denton Liu
2019-12-10 15:22 ` [PATCH v2 2/4] git-p4: show detailed help when parsing options fail Ben Keene via GitGitGadget
2019-12-10 15:22 ` [PATCH v2 3/4] git-p4: wrap patchRCSKeywords test to revert changes on failure Ben Keene via GitGitGadget
2019-12-10 15:22 ` [PATCH v2 4/4] git-p4: failure because of RCS keywords should show help Ben Keene via GitGitGadget
2019-12-11 11:29 ` Denton Liu
2019-12-11 9:43 ` [PATCH v2 0/4] git-p4: Usability enhancements Luke Diamand
2019-12-12 19:46 ` [PATCH v3 " Ben Keene via GitGitGadget
2019-12-12 19:46 ` [PATCH v3 1/4] git-p4: yes/no prompts should sanitize user text Ben Keene via GitGitGadget
2019-12-13 1:45 ` Denton Liu
2019-12-13 13:42 ` Ben Keene
2019-12-13 19:46 ` Junio C Hamano
2019-12-15 20:30 ` Johannes Schindelin
2019-12-16 17:54 ` Junio C Hamano
2019-12-16 19:11 ` Ben Keene
2019-12-12 19:46 ` [PATCH v3 2/4] git-p4: show detailed help when parsing options fail Ben Keene via GitGitGadget
2019-12-12 19:46 ` [PATCH v3 3/4] git-p4: wrap patchRCSKeywords test to revert changes on failure Ben Keene via GitGitGadget
2019-12-12 19:46 ` [PATCH v3 4/4] git-p4: failure because of RCS keywords should show help Ben Keene via GitGitGadget
2019-12-13 13:57 ` [PATCH v4 0/4] git-p4: Usability enhancements Ben Keene via GitGitGadget
2019-12-13 13:57 ` [PATCH v4 1/4] git-p4: yes/no prompts should sanitize user text Ben Keene via GitGitGadget
2019-12-13 22:54 ` Denton Liu
2019-12-16 13:53 ` Ben Keene
2019-12-13 13:57 ` [PATCH v4 2/4] git-p4: show detailed help when parsing options fail Ben Keene via GitGitGadget
2019-12-13 13:58 ` [PATCH v4 3/4] git-p4: wrap patchRCSKeywords test to revert changes on failure Ben Keene via GitGitGadget
2019-12-13 13:58 ` [PATCH v4 4/4] git-p4: failure because of RCS keywords should show help Ben Keene via GitGitGadget
2019-12-16 14:02 ` Ben Keene via GitGitGadget [this message]
2019-12-16 14:02 ` [PATCH v5 1/4] git-p4: yes/no prompts should sanitize user text Ben Keene via GitGitGadget
2019-12-16 14:02 ` [PATCH v5 2/4] git-p4: show detailed help when parsing options fail Ben Keene via GitGitGadget
2019-12-16 14:02 ` [PATCH v5 3/4] git-p4: wrap patchRCSKeywords test to revert changes on failure Ben Keene via GitGitGadget
2019-12-16 14:02 ` [PATCH v5 4/4] git-p4: failure because of RCS keywords should show help Ben Keene via GitGitGadget
2019-12-16 20:39 ` [PATCH v5 0/4] git-p4: Usability enhancements Junio C Hamano
2019-12-21 10:19 ` Luke Diamand
2019-12-25 19:13 ` Junio C Hamano
2020-01-02 13:50 ` Ben Keene
2020-01-02 21:44 ` Junio C Hamano
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pull.675.v5.git.git.1576504942.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=seraphire@gmail.com \
/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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).