From: Thomas Gummerer <t.gummerer@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Jeff King <peff@peff.net>, Jonathan Nieder <jrnieder@gmail.com>,
git@vger.kernel.org
Subject: [RFC] deprecate git stash save? (was: Re: [PATCH 2/3] http-push: fix construction of hex value from path)
Date: Thu, 5 Oct 2017 21:00:49 +0100 [thread overview]
Message-ID: <20171005200049.GF30301@hank> (raw)
On 10/04, Junio C Hamano wrote:
> I do not object with such a well designed deprecation plan for any
> other features, if there are other "favourite" ones people would
> want to deprecate and eventually remove, by the way.
Since you were asking :) With the introduction of 'git stash push',
my hope was always that we could eventually get rid of 'git stash
save' and only keep one interface around.
As there still many references to it around on the internet, it
probably requires a bit of a longer deprecation plan. What do you
think about the following:
- Change docs/man pages to use 'git stash push' everywhere instead of
'git stash save'.
- Mention the deprecation in the release notes and in the man page.
- Print a warning when 'git stash save' is used.
- Eventually get rid of it (maybe something for 3.0?)
The steps above would all occur sequentially with a few releases
between each of them.
A patch for the first step below. I think that even makes sense if we
don't want to follow through with the deprecation.
--- >8 ---
Subject: [PATCH] replace git stash save with git stash push in the documentation
git stash push is the newer interface for creating a stash. While we
are still keeping git stash save around for the time being, it's better
to point new users of git stash to the more modern (and more feature
rich) interface, instead of teaching them the older version that we
might want to phase out in the future.
Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
---
Documentation/git-stash.txt | 12 ++++++------
Documentation/gitworkflows.txt | 2 +-
Documentation/user-manual.txt | 2 +-
git-stash.sh | 10 +++++-----
4 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/Documentation/git-stash.txt b/Documentation/git-stash.txt
index 00f95fee1f..53b2e60aeb 100644
--- a/Documentation/git-stash.txt
+++ b/Documentation/git-stash.txt
@@ -33,7 +33,7 @@ and reverts the working directory to match the `HEAD` commit.
The modifications stashed away by this command can be listed with
`git stash list`, inspected with `git stash show`, and restored
(potentially on top of a different commit) with `git stash apply`.
-Calling `git stash` without any arguments is equivalent to `git stash save`.
+Calling `git stash` without any arguments is equivalent to `git stash push`.
A stash is by default listed as "WIP on 'branchname' ...", but
you can give a more descriptive message on the command line when
you create one.
@@ -118,7 +118,7 @@ pop [--index] [-q|--quiet] [<stash>]::
Remove a single stashed state from the stash list and apply it
on top of the current working tree state, i.e., do the inverse
- operation of `git stash save`. The working directory must
+ operation of `git stash push`. The working directory must
match the index.
+
Applying the state can fail with conflicts; in this case, it is not
@@ -137,7 +137,7 @@ apply [--index] [-q|--quiet] [<stash>]::
Like `pop`, but do not remove the state from the stash list. Unlike `pop`,
`<stash>` may be any commit that looks like a commit created by
- `stash save` or `stash create`.
+ `stash push` or `stash create`.
branch <branchname> [<stash>]::
@@ -148,7 +148,7 @@ branch <branchname> [<stash>]::
`stash@{<revision>}`, it then drops the `<stash>`. When no `<stash>`
is given, applies the latest one.
+
-This is useful if the branch on which you ran `git stash save` has
+This is useful if the branch on which you ran `git stash push` has
changed enough that `git stash apply` fails due to conflicts. Since
the stash entry is applied on top of the commit that was HEAD at the
time `git stash` was run, it restores the originally stashed state
@@ -255,14 +255,14 @@ $ git stash pop
Testing partial commits::
-You can use `git stash save --keep-index` when you want to make two or
+You can use `git stash push --keep-index` when you want to make two or
more commits out of the changes in the work tree, and you want to test
each change before committing:
+
----------------------------------------------------------------
# ... hack hack hack ...
$ git add --patch foo # add just first part to the index
-$ git stash save --keep-index # save all other changes to the stash
+$ git stash push --keep-index # save all other changes to the stash
$ edit/build/test first part
$ git commit -m 'First part' # commit fully tested change
$ git stash pop # prepare to work on all other changes
diff --git a/Documentation/gitworkflows.txt b/Documentation/gitworkflows.txt
index 177610e44e..02569d0614 100644
--- a/Documentation/gitworkflows.txt
+++ b/Documentation/gitworkflows.txt
@@ -40,7 +40,7 @@ beginning. It is always easier to squash a few commits together than
to split one big commit into several. Don't be afraid of making too
small or imperfect steps along the way. You can always go back later
and edit the commits with `git rebase --interactive` before you
-publish them. You can use `git stash save --keep-index` to run the
+publish them. You can use `git stash push --keep-index` to run the
test suite independent of other uncommitted changes; see the EXAMPLES
section of linkgit:git-stash[1].
diff --git a/Documentation/user-manual.txt b/Documentation/user-manual.txt
index b4d88af133..1c4e44892d 100644
--- a/Documentation/user-manual.txt
+++ b/Documentation/user-manual.txt
@@ -1556,7 +1556,7 @@ so on a different branch and then coming back), unstash the
work-in-progress changes.
------------------------------------------------
-$ git stash save "work in progress for foo feature"
+$ git stash push "work in progress for foo feature"
------------------------------------------------
This command will save your changes away to the `stash`, and
diff --git a/git-stash.sh b/git-stash.sh
index 8b2ce9afda..8ce6929d7f 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -267,11 +267,11 @@ push_stash () {
# translation of "error: " takes in your language. E.g. in
# English this is:
#
- # $ git stash save --blah-blah 2>&1 | head -n 2
- # error: unknown option for 'stash save': --blah-blah
- # To provide a message, use git stash save -- '--blah-blah'
- eval_gettextln "error: unknown option for 'stash save': \$option
- To provide a message, use git stash save -- '\$option'"
+ # $ git stash push --blah-blah 2>&1 | head -n 2
+ # error: unknown option for 'stash push': --blah-blah
+ # To provide a message, use git stash push -- '--blah-blah'
+ eval_gettextln "error: unknown option for 'stash push': \$option
+ To provide a message, use git stash push -- '\$option'"
usage
;;
*)
--
2.14.1.480.gb18f417b89
next reply other threads:[~2017-10-05 20:00 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-05 20:00 Thomas Gummerer [this message]
2017-10-05 20:10 ` [PATCH 2/1] mention git stash push first in the man page Thomas Gummerer
2017-10-17 4:14 ` Jeff King
2017-10-17 21:45 ` Thomas Gummerer
2017-10-17 21:47 ` Jeff King
2017-10-19 18:08 ` Thomas Gummerer
2017-10-20 8:04 ` Robert P. J. Day
2017-10-21 6:20 ` Jeff King
2017-10-21 6:43 ` Robert P. J. Day
2017-10-12 0:56 ` [RFC] deprecate git stash save? Junio C Hamano
2017-10-12 11:14 ` Junio C Hamano
2017-10-16 18:19 ` Thomas Gummerer
2017-10-17 4:13 ` [RFC] deprecate git stash save? (was: Re: [PATCH 2/3] http-push: fix construction of hex value from path) Jeff King
2017-10-17 21:47 ` Thomas Gummerer
2017-10-19 18:33 ` [PATCH v2 1/2] replace git stash save with git stash push in the documentation Thomas Gummerer
2017-10-19 18:33 ` [PATCH v2 2/2] mark git stash push deprecated in the man page Thomas Gummerer
2017-10-21 6:28 ` Jeff King
2017-10-22 16:31 ` Thomas Gummerer
2017-10-22 17:04 ` [PATCH v3 0/3] deprecate git stash save Thomas Gummerer
2017-10-22 17:04 ` [PATCH v3 1/3] replace git stash save with git stash push in the documentation Thomas Gummerer
2017-10-22 17:04 ` [PATCH v3 2/3] mark git stash push deprecated in the man page Thomas Gummerer
2017-10-22 17:04 ` [PATCH v3 3/3] stash: remove now superfluos help for "stash push" Thomas Gummerer
2017-10-23 0:39 ` [PATCH v3 0/3] deprecate git stash save Jeff King
2017-10-23 1:19 ` Junio C Hamano
2017-10-23 5:18 ` Jeff King
2017-10-23 6:26 ` Junio C Hamano
2017-10-23 5:47 ` Robert P. J. Day
2017-10-23 1:32 ` Junio C Hamano
2017-10-21 6:26 ` [PATCH v2 1/2] replace git stash save with git stash push in the documentation Jeff King
2017-10-22 16:28 ` Thomas Gummerer
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=20171005200049.GF30301@hank \
--to=t.gummerer@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--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).