From: Wincent Colaiuta <win@wincent.com>
To: git@vger.kernel.org
Cc: gitster@pobox.com, peff@peff.net
Subject: [PATCH v2] git-add--interactive pathspec and patch additions
Date: Fri, 23 Nov 2007 20:20:43 +0100 [thread overview]
Message-ID: <1195845650-85962-1-git-send-email-win@wincent.com> (raw)
This is a revised series based on the feedback and suggestions
received to date. The purpose of the series is to implement these
two user-visible changes:
1. "git-add --interactive" now takes optional pathspec parameters
which can be used to limit the scope of an interactive session
2. We now have "git-add --patch" which takes you straight to the
"patch" subcommand using the given pathspecs and then exits
The series implements these changes in seven steps that apply on top of
"master"; these patches are rebased/squashed ones which *replace* the
ones sent the other day:
1. Add -q/--quiet switch to git-ls-files
Needed because run_cmd_pipe() doesn't propagate the child exit status
and system() likes to be chatty on the standard out. Of the possible
workarounds adding this switch seems to be the cleanest and most
portable.
2. Rename patch_update_file function to patch_update_pathspec
Merely cosmetic.
3. Add path-limiting to git-add--interactive
4. Bail if user supplies an invalid pathspec
For consistency with many other Git commands. It also shields us from
errors if the user starts passing funny pathspecs; eg. consider what
happens if the user passes a non-existent file "foo", and that
eventually hits git-diff-files; note how the error message changes
depending on where "foo" appears in the list:
$ git diff-files --numstat --summary --
1 0 git-commit.sh
$ git diff-files --numstat --summary -- .
1 0 git-commit.sh
$ git diff-files --numstat --summary -- . foo
error: Could not access ''
$ git diff-files --numstat --summary -- foo .
error: Could not access 'foo'
$ git diff-files --numstat --summary -- . . foo
1 0 git-commit.sh
5. Teach builtin-add to pass path arguments to git-add--interactive
6. Add "--patch" option to git-add--interactive
7. Teach builtin-add to handle "--patch" option
And that's all. Here's the diff stat:
Documentation/git-add.txt | 9 +++++-
Documentation/git-ls-files.txt | 7 ++++-
builtin-add.c | 28 ++++++++++++--------
builtin-ls-files.c | 12 ++++++++-
commit.h | 2 +-
git-add--interactive.perl | 52 +++++++++++++++++++++++++++++++-----
t/t3020-ls-files-error-unmatch.sh | 12 ++++++++
7 files changed, 99 insertions(+), 23 deletions(-)
next reply other threads:[~2007-11-23 19:21 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-23 19:20 Wincent Colaiuta [this message]
2007-11-23 19:20 ` [PATCH 1/7] Add -q/--quiet switch to git-ls-files Wincent Colaiuta
2007-11-23 19:20 ` [PATCH 2/7] Rename patch_update_file function to patch_update_pathspec Wincent Colaiuta
2007-11-23 19:20 ` [PATCH 3/7] Add path-limiting to git-add--interactive Wincent Colaiuta
2007-11-23 19:20 ` [PATCH 4/7] Bail if user supplies an invalid pathspec Wincent Colaiuta
2007-11-23 19:20 ` [PATCH 5/7] Teach builtin-add to pass path arguments to git-add--interactive Wincent Colaiuta
2007-11-23 19:20 ` [PATCH 6/7] Add "--patch" option " Wincent Colaiuta
2007-11-23 19:20 ` [PATCH 7/7] Teach builtin-add to handle "--patch" option Wincent Colaiuta
2007-11-23 19:25 ` [PATCH 1/7] Add -q/--quiet switch to git-ls-files Wincent Colaiuta
2007-11-23 21:07 ` [PATCH v2] git-add--interactive pathspec and patch additions Junio C Hamano
2007-11-23 22:20 ` Wincent Colaiuta
2007-11-24 12:55 ` [PATCH 0/3] Updates to git-add--interactive Wincent Colaiuta
2007-11-24 12:55 ` [PATCH 1/3] Rename patch_update_file function to patch_update_pathspec Wincent Colaiuta
2007-11-24 12:55 ` [PATCH 2/3] Move pathspec validation into interactive_add Wincent Colaiuta
2007-11-24 12:55 ` [PATCH 3/3] Add "--patch" option to git-add--interactive Wincent Colaiuta
2007-11-24 19:15 ` [PATCH 2/3] Move pathspec validation into interactive_add Junio C Hamano
2007-11-24 21:50 ` Wincent Colaiuta
2007-11-24 22:34 ` 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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1195845650-85962-1-git-send-email-win@wincent.com \
--to=win@wincent.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
/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).