git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Felipe Contreras <felipe.contreras@gmail.com>
To: git@vger.kernel.org
Cc: Jonathan Nieder <jrnieder@gmail.com>, Jeff King <peff@peff.net>,
	Ramkumar Ramachandra <artagnon@gmail.com>,
	Felipe Contreras <felipe.contreras@gmail.com>
Subject: [PATCH 8/9] apply: add --work, --no-work options
Date: Thu, 29 Aug 2013 13:14:39 -0500	[thread overview]
Message-ID: <1377800080-5309-9-git-send-email-felipe.contreras@gmail.com> (raw)
In-Reply-To: <1377800080-5309-1-git-send-email-felipe.contreras@gmail.com>

'git apply', 'git apply --index', 'git apply --cached' do different
things, but what they do is not precisely clear, specially since no
other commands has similar distinctions.

With --no-work (--work being the default), it's clear what the option
would do; modify, or not, the working directory.

So, --work (the default), doesn't cause any changes, and --no-work
enables the current --cache if used with --index.

Eventually --work might replace --cache, if these options are
standarized in the whole git toolset.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 Documentation/git-apply.txt | 6 +++++-
 builtin/apply.c             | 5 +++++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/Documentation/git-apply.txt b/Documentation/git-apply.txt
index ce44327..6167061 100644
--- a/Documentation/git-apply.txt
+++ b/Documentation/git-apply.txt
@@ -16,7 +16,7 @@ SYNOPSIS
 	  [--ignore-space-change | --ignore-whitespace ]
 	  [--whitespace=(nowarn|warn|fix|error|error-all)]
 	  [--exclude=<path>] [--include=<path>] [--directory=<root>]
-	  [--verbose] [<patch>...]
+	  [--verbose] [--no-work] [<patch>...]
 
 DESCRIPTION
 -----------
@@ -75,6 +75,10 @@ OPTIONS
 	cached data, apply the patch, and store the result in the index
 	without using the working tree. This implies `--index`.
 
+--[no-]work::
+	Apply a patch with or without touching the working tree, essentially
+	`--no-work` plus `--index` are the equivalent of `--cached`.
+
 -3::
 --3way::
 	When the patch does not apply cleanly, fall back on 3-way merge if
diff --git a/builtin/apply.c b/builtin/apply.c
index 42b5a4b..a3dd89d 100644
--- a/builtin/apply.c
+++ b/builtin/apply.c
@@ -4350,6 +4350,7 @@ int cmd_apply(int argc, const char **argv, const char *prefix_)
 	int errs = 0;
 	int is_not_gitdir = !startup_info->have_repository;
 	int force_apply = 0;
+	int work = 1;
 
 	const char *whitespace_option = NULL;
 
@@ -4381,6 +4382,8 @@ int cmd_apply(int argc, const char **argv, const char *prefix_)
 			N_("make sure the patch is applicable to the current index")),
 		OPT_BOOLEAN(0, "cached", &cached,
 			N_("apply a patch without touching the working tree")),
+		OPT_BOOLEAN(0, "work", &work,
+			N_("modify the working tree")),
 		OPT_BOOLEAN(0, "apply", &force_apply,
 			N_("also apply the patch (use with --stat/--summary/--check)")),
 		OPT_BOOL('3', "3way", &threeway,
@@ -4433,6 +4436,8 @@ int cmd_apply(int argc, const char **argv, const char *prefix_)
 	argc = parse_options(argc, argv, prefix, builtin_apply_options,
 			apply_usage, 0);
 
+	if (check_index && !work)
+		cached = 1;
 	if (apply_with_reject && threeway)
 		die("--reject and --3way cannot be used together.");
 	if (cached && threeway)
-- 
1.8.4-fc

  parent reply	other threads:[~2013-08-29 18:20 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-29 18:01 Officially start moving to the term 'staging area' Felipe Contreras
2013-08-29 18:09 ` [PATCH 0/2] stage: proper 'stage' command Felipe Contreras
2013-08-29 18:09   ` [PATCH 1/2] Add " Felipe Contreras
2013-08-29 18:38     ` Matthieu Moy
2013-08-29 18:47       ` Felipe Contreras
2013-08-29 18:09   ` [PATCH 2/2] stage: add edit command Felipe Contreras
2013-08-29 18:35     ` Matthieu Moy
2013-08-29 18:42       ` Felipe Contreras
2013-08-29 18:14 ` [PATCH 0/9] Add --stage and --work options Felipe Contreras
2013-08-29 18:14   ` [PATCH 1/9] diff: document --staged Felipe Contreras
2013-08-29 18:14   ` [PATCH 2/9] grep: add --staged option Felipe Contreras
2013-08-29 18:14   ` [PATCH 3/9] rm: " Felipe Contreras
2013-08-29 18:14   ` [PATCH 4/9] stash: add --stage option to save Felipe Contreras
2013-08-29 18:39     ` Matthieu Moy
2013-08-29 18:14   ` [PATCH 5/9] stash: add --stage to pop and apply Felipe Contreras
2013-08-29 18:14   ` [PATCH 6/9] submodule: add --staged options Felipe Contreras
2013-08-29 18:14   ` [PATCH 7/9] apply: add --stage option Felipe Contreras
2013-08-29 18:14   ` Felipe Contreras [this message]
2013-08-29 18:14   ` [PATCH 9/9] completion: update --staged options Felipe Contreras
2013-08-29 18:19 ` [PATCH 0/3] reset: refactor into --stage and --work Felipe Contreras
2013-08-29 18:19   ` [PATCH 1/3] reset: add --stage and --work options Felipe Contreras
     [not found]     ` <CALkWK0=P0xZAk95Jmw9mRUCwPQP7NmVHsuPaWNg+D2v3wP9=-w@mail.gmail.com>
2013-09-08 22:55       ` Felipe Contreras
2013-09-09  0:15         ` Ramkumar Ramachandra
2013-09-09  0:39           ` Felipe Contreras
2013-08-29 18:19   ` [PATCH 2/3] reset: allow --keep with --stage Felipe Contreras
2013-08-29 18:19   ` [PATCH 3/3] completion: update 'git reset' new stage options Felipe Contreras
2013-08-29 18:37 ` Officially start moving to the term 'staging area' Junio C Hamano
2013-08-29 19:57   ` Felipe Contreras
2013-08-30 19:11     ` Felipe Contreras
2013-08-30 20:40       ` Felipe Contreras
2013-08-30 20:42         ` Felipe Contreras
2013-08-30 20:28     ` Felipe Contreras
2013-08-29 21:55   ` Drew Northup
2013-08-29 22:10     ` Felipe Contreras
2013-09-04  4:45       ` Drew Northup
2013-09-08  2:09         ` Felipe Contreras
2013-08-30  5:16     ` Piotr Krukowiecki
2013-09-04  4:23       ` Drew Northup
2013-09-04  7:13         ` Piotr Krukowiecki
2013-09-04 13:36           ` Drew Northup
2013-09-08  1:27             ` Felipe Contreras
2013-09-08  1:18           ` Felipe Contreras
2013-09-08  1:33         ` Felipe Contreras
2013-09-08  7:49           ` Philip Oakley
2013-09-08  9:27             ` Felipe Contreras
2013-08-29 18:50 ` Matthieu Moy
2013-08-29 18:57   ` Felipe Contreras
2013-08-29 19:15     ` Matthieu Moy
2013-08-29 19:21     ` Matthieu Moy
2013-08-29 20:03     ` René Scharfe
2013-08-29 20:36       ` Felipe Contreras
2013-08-31  7:46         ` René Scharfe
2013-08-31  7:53           ` Felipe Contreras
2013-09-01  3:46           ` David Aguilar
2013-08-29 21:03     ` Matthieu Moy
2013-09-04  6:08 ` William Swanson
2013-09-06 15:45   ` Ping Yin
2013-09-06 17:14     ` Hilco Wijbenga

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=1377800080-5309-9-git-send-email-felipe.contreras@gmail.com \
    --to=felipe.contreras@gmail.com \
    --cc=artagnon@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=jrnieder@gmail.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).