{"thread":{"id":"11318","subject":"git-stash: RFC: Adopt the default behavior to other commands","startedAt":"2007-12-17T11:03:22Z","lastAt":"2007-12-21T08:40:48Z","messageCount":33,"participants":["Sebastian Harl","Benoit Sigoure","Junio C Hamano","Johannes Schindelin","Andreas Ericsson","Wincent Colaiuta","Jakub Narebski","Sergei Organov","Jörg Sommer","Martin Langhoff","André Goddard Rosa","しらいしななこ"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"63399","messageId":"20071217110322.GH14889@albany.tokkee.org","threadId":"11318","inReplyTo":null,"subject":"git-stash: RFC: Adopt the default behavior to other commands","fromName":"Sebastian Harl","fromEmail":"sh@tokkee.org","sentAt":"2007-12-17T11:03:22Z","receivedAt":"2007-12-17T11:03:22Z","isPatch":false,"sender":{"key":"sh@tokkee.org","avatar":"https://gravatar.com/avatar/c19b9c37bd63e5d1dabe8d222904921fb807d53d1d8d41af758a16c066eeb59c?d=mp&s=160"},"body":"Hi,\n\nBy default, git-stash (when called without any other arguments) creates a new\nstash. This is quite different to the behavior of most other Git commands\n(e.g. git-tag, git-branch, etc. do \"list\" by default). In order to improve\nconsistency git-stash should imho adopt this as well.\n\nThe creation of a new stash should not do any harm. However, I think that\nconsistency is more important (iirc this has been mentioned in the current\nsurvey a couple of times) and doing \"list\" is (in general) the best default.\n\nComments?\n\nCheers,\nSebastian\n\n-- \nSebastian \"tokkee\" Harl +++ GnuPG-ID: 0x8501C7FC +++ http://tokkee.org/\n\nThose who would give up Essential Liberty to purchase a little Temporary\nSafety, deserve neither Liberty nor Safety.         -- Benjamin Franklin\n\n"},{"id":"63501","messageId":"506C6191-655D-46AE-A5C2-1335A9044F44@lrde.epita.fr","threadId":"11318","inReplyTo":"20071217110322.GH14889@albany.tokkee.org","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Benoit Sigoure","fromEmail":"tsuna@lrde.epita.fr","sentAt":"2007-12-17T22:32:28Z","receivedAt":"2007-12-17T22:32:28Z","isPatch":false,"sender":{"key":"tsunanet@gmail.com","avatar":"https://avatars.githubusercontent.com/u/128281?v=4"},"body":"On Dec 17, 2007, at 12:03 PM, Sebastian Harl wrote:\n\n> Hi,\n>\n> By default, git-stash (when called without any other arguments)  \n> creates a new\n> stash. This is quite different to the behavior of most other Git  \n> commands\n> (e.g. git-tag, git-branch, etc. do \"list\" by default). In order to  \n> improve\n> consistency git-stash should imho adopt this as well.\n>\n> The creation of a new stash should not do any harm. However, I  \n> think that\n> consistency is more important (iirc this has been mentioned in the  \n> current\n> survey a couple of times) and doing \"list\" is (in general) the best  \n> default.\n\n\nHi Sebastian,\nthis topic has been brought up the ML several times already, and  \nthere seems to be some sort of consensus on the misbehavior of git  \nstash and what the default should be (listing the stashes seems like  \na decent default action).  The current behavior of git stash is very  \ndangerous as the following frequently happens to new comers:\n   $ git stash\n   $ <hack on something else>\n   $ git commit\n   $ git stash apply\n   $ git stash clean # Oops, typo, I just stashed my changes again\n   $ git stash clear # Oops, I just lost my changed\n\nHopefully, Git gives you means to recover from this sort of error,  \nbut most of the time new comers don't know them and just assume they  \nlost their work.\n\nWhenever I use git stash, it gives me chills, because I know I can  \neasily screw things up (even though now I know how to recover from  \nthis sort of \"user error\").\n\nCheers,\n\n-- \nBenoit Sigoure aka Tsuna\nEPITA Research and Development Laboratory\n"},{"id":"63509","messageId":"7vk5nd53lp.fsf@gitster.siamese.dyndns.org","threadId":"11318","inReplyTo":"506C6191-655D-46AE-A5C2-1335A9044F44@lrde.epita.fr","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-12-17T23:00:18Z","receivedAt":"2007-12-17T23:00:18Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Benoit Sigoure <tsuna@lrde.epita.fr> writes:\n\n> ...  The current behavior of git stash is very\n> dangerous as the following frequently happens to new comers:\n>   $ git stash\n>   $ <hack on something else>\n>   $ git commit\n>   $ git stash apply\n>   $ git stash clean # Oops, typo, I just stashed my changes again\n>   $ git stash clear # Oops, I just lost my changed\n\nThis is a plain FUD, isn't it?  The first Oops should not happen these\ndays.\n"},{"id":"63524","messageId":"57F403E7-AF5B-40F1-AE9D-8EA036675A67@lrde.epita.fr","threadId":"11318","inReplyTo":"7vk5nd53lp.fsf@gitster.siamese.dyndns.org","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Benoit Sigoure","fromEmail":"tsuna@lrde.epita.fr","sentAt":"2007-12-17T23:32:05Z","receivedAt":"2007-12-17T23:32:05Z","isPatch":false,"sender":{"key":"tsunanet@gmail.com","avatar":"https://avatars.githubusercontent.com/u/128281?v=4"},"body":"On Dec 18, 2007, at 12:00 AM, Junio C Hamano wrote:\n\n> Benoit Sigoure <tsuna@lrde.epita.fr> writes:\n>\n>> ...  The current behavior of git stash is very\n>> dangerous as the following frequently happens to new comers:\n>>   $ git stash\n>>   $ <hack on something else>\n>>   $ git commit\n>>   $ git stash apply\n>>   $ git stash clean # Oops, typo, I just stashed my changes again\n>>   $ git stash clear # Oops, I just lost my changed\n>\n> This is a plain FUD, isn't it?  The first Oops should not happen these\n> days.\n\n\n*git pull in git*\n*reads Documentation/RelNotes-1.5.4.txt*\n\nBlah.  I didn't know follow the development over the past 3 weeks  \nwell enough, sorry for the noise.  I'm glad that this was improved.\n\n-- \nBenoit Sigoure aka Tsuna\nEPITA Research and Development Laboratory\n"},{"id":"63532","messageId":"7vfxy04ze7.fsf@gitster.siamese.dyndns.org","threadId":"11318","inReplyTo":"57F403E7-AF5B-40F1-AE9D-8EA036675A67@lrde.epita.fr","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-12-18T00:31:12Z","receivedAt":"2007-12-18T00:31:12Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Benoit Sigoure <tsuna@lrde.epita.fr> writes:\n\n> On Dec 18, 2007, at 12:00 AM, Junio C Hamano wrote:\n>\n>> Benoit Sigoure <tsuna@lrde.epita.fr> writes:\n>>\n>>> ...  The current behavior of git stash is very\n>>> dangerous ...\n> ...\n>> This is a plain FUD, isn't it?  The first Oops should not happen these\n>> days.\n>\n> *git pull in git*\n> *reads Documentation/RelNotes-1.5.4.txt*\n>\n> Blah.  I didn't know follow the development over the past 3 weeks well\n> enough, sorry for the noise.  I'm glad that this was improved.\n\nBut the original point by Sebastian hasn't been answered.  He wanted to\nmake the command list the stash without arguments.\n\nThis was discussed already in the early days of stash and there indeed\nwas a suggestion to do so (I think I sided with that), but the users did\nnot want it.  IIRC, the argument went like: \"when I say 'stash', that is\nbecause I want a quick and immediate way to stash, and I do not want a\nlist.  If I do not have to have a quick way, I would create a temporary\ncommit on the current branch, or switch to a temporary branch and commit\nthere.\"\n"},{"id":"63588","messageId":"20071218105941.GA17251@albany.tokkee.org","threadId":"11318","inReplyTo":"7vfxy04ze7.fsf@gitster.siamese.dyndns.org","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Sebastian Harl","fromEmail":"sh@tokkee.org","sentAt":"2007-12-18T10:59:42Z","receivedAt":"2007-12-18T10:59:42Z","isPatch":false,"sender":{"key":"sh@tokkee.org","avatar":"https://gravatar.com/avatar/c19b9c37bd63e5d1dabe8d222904921fb807d53d1d8d41af758a16c066eeb59c?d=mp&s=160"},"body":"Hi,\n\nOn Mon, Dec 17, 2007 at 04:31:12PM -0800, Junio C Hamano wrote:\n> But the original point by Sebastian hasn't been answered.  He wanted to\n> make the command list the stash without arguments.\n> \n> This was discussed already in the early days of stash and there indeed\n> was a suggestion to do so (I think I sided with that), but the users did\n> not want it.  IIRC, the argument went like: \"when I say 'stash', that is\n> because I want a quick and immediate way to stash, and I do not want a\n> list.  If I do not have to have a quick way, I would create a temporary\n> commit on the current branch, or switch to a temporary branch and commit\n> there.\"\n\nWell, \"git stash save\" is just five characters more - I really don't see why\nthis would be less comfortable (and for the really lazy people there are still\naliases...). On the other hand (if \"list\" is the default), we'd get a more\nconsistent interface which imho is imho more important than typing five\ncharacters less.\n\nCheers,\nSebastian\n\n-- \nSebastian \"tokkee\" Harl +++ GnuPG-ID: 0x8501C7FC +++ http://tokkee.org/\n\nThose who would give up Essential Liberty to purchase a little Temporary\nSafety, deserve neither Liberty nor Safety.         -- Benjamin Franklin\n\n"},{"id":"63598","messageId":"Pine.LNX.4.64.0712181231420.23902@racer.site","threadId":"11318","inReplyTo":"20071218105941.GA17251@albany.tokkee.org","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-12-18T12:33:02Z","receivedAt":"2007-12-18T12:33:02Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Tue, 18 Dec 2007, Sebastian Harl wrote:\n\n> On Mon, Dec 17, 2007 at 04:31:12PM -0800, Junio C Hamano wrote:\n> > But the original point by Sebastian hasn't been answered.  He wanted \n> > to make the command list the stash without arguments.\n> > \n> > This was discussed already in the early days of stash and there indeed \n> > was a suggestion to do so (I think I sided with that), but the users \n> > did not want it.  IIRC, the argument went like: \"when I say 'stash', \n> > that is because I want a quick and immediate way to stash, and I do \n> > not want a list.  If I do not have to have a quick way, I would create \n> > a temporary commit on the current branch, or switch to a temporary \n> > branch and commit there.\"\n> \n> Well, \"git stash save\" is just five characters more - I really don't see \n> why this would be less comfortable (and for the really lazy people there \n> are still aliases...). On the other hand (if \"list\" is the default), \n> we'd get a more consistent interface which imho is imho more important \n> than typing five characters less.\n\nIt's more about what you're used to.  I had an alias named 'stash' long \nbefore it became a git command.  And now guess how _annoying_ it would be \nto type \"git stash<Return><Curse out loud at my mouse>git stash \nsave<Return>\".\n\nAs you see, it is more than five characters more.\n\nCiao,\nDscho\n"},{"id":"63611","messageId":"4767D7A2.30703@op5.se","threadId":"11318","inReplyTo":"Pine.LNX.4.64.0712181231420.23902@racer.site","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2007-12-18T14:22:26Z","receivedAt":"2007-12-18T14:22:26Z","isPatch":false,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"Johannes Schindelin wrote:\n> Hi,\n> \n> On Tue, 18 Dec 2007, Sebastian Harl wrote:\n> \n>> On Mon, Dec 17, 2007 at 04:31:12PM -0800, Junio C Hamano wrote:\n>>> But the original point by Sebastian hasn't been answered.  He wanted \n>>> to make the command list the stash without arguments.\n>>>\n>>> This was discussed already in the early days of stash and there indeed \n>>> was a suggestion to do so (I think I sided with that), but the users \n>>> did not want it.  IIRC, the argument went like: \"when I say 'stash', \n>>> that is because I want a quick and immediate way to stash, and I do \n>>> not want a list.  If I do not have to have a quick way, I would create \n>>> a temporary commit on the current branch, or switch to a temporary \n>>> branch and commit there.\"\n>> Well, \"git stash save\" is just five characters more - I really don't see \n>> why this would be less comfortable (and for the really lazy people there \n>> are still aliases...). On the other hand (if \"list\" is the default), \n>> we'd get a more consistent interface which imho is imho more important \n>> than typing five characters less.\n> \n> It's more about what you're used to.  I had an alias named 'stash' long \n> before it became a git command.  And now guess how _annoying_ it would be \n> to type \"git stash<Return><Curse out loud at my mouse>git stash \n> save<Return>\".\n> \n\nNot nearly as annoying as losing work because of it, and you obviously\n*know* what to do when you're done cursing, while clueless-newbie-X just\nhops away and uses subversion.\n\n-- \nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n"},{"id":"63616","messageId":"Pine.LNX.4.64.0712181445420.23902@racer.site","threadId":"11318","inReplyTo":"4767D7A2.30703@op5.se","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-12-18T14:47:42Z","receivedAt":"2007-12-18T14:47:42Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Tue, 18 Dec 2007, Andreas Ericsson wrote:\n\n> Johannes Schindelin wrote:\n> \n> > On Tue, 18 Dec 2007, Sebastian Harl wrote:\n> > \n> > > On Mon, Dec 17, 2007 at 04:31:12PM -0800, Junio C Hamano wrote:\n> > > > But the original point by Sebastian hasn't been answered.  He \n> > > > wanted to make the command list the stash without arguments.\n> > > > \n> > > > This was discussed already in the early days of stash and there \n> > > > indeed was a suggestion to do so (I think I sided with that), but \n> > > > the users did not want it.  IIRC, the argument went like: \"when I \n> > > > say 'stash', that is because I want a quick and immediate way to \n> > > > stash, and I do not want a list.  If I do not have to have a quick \n> > > > way, I would create a temporary commit on the current branch, or \n> > > > switch to a temporary branch and commit there.\"\n> > > Well, \"git stash save\" is just five characters more - I really don't \n> > > see why this would be less comfortable (and for the really lazy \n> > > people there are still aliases...). On the other hand (if \"list\" is \n> > > the default), we'd get a more consistent interface which imho is \n> > > imho more important than typing five characters less.\n> > \n> > It's more about what you're used to.  I had an alias named 'stash' \n> > long before it became a git command.  And now guess how _annoying_ it \n> > would be to type \"git stash<Return><Curse out loud at my mouse>git \n> > stash save<Return>\".\n> \n> Not nearly as annoying as losing work because of it, and you obviously \n> *know* what to do when you're done cursing, while clueless-newbie-X just \n> hops away and uses subversion.\n\nReally?  Clueless-newbie-X certainly knows how to apply the stash, \notherwise she would not have used the command, right?\n\nIn the alternative, you could just scrap all those default actions, \nshowing synopses instead.  For all commands, including \"git commit\", \"git \nlog\", \"git fetch\", etc.\n\nSee?\n\nCiao,\nDscho\n"},{"id":"63617","messageId":"4767E07A.2020100@op5.se","threadId":"11318","inReplyTo":"Pine.LNX.4.64.0712181445420.23902@racer.site","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2007-12-18T15:00:10Z","receivedAt":"2007-12-18T15:00:10Z","isPatch":false,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"Johannes Schindelin wrote:\n> Hi,\n> \n> On Tue, 18 Dec 2007, Andreas Ericsson wrote:\n> \n>> Johannes Schindelin wrote:\n>>\n>>> On Tue, 18 Dec 2007, Sebastian Harl wrote:\n>>>\n>>>> On Mon, Dec 17, 2007 at 04:31:12PM -0800, Junio C Hamano wrote:\n>>>>> But the original point by Sebastian hasn't been answered.  He \n>>>>> wanted to make the command list the stash without arguments.\n>>>>>\n>>>>> This was discussed already in the early days of stash and there \n>>>>> indeed was a suggestion to do so (I think I sided with that), but \n>>>>> the users did not want it.  IIRC, the argument went like: \"when I \n>>>>> say 'stash', that is because I want a quick and immediate way to \n>>>>> stash, and I do not want a list.  If I do not have to have a quick \n>>>>> way, I would create a temporary commit on the current branch, or \n>>>>> switch to a temporary branch and commit there.\"\n>>>> Well, \"git stash save\" is just five characters more - I really don't \n>>>> see why this would be less comfortable (and for the really lazy \n>>>> people there are still aliases...). On the other hand (if \"list\" is \n>>>> the default), we'd get a more consistent interface which imho is \n>>>> imho more important than typing five characters less.\n>>> It's more about what you're used to.  I had an alias named 'stash' \n>>> long before it became a git command.  And now guess how _annoying_ it \n>>> would be to type \"git stash<Return><Curse out loud at my mouse>git \n>>> stash save<Return>\".\n>> Not nearly as annoying as losing work because of it, and you obviously \n>> *know* what to do when you're done cursing, while clueless-newbie-X just \n>> hops away and uses subversion.\n> \n> Really?  Clueless-newbie-X certainly knows how to apply the stash, \n> otherwise she would not have used the command, right?\n> \n\nFar too many times I've seen people expect help output if the command\nthey're running is even remotely dangerous, so they go ahead and run\nit without arguments to see what it does.\n\n\n> In the alternative, you could just scrap all those default actions, \n> showing synopses instead.  For all commands, including \"git commit\", \"git \n> log\", \"git fetch\", etc.\n> \n\nLike we do for the git wrapper, you mean? Yes, that would be one solution,\nalthough not a very good one for all commands.\n\nIt's probably not a bad idea for commands where the primary use is\nsomething else than producing visual output though, such as tag or branch,\nbut those handle creation/deletion of stuff, so the default action for them\nis to list stuff of the kind they operate on. I fail to see why stash should\nbe any different.\n\n> See?\n> \n\nNot really, no. What was your point?\n\n-- \nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n"},{"id":"63620","messageId":"Pine.LNX.4.64.0712181513060.23902@racer.site","threadId":"11318","inReplyTo":"4767E07A.2020100@op5.se","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-12-18T15:15:37Z","receivedAt":"2007-12-18T15:15:37Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Tue, 18 Dec 2007, Andreas Ericsson wrote:\n\n> Johannes Schindelin wrote:\n>\n> > In the alternative, you could just scrap all those default actions, \n> > showing synopses instead.  For all commands, including \"git commit\", \n> > \"git log\", \"git fetch\", etc.\n> \n> Like we do for the git wrapper, you mean? Yes, that would be one \n> solution, although not a very good one for all commands.\n\nExactly.  Not a good one.\n\n> It's probably not a bad idea for commands where the primary use is \n> something else than producing visual output though, such as tag or \n> branch, but those handle creation/deletion of stuff, so the default \n> action for them is to list stuff of the kind they operate on. I fail to \n> see why stash should be any different.\n\nI also fail to see why stash should be any different.  And that's why I \nexpect it to have a default operation, which is -- you guessed it -- \n\"stash the changes!\"\n\nIf I am not sure what I am about to do, there is -- wonder of wonders -- \nthe \"-h\" option!  And indeed:\n\n\t$ git stash -h\n\tUsage: /home/gitte/bin/git-stash [  | save | list | show | apply | \n\t\tclear | create ]\n\nSo what exactly was your point again?\n\nCiao,\nDscho\n"},{"id":"63621","messageId":"4767E717.2060902@op5.se","threadId":"11318","inReplyTo":"Pine.LNX.4.64.0712181513060.23902@racer.site","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2007-12-18T15:28:23Z","receivedAt":"2007-12-18T15:28:23Z","isPatch":false,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"Johannes Schindelin wrote:\n> Hi,\n> \n> On Tue, 18 Dec 2007, Andreas Ericsson wrote:\n> \n>> Johannes Schindelin wrote:\n>>\n>>> In the alternative, you could just scrap all those default actions, \n>>> showing synopses instead.  For all commands, including \"git commit\", \n>>> \"git log\", \"git fetch\", etc.\n>> Like we do for the git wrapper, you mean? Yes, that would be one \n>> solution, although not a very good one for all commands.\n> \n> Exactly.  Not a good one.\n> \n>> It's probably not a bad idea for commands where the primary use is \n>> something else than producing visual output though, such as tag or \n>> branch, but those handle creation/deletion of stuff, so the default \n>> action for them is to list stuff of the kind they operate on. I fail to \n>> see why stash should be any different.\n> \n> I also fail to see why stash should be any different.  And that's why I \n> expect it to have a default operation, which is -- you guessed it -- \n> \"stash the changes!\"\n> \n\nActually, I guessed \"list the stashes\".\n\n> If I am not sure what I am about to do, there is -- wonder of wonders -- \n> the \"-h\" option!  And indeed:\n> \n> \t$ git stash -h\n> \tUsage: /home/gitte/bin/git-stash [  | save | list | show | apply | \n> \t\tclear | create ]\n> \n> So what exactly was your point again?\n> \n\nMy point is that it would be nice if all git commands that actually\nmanipulate objects (create/delete/modify) had a safe default, and\nthat experienced users such as yourself could endure the insufferable\nagony of retraining your fingers to type five more chars so that\npeople won't have to get bitten by surprises.\n\n-- \nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n"},{"id":"63622","messageId":"EA6D22B6-CB49-439C-B31B-AE145B22BB35@wincent.com","threadId":"11318","inReplyTo":"4767D7A2.30703@op5.se","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Wincent Colaiuta","fromEmail":"win@wincent.com","sentAt":"2007-12-18T15:28:26Z","receivedAt":"2007-12-18T15:28:26Z","isPatch":false,"sender":{"key":"greg@hurrell.net","avatar":"https://avatars.githubusercontent.com/u/7074?v=4"},"body":"El 18/12/2007, a las 15:22, Andreas Ericsson escribió:\n\n> Johannes Schindelin wrote:\n>> Hi,\n>> On Tue, 18 Dec 2007, Sebastian Harl wrote:\n>>> On Mon, Dec 17, 2007 at 04:31:12PM -0800, Junio C Hamano wrote:\n>>>> But the original point by Sebastian hasn't been answered.  He  \n>>>> wanted to make the command list the stash without arguments.\n>>>>\n>>>> This was discussed already in the early days of stash and there  \n>>>> indeed was a suggestion to do so (I think I sided with that), but  \n>>>> the users did not want it.  IIRC, the argument went like: \"when I  \n>>>> say 'stash', that is because I want a quick and immediate way to  \n>>>> stash, and I do not want a list.  If I do not have to have a  \n>>>> quick way, I would create a temporary commit on the current  \n>>>> branch, or switch to a temporary branch and commit there.\"\n>>> Well, \"git stash save\" is just five characters more - I really  \n>>> don't see why this would be less comfortable (and for the really  \n>>> lazy people there are still aliases...). On the other hand (if  \n>>> \"list\" is the default), we'd get a more consistent interface which  \n>>> imho is imho more important than typing five characters less.\n>> It's more about what you're used to.  I had an alias named 'stash'  \n>> long before it became a git command.  And now guess how _annoying_  \n>> it would be to type \"git stash<Return><Curse out loud at my  \n>> mouse>git stash save<Return>\".\n>\n> Not nearly as annoying as losing work because of it, and you obviously\n> *know* what to do when you're done cursing, while clueless-newbie-X  \n> just\n> hops away and uses subversion.\n\nThere's not really any peril of losing work here, seeing as this  \nshould be a lossless round trip:\n\ngit stash\n# oops! didn't mean to save\ngit stash apply\n\nWe could help clueless-newbie-X here by augmenting the save output:\n\n   Saved \"WIP on master: 8ed8a26... s\"\n   HEAD is now at 8ed8a26... s\n\nAs follows (or similar):\n\n   Saved working directory and index state \"WIP on master: 8ed8a26... s\"\n   (To restore them type \"git stash apply\")\n   HEAD is now at 8ed8a26... s\n\nie. we explicitly tell them what was saved (their working directory  \nand index state), and also how to get it back immediately if that's  \nnot what they meant to do. Something like this (no doubt will be  \nwhitespace-mangled because I'm pasting this into my email client, but  \nit's just to demo the idea):\n\ndiff --git a/git-stash.sh b/git-stash.sh\nindex f16fd9c..a2f3723 100755\n--- a/git-stash.sh\n+++ b/git-stash.sh\n@@ -99,7 +99,8 @@ save_stash () {\n\n         git update-ref -m \"$stash_msg\" $ref_stash $w_commit ||\n                 die \"Cannot save the current status\"\n-       printf >&2 'Saved \"%s\"\\n' \"$stash_msg\"\n+       printf >&2 'Saved working directory and index state \"%s\"\\n'  \n\"$stash_msg\"\n+       echo >&2 '(To restore them type \"git stash apply\")'\n  }\n\n  have_stash () {\n\nCheers,\nWincent\n"},{"id":"63623","messageId":"m3lk7sovt0.fsf@roke.D-201","threadId":"11318","inReplyTo":"4767E717.2060902@op5.se","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2007-12-18T15:40:54Z","receivedAt":"2007-12-18T15:40:54Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Andreas Ericsson <ae@op5.se> writes:\n> Johannes Schindelin wrote:\n>> On Tue, 18 Dec 2007, Andreas Ericsson wrote:\n>>> Johannes Schindelin wrote:\n>>>\n>>>> In the alternative, you could just scrap all those default\n>>>> actions, showing synopses instead.  For all commands, including\n>>>> \"git commit\", \"git log\", \"git fetch\", etc.\n>>>\n>>> Like we do for the git wrapper, you mean? Yes, that would be one\n>>> solution, although not a very good one for all commands.\n>>\n>> Exactly.  Not a good one.\n>>\n>>> It's probably not a bad idea for commands where the primary use is\n>>> something else than producing visual output though, such as tag or\n>>> branch, but those handle creation/deletion of stuff, so the default\n>>> action for them is to list stuff of the kind they operate on. I\n>>> fail to see why stash should be any different.\n>>\n>> I also fail to see why stash should be any different.  And that's why\n>> I expect it to have a default operation, which is -- you guessed it -- \n>> \"stash the changes!\"\n> \n> Actually, I guessed \"list the stashes\".\n> \n>> If I am not sure what I am about to do, there is -- wonder of wonders -- \n>> the \"-h\" option!  And indeed:\n>> \t$ git stash -h\n>> \tUsage: /home/gitte/bin/git-stash [  | save | list | show |\n>> apply | \t\tclear | create ]\n>> So what exactly was your point again?\n>>\n> \n> My point is that it would be nice if all git commands that actually\n> manipulate objects (create/delete/modify) had a safe default, and\n> that experienced users such as yourself could endure the insufferable\n> agony of retraining your fingers to type five more chars so that\n> people won't have to get bitten by surprises.\n\nAlso for \"git commit\"?\n\nIn my opinion _basic_ usage of git-stash is simply using it with\none stash only: \"git stash\" / \"git unstash\" (i.e. \"git stash apply\";\nby the way this is one (beside \"git view\") use case for builtin\npredefined aliases).  Using it with multiple stashes (only then\n\"git stash list\" is needed) is advanced usage; and for advanced\nusage longer form is preferred, I think.\n\n\"git branch\", \"git log\" and \"git remote\" are horse of differenc color\nbecause the _cannot_ function without name of branch/tag/remote given,\nso hey provide \"list\" when no name was given.\n\n-- \nJakub Narebski\nPoland\nShadeHawk on #git\n"},{"id":"63687","messageId":"20071218154211.GB12549@alea.gnuu.de","threadId":"11318","inReplyTo":"7vfxy04ze7.fsf@gitster.siamese.dyndns.org","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Jörg Sommer","fromEmail":"joerg@alea.gnuu.de","sentAt":"2007-12-18T15:42:11Z","receivedAt":"2007-12-18T15:42:11Z","isPatch":false,"sender":{"key":"joerg@alea.gnuu.de","avatar":null},"body":"Hi,\n\nJunio C Hamano schrieb am Mon 17. Dec, 16:31 (-0800):\n> Benoit Sigoure <tsuna@lrde.epita.fr> writes:\n> \n> >> Benoit Sigoure <tsuna@lrde.epita.fr> writes:\n> >>\n> >>> ...  The current behavior of git stash is very\n> >>> dangerous ...\n> > ...\n> >> This is a plain FUD, isn't it?  The first Oops should not happen these\n> >> days.\n> \n> But the original point by Sebastian hasn't been answered.  He wanted to\n> make the command list the stash without arguments.\n> \n> This was discussed already in the early days of stash and there indeed\n> was a suggestion to do so (I think I sided with that), but the users did\n> not want it.  IIRC, the argument went like: \"when I say 'stash', that is\n> because I want a quick and immediate way to stash, and I do not want a\n> list.  If I do not have to have a quick way, I would create a temporary\n> commit on the current branch, or switch to a temporary branch and commit\n> there.\"\n\nWhen it should go quick why don't use an alias. git stash can print the\nlist and everyone who wants a quick stash can create an alias for this.\n\nI vote for stash print the list, because I dropped in the pitfall.\n\nBye, Jörg.\n-- \nDie beste Tarnung ist die Wahrheit. Die glaubt einem keiner!\n                      (Max Frisch: ‚Biedermann und die Brandstifter‘)\n"},{"id":"63629","messageId":"4767EFFA.1070909@op5.se","threadId":"11318","inReplyTo":"m3lk7sovt0.fsf@roke.D-201","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2007-12-18T16:06:18Z","receivedAt":"2007-12-18T16:06:18Z","isPatch":false,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"Jakub Narebski wrote:\n> Andreas Ericsson <ae@op5.se> writes:\n>> Johannes Schindelin wrote:\n>>> On Tue, 18 Dec 2007, Andreas Ericsson wrote:\n>>>> Johannes Schindelin wrote:\n>>>>\n>>>>> In the alternative, you could just scrap all those default\n>>>>> actions, showing synopses instead.  For all commands, including\n>>>>> \"git commit\", \"git log\", \"git fetch\", etc.\n>>>> Like we do for the git wrapper, you mean? Yes, that would be one\n>>>> solution, although not a very good one for all commands.\n>>> Exactly.  Not a good one.\n>>>\n>>>> It's probably not a bad idea for commands where the primary use is\n>>>> something else than producing visual output though, such as tag or\n>>>> branch, but those handle creation/deletion of stuff, so the default\n>>>> action for them is to list stuff of the kind they operate on. I\n>>>> fail to see why stash should be any different.\n>>> I also fail to see why stash should be any different.  And that's why\n>>> I expect it to have a default operation, which is -- you guessed it -- \n>>> \"stash the changes!\"\n>> Actually, I guessed \"list the stashes\".\n>>\n>>> If I am not sure what I am about to do, there is -- wonder of wonders -- \n>>> the \"-h\" option!  And indeed:\n>>> \t$ git stash -h\n>>> \tUsage: /home/gitte/bin/git-stash [  | save | list | show |\n>>> apply | \t\tclear | create ]\n>>> So what exactly was your point again?\n>>>\n>> My point is that it would be nice if all git commands that actually\n>> manipulate objects (create/delete/modify) had a safe default, and\n>> that experienced users such as yourself could endure the insufferable\n>> agony of retraining your fingers to type five more chars so that\n>> people won't have to get bitten by surprises.\n> \n> Also for \"git commit\"?\n> \n\ngit commit has a very safe default; It runs \"git status\" and exits.\n\n> In my opinion _basic_ usage of git-stash is simply using it with\n> one stash only: \"git stash\" / \"git unstash\" (i.e. \"git stash apply\";\n> by the way this is one (beside \"git view\") use case for builtin\n> predefined aliases).  Using it with multiple stashes (only then\n> \"git stash list\" is needed) is advanced usage; and for advanced\n> usage longer form is preferred, I think.\n> \n\nPerhaps. I'll stop quibbling about it. I don't care very deeply\nabout it anyway.\n\n> \"git branch\", \"git log\" and \"git remote\" are horse of differenc color\n> because the _cannot_ function without name of branch/tag/remote given,\n> so hey provide \"list\" when no name was given.\n> \n\ngit stash takes a name too. It's optional though, and has caused any\nnumber of source lines to be rewritten by grumbling authors who just\nstarted to like git a little less because of it (yes, I know that has\nbeen fixed, but it makes me look twice when discussing defaults for\ngit stash).\n\n-- \nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n"},{"id":"63633","messageId":"Pine.LNX.4.64.0712181610080.23902@racer.site","threadId":"11318","inReplyTo":"4767EFFA.1070909@op5.se","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-12-18T16:11:43Z","receivedAt":"2007-12-18T16:11:43Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Tue, 18 Dec 2007, Andreas Ericsson wrote:\n\n> Jakub Narebski wrote:\n>\n> > Andreas Ericsson <ae@op5.se> writes:\n> >\n> > > My point is that it would be nice if all git commands that actually \n> > > manipulate objects (create/delete/modify) had a safe default, and \n> > > that experienced users such as yourself could endure the \n> > > insufferable agony of retraining your fingers to type five more \n> > > chars so that people won't have to get bitten by surprises.\n> > \n> > Also for \"git commit\"?\n> \n> git commit has a very safe default; It runs \"git status\" and exits.\n\nNot in my universe.  It starts an editor, and then commits what I staged.\n\n> > In my opinion _basic_ usage of git-stash is simply using it with one \n> > stash only: \"git stash\" / \"git unstash\" (i.e. \"git stash apply\"; by \n> > the way this is one (beside \"git view\") use case for builtin \n> > predefined aliases).  Using it with multiple stashes (only then \"git \n> > stash list\" is needed) is advanced usage; and for advanced usage \n> > longer form is preferred, I think.\n> > \n> \n> Perhaps. I'll stop quibbling about it. I don't care very deeply about it \n> anyway.\n\nAh.  That explains why you made a case against the default operation ;-)\n\nCiao,\nDscho\n"},{"id":"63647","messageId":"871w9jrjdm.fsf@osv.gnss.ru","threadId":"11318","inReplyTo":"Pine.LNX.4.64.0712181610080.23902@racer.site","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Sergei Organov","fromEmail":"osv@javad.com","sentAt":"2007-12-18T17:40:53Z","receivedAt":"2007-12-18T17:40:53Z","isPatch":false,"sender":{"key":"osv@javad.com","avatar":null},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n> Hi,\n>\n> On Tue, 18 Dec 2007, Andreas Ericsson wrote:\n>\n>> Jakub Narebski wrote:\n>>\n>> > Andreas Ericsson <ae@op5.se> writes:\n>> >\n>> > > My point is that it would be nice if all git commands that actually \n>> > > manipulate objects (create/delete/modify) had a safe default, and \n>> > > that experienced users such as yourself could endure the \n>> > > insufferable agony of retraining your fingers to type five more \n>> > > chars so that people won't have to get bitten by surprises.\n>> > \n>> > Also for \"git commit\"?\n>> \n>> git commit has a very safe default; It runs \"git status\" and exits.\n>\n> Not in my universe.  It starts an editor, and then commits what I\n> staged.\n\n... allowing you to abort the operation by means of providing empty\ncommit message. On the other hand, \"git stash\" has immediate effect, so\nit's somewhat more dangerous. Just to be picky, anyway.\n\n-- \nSergei.\n"},{"id":"63651","messageId":"Pine.LNX.4.64.0712181803070.23902@racer.site","threadId":"11318","inReplyTo":"871w9jrjdm.fsf@osv.gnss.ru","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-12-18T18:03:38Z","receivedAt":"2007-12-18T18:03:38Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Tue, 18 Dec 2007, Sergei Organov wrote:\n\n> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n>\n> > On Tue, 18 Dec 2007, Andreas Ericsson wrote:\n> >\n> >> Jakub Narebski wrote:\n> >>\n> >> > Andreas Ericsson <ae@op5.se> writes:\n> >> >\n> >> > > My point is that it would be nice if all git commands that \n> >> > > actually manipulate objects (create/delete/modify) had a safe \n> >> > > default, and that experienced users such as yourself could endure \n> >> > > the insufferable agony of retraining your fingers to type five \n> >> > > more chars so that people won't have to get bitten by surprises.\n> >> > \n> >> > Also for \"git commit\"?\n> >> \n> >> git commit has a very safe default; It runs \"git status\" and exits.\n> >\n> > Not in my universe.  It starts an editor, and then commits what I \n> > staged.\n> \n> ... allowing you to abort the operation by means of providing empty \n> commit message. On the other hand, \"git stash\" has immediate effect, so \n> it's somewhat more dangerous. Just to be picky, anyway.\n\nSorry, I have no time for this kind of discussions.\n\nCiao,\nDscho\n"},{"id":"63690","messageId":"Pine.LNX.4.64.0712182211510.23902@racer.site","threadId":"11318","inReplyTo":"20071218154211.GB12549@alea.gnuu.de","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-12-18T22:13:54Z","receivedAt":"2007-12-18T22:13:54Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\n[please do not cull me from the Cc list, should you reply to this]\n\nOn Tue, 18 Dec 2007, J?rg Sommer wrote:\n\n> Junio C Hamano schrieb am Mon 17. Dec, 16:31 (-0800):\n> > Benoit Sigoure <tsuna@lrde.epita.fr> writes:\n> > \n> > >> Benoit Sigoure <tsuna@lrde.epita.fr> writes:\n> > >>\n> > >>> ...  The current behavior of git stash is very\n> > >>> dangerous ...\n> > > ...\n> > >> This is a plain FUD, isn't it?  The first Oops should not happen \n> > >> these days.\n> > \n> > But the original point by Sebastian hasn't been answered.  He wanted \n> > to make the command list the stash without arguments.\n> > \n> > This was discussed already in the early days of stash and there indeed \n> > was a suggestion to do so (I think I sided with that), but the users \n> > did not want it.  IIRC, the argument went like: \"when I say 'stash', \n> > that is because I want a quick and immediate way to stash, and I do \n> > not want a list.  If I do not have to have a quick way, I would create \n> > a temporary commit on the current branch, or switch to a temporary \n> > branch and commit there.\"\n> \n> When it should go quick why don't use an alias. git stash can print the \n> list and everyone who wants a quick stash can create an alias for this.\n> \n> I vote for stash print the list, because I dropped in the pitfall.\n\nAnd in a fresh clone, this list is empty, showing nothing at all.  Leading \nthe other half of the users to believe that the stash succeeded.\n\nIf stashing as the default operation of stash is ill-advised, showing the \nlist is even more so.\n\nCiao,\nDscho\n"},{"id":"63693","messageId":"7vabo7y762.fsf@gitster.siamese.dyndns.org","threadId":"11318","inReplyTo":"20071218154211.GB12549@alea.gnuu.de","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-12-18T22:22:45Z","receivedAt":"2007-12-18T22:22:45Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jörg Sommer <joerg@alea.gnuu.de> writes:\n\n> When it should go quick why don't use an alias. git stash can print the\n> list and everyone who wants a quick stash can create an alias for this.\n\nYou are taking this completely backwards.  The stash mechanism is all\nabout creating a quickie temporary pair of commits.  Anybody who wants\notherwise can use alias or choose not to use stash at all.\n"},{"id":"63707","messageId":"46a038f90712181531q62e2671eh42f39b7f6d75771c@mail.gmail.com","threadId":"11318","inReplyTo":"Pine.LNX.4.64.0712181803070.23902@racer.site","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Martin Langhoff","fromEmail":"martin.langhoff@gmail.com","sentAt":"2007-12-18T23:31:10Z","receivedAt":"2007-12-18T23:31:10Z","isPatch":false,"sender":{"key":"martin.langhoff@gmail.com","avatar":"https://gravatar.com/avatar/1e3f311b6c4c15836501901ca58f8c0b0667246488084ba524d8bc9867e22fd9?d=mp&s=160"},"body":"On Dec 19, 2007 7:03 AM, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:\n> Sorry, I have no time for this kind of discussions.\n\nJohannes,\n\nthe way you normally \"say\" that is by not replying. Please help keep\nthings civil.\n\ncheers,\n\n\nmartin\n"},{"id":"63708","messageId":"b8bf37780712181532q5d05615bh78c99c80a87c2169@mail.gmail.com","threadId":"11318","inReplyTo":"20071218154211.GB12549@alea.gnuu.de","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"André Goddard Rosa","fromEmail":"andre.goddard@gmail.com","sentAt":"2007-12-18T23:32:36Z","receivedAt":"2007-12-18T23:32:36Z","isPatch":false,"sender":{"key":"andre.goddard@gmail.com","avatar":null},"body":"On Dec 18, 2007 1:42 PM, Jörg Sommer <joerg@alea.gnuu.de> wrote:\n> Hi,\n>\n> Junio C Hamano schrieb am Mon 17. Dec, 16:31 (-0800):\n> > Benoit Sigoure <tsuna@lrde.epita.fr> writes:\n> >\n> > >> Benoit Sigoure <tsuna@lrde.epita.fr> writes:\n> > >>\n> > >>> ...  The current behavior of git stash is very\n> > >>> dangerous ...\n> > > ...\n> > >> This is a plain FUD, isn't it?  The first Oops should not happen these\n> > >> days.\n> >\n> > But the original point by Sebastian hasn't been answered.  He wanted to\n> > make the command list the stash without arguments.\n> >\n> > This was discussed already in the early days of stash and there indeed\n> > was a suggestion to do so (I think I sided with that), but the users did\n> > not want it.  IIRC, the argument went like: \"when I say 'stash', that is\n> > because I want a quick and immediate way to stash, and I do not want a\n> > list.  If I do not have to have a quick way, I would create a temporary\n> > commit on the current branch, or switch to a temporary branch and commit\n> > there.\"\n>\n> When it should go quick why don't use an alias. git stash can print the\n> list and everyone who wants a quick stash can create an alias for this.\n>\n> I vote for stash print the list, because I dropped in the pitfall.\n>\n\nI got caught by this default too. One vote more!\n\nRegards,\n-- \n[]s,\nAndré Goddard\n"},{"id":"63709","messageId":"46a038f90712181541x781c3ebcq6d85b88dbf5cbe23@mail.gmail.com","threadId":"11318","inReplyTo":"20071218154211.GB12549@alea.gnuu.de","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Martin Langhoff","fromEmail":"martin.langhoff@gmail.com","sentAt":"2007-12-18T23:41:24Z","receivedAt":"2007-12-18T23:41:24Z","isPatch":false,"sender":{"key":"martin.langhoff@gmail.com","avatar":"https://gravatar.com/avatar/1e3f311b6c4c15836501901ca58f8c0b0667246488084ba524d8bc9867e22fd9?d=mp&s=160"},"body":"On Dec 19, 2007 4:42 AM, Jörg Sommer <joerg@alea.gnuu.de> wrote:\n> I vote for stash print the list, because I dropped in the pitfall.\n\nI've dropped there myself, and work with a large team where we are\nboth fans of stash, and scarred by it. Any newcomer to git that\n\"discovers\" stash gets hit by it a dozen times, this is completely\nunnecesary.\n\nAll state-changing commands need parameters or are interactive (as\nit's the case with git-commit). That Johannes & early adopters,\nincluding me, have gotten used to the unintuitive (and dangerously\nsurprising) behaviour of stash is no excuse to inflict it upon actual\nend users. It's way too early for git and the stash command to stick\nto a misfeature in the name of backwards compat. We'll adapt, as we\nhave in the past, to an evolving ui.\n\nAnd if -- in a new repo -- the list is empty, we can just say so:\nNothing has been stashed yet. Which looks completely different from a\nsuccessful stash 'save' command.\n\ncheers,\n\n\nm\n"},{"id":"63719","messageId":"38C1471E-0927-4B43-AF73-70735820F8F9@wincent.com","threadId":"11318","inReplyTo":"46a038f90712181541x781c3ebcq6d85b88dbf5cbe23@mail.gmail.com","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Wincent Colaiuta","fromEmail":"win@wincent.com","sentAt":"2007-12-19T07:33:02Z","receivedAt":"2007-12-19T07:33:02Z","isPatch":false,"sender":{"key":"greg@hurrell.net","avatar":"https://avatars.githubusercontent.com/u/7074?v=4"},"body":"El 19/12/2007, a las 0:41, Martin Langhoff escribió:\n\n> On Dec 19, 2007 4:42 AM, Jörg Sommer <joerg@alea.gnuu.de> wrote:\n>> I vote for stash print the list, because I dropped in the pitfall.\n>\n> I've dropped there myself, and work with a large team where we are\n> both fans of stash, and scarred by it. Any newcomer to git that\n> \"discovers\" stash gets hit by it a dozen times, this is completely\n> unnecesary.\n\nI may be missing something here, but what's the danger here? An  \nunexpected stash is incredibly easy to revert, unless I'm missing  \nsomething. And nobody commented on the idea I posted earlier which  \nseems to address the concerns about newbies not knowing what \"git  \nstash\" with no params does:\n\nhttp://marc.info/?l=git&m=119799257404542&w=2\n\nCheers,\nWincent\n"},{"id":"63723","messageId":"46a038f90712182346t5309448egebfd3726f4d493c5@mail.gmail.com","threadId":"11318","inReplyTo":"38C1471E-0927-4B43-AF73-70735820F8F9@wincent.com","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Martin Langhoff","fromEmail":"martin.langhoff@gmail.com","sentAt":"2007-12-19T07:46:53Z","receivedAt":"2007-12-19T07:46:53Z","isPatch":false,"sender":{"key":"martin.langhoff@gmail.com","avatar":"https://gravatar.com/avatar/1e3f311b6c4c15836501901ca58f8c0b0667246488084ba524d8bc9867e22fd9?d=mp&s=160"},"body":"On Dec 19, 2007 8:33 PM, Wincent Colaiuta <win@wincent.com> wrote:\n> El 19/12/2007, a las 0:41, Martin Langhoff escribió:\n>\n> > On Dec 19, 2007 4:42 AM, Jörg Sommer <joerg@alea.gnuu.de> wrote:\n> >> I vote for stash print the list, because I dropped in the pitfall.\n> >\n> > I've dropped there myself, and work with a large team where we are\n> > both fans of stash, and scarred by it. Any newcomer to git that\n> > \"discovers\" stash gets hit by it a dozen times, this is completely\n> > unnecesary.\n>\n> I may be missing something here, but what's the danger here? An\n\nSurprise. Your working directory has *just* changed under your feet.\nMaybe you have an editor with further unsaved changes that is about to\nact confused whether you undo the stash or not.\n\n> unexpected stash is incredibly easy to revert, unless I'm missing\n\nOnce you know about it, yes it is. Once you know about the reflog, you\ncan sing and dance and never be worried. But for starting users, it's\na dangerous command.\n\n> And nobody commented on the idea I posted earlier which\n> seems to address the concerns about newbies not knowing what \"git\n> stash\" with no params does:\n\nI agree with making stash more verbose -- if the unlucky new user is\npaying close attention, they'll have instructions on to how to get out\nof trouble. But I agree more with making it \"just verbose, no action\"\nby default. There are two strong hints:\n\n - all other state-changing commands take parameters\n - quite a few people in this list have gotten burned with it\n\nEven after knowing pretty well how stash works, I still get mixed up\nsometimes with the 'clear/clean/list' stuff. Or have a typo in the\ncommand.\n\ncheers,\n\n\nmartin\n"},{"id":"63725","messageId":"4768D684.5060300@op5.se","threadId":"11318","inReplyTo":"46a038f90712182346t5309448egebfd3726f4d493c5@mail.gmail.com","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2007-12-19T08:29:56Z","receivedAt":"2007-12-19T08:29:56Z","isPatch":false,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"Martin Langhoff wrote:\n> On Dec 19, 2007 8:33 PM, Wincent Colaiuta <win@wincent.com> wrote:\n>> El 19/12/2007, a las 0:41, Martin Langhoff escribió:\n>>\n>>> On Dec 19, 2007 4:42 AM, Jörg Sommer <joerg@alea.gnuu.de> wrote:\n>>>> I vote for stash print the list, because I dropped in the pitfall.\n>>> I've dropped there myself, and work with a large team where we are\n>>> both fans of stash, and scarred by it. Any newcomer to git that\n>>> \"discovers\" stash gets hit by it a dozen times, this is completely\n>>> unnecesary.\n>> I may be missing something here, but what's the danger here? An\n> \n> Surprise. Your working directory has *just* changed under your feet.\n> Maybe you have an editor with further unsaved changes that is about to\n> act confused whether you undo the stash or not.\n> \n>> unexpected stash is incredibly easy to revert, unless I'm missing\n> \n> Once you know about it, yes it is. Once you know about the reflog, you\n> can sing and dance and never be worried. But for starting users, it's\n> a dangerous command.\n> \n>> And nobody commented on the idea I posted earlier which\n>> seems to address the concerns about newbies not knowing what \"git\n>> stash\" with no params does:\n> \n> I agree with making stash more verbose -- if the unlucky new user is\n> paying close attention, they'll have instructions on to how to get out\n> of trouble. But I agree more with making it \"just verbose, no action\"\n> by default. There are two strong hints:\n> \n>  - all other state-changing commands take parameters\n>  - quite a few people in this list have gotten burned with it\n> \n> Even after knowing pretty well how stash works, I still get mixed up\n> sometimes with the 'clear/clean/list' stuff. Or have a typo in the\n> command.\n> \n\nThe clear vs clean confusion has been remedied though, and you can no\nlonger create a named stash without using \"git stash save\" with a\nrecent enough version of git.\n\n-- \nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n"},{"id":"63757","messageId":"Pine.LNX.4.64.0712191150240.23902@racer.site","threadId":"11318","inReplyTo":"46a038f90712182346t5309448egebfd3726f4d493c5@mail.gmail.com","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2007-12-19T12:01:54Z","receivedAt":"2007-12-19T12:01:54Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Wed, 19 Dec 2007, Martin Langhoff wrote:\n\n> On Dec 19, 2007 8:33 PM, Wincent Colaiuta <win@wincent.com> wrote:\n> > El 19/12/2007, a las 0:41, Martin Langhoff escribi?:\n> >\n> > > On Dec 19, 2007 4:42 AM, J?rg Sommer <joerg@alea.gnuu.de> wrote:\n> > >> I vote for stash print the list, because I dropped in the pitfall.\n> > >\n> > > I've dropped there myself, and work with a large team where we are \n> > > both fans of stash, and scarred by it. Any newcomer to git that \n> > > \"discovers\" stash gets hit by it a dozen times, this is completely \n> > > unnecesary.\n> >\n> > I may be missing something here, but what's the danger here? An\n> \n> Surprise. Your working directory has *just* changed under your feet. \n> Maybe you have an editor with further unsaved changes that is about to \n> act confused whether you undo the stash or not.\n\nThe funny thing: why do you call stash with unsaved changes anyway?  I \nmean, come on, even if you were planning to see the usage of stash (which \nyou would get with -h), you undoubtedly wanted to either stash or unstash \nsome changes.  Otherwise you would not _need_ to see the usage to begin \nwith.\n\n> > unexpected stash is incredibly easy to revert, unless I'm missing\n> \n> Once you know about it, yes it is. Once you know about the reflog, you\n> can sing and dance and never be worried. But for starting users, it's\n> a dangerous command.\n\nNo.\n\nReflogs have nothing to do with it.\n\nIf you want to stash changes, you _got_ to know how to unstash those \nchanges.  Otherwise \"git reset --hard\" would have been your friend.\n\nAnd so, I cannot help but believe that all users of stash -- even the new \nones -- know about the fundamental concept of stashing/unstashing, and \ntherefore it is more something like this:\n\n\t$ git stash\n\t[no usage?  What the heck... Oh, it stashed the changes.  I did \n\t not want to stash them just yet.  Okay:]\n\t$ git unstash\n\tNo such command\n\t[Oh, maybe I should have read the man page.  Oh, well, the usage \n\t should do...]\n\t$ git stash -h\n\t...\n\nYes, if you start \"git stash\" blindly, believing that it does what \"git \nstash -h\" does, you will be bitten by it once.\n\nBut as I said, you will be bitten by a plenty commands if you are not \nfamiliar with the concept that \"-h\" shows the synopsis, \"--help\" the man \npage, and that there is a default action where possible.\n\nBut stash really is about things like\n\n\t$ git stash\n\t$ git pull\n\t$ git stash apply\n\nI do not _want_ to see the stash list in _most_ cases, because I do not \nstash away million dirty changes.\n\nAnd that workflow was what \"git stash\" was designed for.\n\n> > And nobody commented on the idea I posted earlier which seems to \n> > address the concerns about newbies not knowing what \"git stash\" with \n> > no params does:\n> \n> I agree with making stash more verbose -- if the unlucky new user is\n> paying close attention, they'll have instructions on to how to get out\n> of trouble. But I agree more with making it \"just verbose, no action\"\n> by default. There are two strong hints:\n> \n>  - all other state-changing commands take parameters\n\nWhat about \"git commit\", \"git reset\", \"git fetch\"?  These definitely \nchange state of the repository.\n\n>  - quite a few people in this list have gotten burned with it\n\nOkay, let's have a little calculation: IIRC 3 people (let's make it 10, to \nbe conservative) have said that they had this problem.  I must assume that \nall other people did not have the problem, or at least saw why the default \naction of \"git stash\" is what it is.\n\nThat said, if you _have_ to have the default changed, then I'll probably \nimplement a \"git push\" and \"git pop\" alias here, so that I cannot get \nannoyed by stash's \"new and improved\" behaviour.\n\nCiao,\nDscho\n"},{"id":"63758","messageId":"0FC1BEA1-3A1E-4316-BF1D-40522E355553@wincent.com","threadId":"11318","inReplyTo":"Pine.LNX.4.64.0712191150240.23902@racer.site","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Wincent Colaiuta","fromEmail":"win@wincent.com","sentAt":"2007-12-19T12:07:49Z","receivedAt":"2007-12-19T12:07:49Z","isPatch":false,"sender":{"key":"greg@hurrell.net","avatar":"https://avatars.githubusercontent.com/u/7074?v=4"},"body":"El 19/12/2007, a las 13:01, Johannes Schindelin escribió:\n\n> But stash really is about things like\n>\n> \t$ git stash\n> \t$ git pull\n> \t$ git stash apply\n>\n> I do not _want_ to see the stash list in _most_ cases, because I do  \n> not\n> stash away million dirty changes.\n>\n> And that workflow was what \"git stash\" was designed for.\n\n+1.\n\nWincent\n"},{"id":"63879","messageId":"200712202145.lBKLj7Fu015050@mi0.bluebottle.com","threadId":"11318","inReplyTo":"7vabo7y762.fsf@gitster.siamese.dyndns.org","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"しらいしななこ","fromEmail":"nanako3@bluebottle.com","sentAt":"2007-12-20T21:40:38Z","receivedAt":"2007-12-20T21:40:38Z","isPatch":false,"sender":{"key":"nanako3@lavabit.com","avatar":"https://gravatar.com/avatar/3777b9e201c5883a62b1a6fdf7c53f2d712d1d80989146063ea861e33aad72a8?d=mp&s=160"},"body":"Quoting Junio C Hamano <gitster@pobox.com>:\n> Jörg Sommer <joerg@alea.gnuu.de> writes:\n>\n>> When it should go quick why don't use an alias. git stash can print the\n>> list and everyone who wants a quick stash can create an alias for this.\n>\n> You are taking this completely backwards.  The stash mechanism is all\n> about creating a quickie temporary pair of commits.  Anybody who wants\n> otherwise can use alias or choose not to use stash at all.\n\nYou are of course right.  That was the reason I made \ngit-stash command behave that way in the first place.\n\nBut I see that some people on the list find this behavior \ndangerous and I can understand their fears.  Until one \nlearns that one can go back to the state before running \ngit-stash by running \"git-stash apply\" soon after that, \nit appears to one that the work is lost.\n\nHow about making this behavior configurable?\n\n-- 8< --\n[PATCH] Make \"git stash\" configurable\n\n\"git stash\" without argument originally created an unnamed \nstash, but some people felt this can be confusing to new \nusers.  This introduces config variable stash.quick to \ncontrol this behavior.\n\nThe variable can take one of three values: true, false, ask.\n\nWhen set to \"true\", the command allows to create a quick \nstash without any user interaction.  When set to \"false\", \nthe command shows the list of stash instead.  When set to \n\"ask\", the command asks the user.\n\nFor the first time users, when the variable is not set, \nthe command helps the user to set it interactively.\n\nSigned-off-by: Nanako Shiraishi <nanako3@bluebottle.com>\n\n---\n\n git-stash.sh |   72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-\n 1 files changed, 70 insertions(+), 2 deletions(-)\n\ndiff --git a/git-stash.sh b/git-stash.sh\nindex f16fd9c..4bb7134 100755\n--- a/git-stash.sh\n+++ b/git-stash.sh\n@@ -192,6 +192,69 @@ apply_stash () {\n \tfi\n }\n \n+allow_quick_stash () {\n+\t\n+\tquick=$(git config stash.quick)\n+\tif test $? != 0\n+\tthen\n+\t\tif ! test -t 0 || ! test -t 1\n+\t\tthen\n+\t\t\treturn 0\n+\t\tfi\n+\t\n+\t\techo '\n+*** First time users ***\n+\n+\"git stash\" can create an unnamed stash entry without user interaction.\n+This is a quick way to save away your work in progress.  Some people\n+find this behaviour confusing or dangerous to new users.  You can\n+configure the command to list the existing stash entries instead.'\n+\t\t\n+\t\twhile :\n+\t\tdo\n+\t\t\techo '\n+Do you want the command without argument to always...\n+\n+1. Ask for confirmation\n+2. Create an unnamed stash\n+3. List existing stash entries\n+'\n+\t\t\tprintf 'Which one? [1/2/3] '\n+\t\t\tread reply\n+\t\t\tquick=\n+\t\t\tcase \"$reply\" in\n+\t\t\t1|A*)\tquick=ask ;;\n+\t\t\t2|C*)\tquick=true ;;\n+\t\t\t3|L*)\tquick=false ;;\n+\t\t\t*)\tcontinue ;;\n+\t\t\tesac\n+\t\t\tbreak\n+\t\tdone\n+\t\tgit config stash.quick $quick\n+\t\techo '\n+You can reconfigure this by editing your $HOME/.gitconfig file'\n+\n+\tfi\n+\t\n+\tcase \"$quick\" in\n+\ttrue)\treturn 0 ;;\n+\tfalse)\treturn 1 ;;\n+\task)\t: do not return ;;\n+\tesac\n+\t\n+\tif ! test -t 0 || ! test -t 1\n+\tthen\n+\t\treturn 0\n+\tfi\n+\t\n+\tprintf 'Do you want to create an unnamed stash? [Y/n] '\n+\tread reply\n+\tcase \"$reply\" in\n+\t[nN]*)\treturn 1 ;;\n+\t*)\treturn 0 ;;\n+\tesac\n+}\n+\n # Main command set\n case \"$1\" in\n list)\n@@ -226,11 +289,16 @@ create)\n \tcreate_stash \"$*\" && echo \"$w_commit\"\n \t;;\n *)\n-\tif test $# -eq 0\n+\tif test $# -ne 0\n+\tthen\n+\t\tusage\n+\tfi\n+\tif allow_quick_stash\n \tthen\n \t\tsave_stash && git-reset --hard\n \telse\n-\t\tusage\n+\t\techo \"*** Stash List ***\"\n+\t\tlist_stash\n \tfi\n \t;;\n esac\n--\n1.5.3.7\n\n-- \nNanako Shiraishi\nhttp://ivory.ap.teacup.com/nanako3/\n\n----------------------------------------------------------------------\nFind out how you can get spam free email.\nhttp://www.bluebottle.com/tag/3\n"},{"id":"63881","messageId":"7v4pedov6c.fsf@gitster.siamese.dyndns.org","threadId":"11318","inReplyTo":"200712202145.lBKLj7Fu015050@mi0.bluebottle.com","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2007-12-20T22:31:07Z","receivedAt":"2007-12-20T22:31:07Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"しらいしななこ  <nanako3@bluebottle.com> writes:\n\n> How about making this behavior configurable?\n\nFirst, as a general principle, I'd like to avoid having commands that\nchanges their behaviour drastically depending on who the user is.  It\nmakes it harder for people experienced a bit more than totally new to\nhelp others.  If they are truly experts and are familiar about the\nconfiguration stash.quick, then they will be fine, but others would say\n\"Well, it works for me -- 'git stash' itself won't stash but list.  Why\nisn't it working for you, I don't know\" and scratch head.\n\nHaving said that, I reserve rights to change my mind later and start\nliking this approach as a compromise.\n\nThere are a few suggestions and comments.\n\n> +allow_quick_stash () {\n> +\t\n> +\tquick=$(git config stash.quick)\n> +\tif test $? != 0\n> +\tthen\n\nI think this is not a per-repository but per-person configuration (I\nalready said I do not want per-person configuration to affect the\nfundamental behaviour of commands, but let's put that objection on hold\nfor now).  \"git config --global\" would be more appropriate.\n\nSo if the user hasn't seen this behaviour before, then...\n\n> +\t\tif ! test -t 0 || ! test -t 1\n> +\t\tthen\n> +\t\t\treturn 0\n> +\t\tfi\n\nIf it is not interactively called, allow \"git stash\" sans parameters as\nbefore.  Nice attention to the details.\n\n> +\t\techo '\n> +*** First time users ***\n> ...\n> +\t\tgit config stash.quick $quick\n> +\t\techo '\n> +You can reconfigure this by editing your $HOME/.gitconfig file'\n> +\n> +\tfi\n\nAgain, you would want --global here.  Also hint about explicit \"save\"\nand \"list\" in addition to \"you can reconfigure\" might be helpful.\n\n> +\tcase \"$quick\" in\n> +\ttrue)\treturn 0 ;;\n> +\tfalse)\treturn 1 ;;\n> +\task)\t: do not return ;;\n> +\tesac\n> +\t\n> +\tif ! test -t 0 || ! test -t 1\n> +\tthen\n> +\t\treturn 0\n> +\tfi\n\nEven if it is configured to 'ask', we allow it for non-interactive\nsession (aka scripts).  Although I would agree with this logic, it could\nbe debatable.\n\n> @@ -226,11 +289,16 @@ create)\n>  \tcreate_stash \"$*\" && echo \"$w_commit\"\n>  \t;;\n>  *)\n> -\tif test $# -eq 0\n> +\tif test $# -ne 0\n> +\tthen\n> +\t\tusage\n> +\tfi\n> +\tif allow_quick_stash\n>  \tthen\n>  \t\tsave_stash && git-reset --hard\n>  \telse\n> -\t\tusage\n> +\t\techo \"*** Stash List ***\"\n> +\t\tlist_stash\n>  \tfi\n\nI was scratching my head about this extra \"echo\" and tried your version\nafter removing it, to realize this is another nice attention to the\ndetails.  Without it, what's output from the command is not very clear\nto people who do not know what \"git stash\" is configured to do for the\nsession.\n"},{"id":"63905","messageId":"56CA16B8-705C-45E5-8BBA-18E7072F2EC6@wincent.com","threadId":"11318","inReplyTo":"7v4pedov6c.fsf@gitster.siamese.dyndns.org","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"Wincent Colaiuta","fromEmail":"win@wincent.com","sentAt":"2007-12-21T07:59:35Z","receivedAt":"2007-12-21T07:59:35Z","isPatch":false,"sender":{"key":"greg@hurrell.net","avatar":"https://avatars.githubusercontent.com/u/7074?v=4"},"body":"El 20/12/2007, a las 23:31, Junio C Hamano escribió:\n\n> しらいしななこ  <nanako3@bluebottle.com> writes:\n>\n>> How about making this behavior configurable?\n>\n> First, as a general principle, I'd like to avoid having commands that\n> changes their behaviour drastically depending on who the user is.  It\n> makes it harder for people experienced a bit more than totally new to\n> help others.  If they are truly experts and are familiar about the\n> configuration stash.quick, then they will be fine, but others would  \n> say\n> \"Well, it works for me -- 'git stash' itself won't stash but list.   \n> Why\n> isn't it working for you, I don't know\" and scratch head.\n\nAlthough the patch is well-intentioned, I totally agree with Junio on  \nthis point.\n\nThe solution here isn't configuration, but education. Some people have  \nalready told how they've been burnt by doing an accidental stash, but  \nhow many times does this have to happen to you before you learn your  \nlesson? Once? Twice if you are very unlucky?\n\nAnd this is not a very painful lesson to learn, seeing as \"git stash\"  \nis not an inherently destructive operation. In 99% of cases there is  \nno risk of hard-to-reverse \"damage\". If you accidentally stash, you  \ncan just unstash with \"git stash apply\". I already posted a two-line  \npatch which tells the user how to do this:\n\nhttp://marc.info/?l=git&m=119799257404542&w=2\n\nThe 1% of cases in which \"git stash apply\" won't work is where the  \nuser has unsaved changes in running editors at the time they do the  \naccidental stash. IMO, this is no justification to change the  \nbehaviour of stash. Exactly the same is true of other commands that  \nalter the working tree; for example, what happens if you use \"git  \ncheckout\" to switch to another branch when you have unsaved changes in  \nrunning editors? Are people suggesting that we should change the  \nbehaviour of \"git checkout\" to warn the user that they should save any  \nunsaved changes before continuing and then hit \"y\"? I think that such  \na thing would be absurd.\n\nCheers,\nWincent\n"},{"id":"63906","messageId":"200712210845.lBL8jjME026405@mi0.bluebottle.com","threadId":"11318","inReplyTo":"7v4pedov6c.fsf@gitster.siamese.dyndns.org","subject":"Re: git-stash: RFC: Adopt the default behavior to other commands","fromName":"しらいしななこ","fromEmail":"nanako3@bluebottle.com","sentAt":"2007-12-21T08:40:48Z","receivedAt":"2007-12-21T08:40:48Z","isPatch":false,"sender":{"key":"nanako3@lavabit.com","avatar":"https://gravatar.com/avatar/3777b9e201c5883a62b1a6fdf7c53f2d712d1d80989146063ea861e33aad72a8?d=mp&s=160"},"body":"Quoting Junio C Hamano <gitster@pobox.com>:\n\n> しらいしななこ  <nanako3@bluebottle.com> writes:\n>\n>> How about making this behavior configurable?\n>\n> First, as a general principle, I'd like to avoid having commands that\n> changes their behaviour drastically depending on who the user is.  It\n> makes it harder for people experienced a bit more than totally new to\n> help others.  If they are truly experts and are familiar about the\n> configuration stash.quick, then they will be fine, but others would say\n> \"Well, it works for me -- 'git stash' itself won't stash but list.  Why\n> isn't it working for you, I don't know\" and scratch head.\n\nI see.  I usually am not the person who helps but am the \nperson who is helped in such a situation, and did not \nconsider this issue.\n\n> Having said that, I reserve rights to change my mind later and start\n> liking this approach as a compromise.\n\nI will change the patch as you suggested and resubmit.  Let's \nsee if I can change your mind (^_^).\n\n-- \nNanako Shiraishi\nhttp://ivory.ap.teacup.com/nanako3/\n\n----------------------------------------------------------------------\nFree pop3 email with a spam filter.\nhttp://www.bluebottle.com/tag/5\n"}]}