git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Lars Schneider <larsxschneider@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Stefan Beller <sbeller@google.com>,
	Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>,
	Thomas Gummerer <t.gummerer@gmail.com>, git <git@vger.kernel.org>,
	Jeff King <peff@peff.net>,
	Christian Couder <christian.couder@gmail.com>,
	Johannes Schindelin <Johannes.Schindelin@gmx.de>
Subject: Re: GSoC 2016: applications open, deadline = Fri, 19/2
Date: Fri, 19 Feb 2016 10:23:56 +0100	[thread overview]
Message-ID: <0E364888-DD95-4B47-9679-3CB586FC7E8C@gmail.com> (raw)
In-Reply-To: <xmqq7fi1hlw6.fsf@gitster.mtv.corp.google.com>


On 18 Feb 2016, at 20:13, Junio C Hamano <gitster@pobox.com> wrote:

> Stefan Beller <sbeller@google.com> writes:
> 
>> On Thu, Feb 18, 2016 at 12:41 AM, Lars Schneider
>> <larsxschneider@gmail.com> wrote:
>>>> Feel free to start writting an idea for
>>>> http://git.github.io/SoC-2016-Ideas/. It'd be nice to have a few more
>>>> ideas before Friday. We can polish them later if needed.
>>> 
>>> I published my ideas here:
>>> https://github.com/git/git.github.io/pull/125/files
>> 
>> I like the idea of a beginner mode, but on the other hand that looks
>> inflexible to me ;)
>> (What if I want to use rebase, but not reset --hard?)
> 
> That's simple.  You say "cd .. && rm -fr repo && git clone" and
> start from scratch ;-).
> 
> This whole "beginner should be limited to a 'safe' subset" is an
> unhealthy attitude.
> 
> Deciding what the 'safe' subset is must be done with a lot of
> thinking by people who intimately know what implications it has to
> ban each feature.  I do not think it would be a good fit for a
> project to give to a relatively new participant to the Git project.
> 
> For example, I think banning "worktree" feature from newbies may not
> be a bad idea, as you can work on a project without using "worktree"
> at all, and use of "worktree" would only subject you to bugs that do
> not exist when you do not use that feature.  The "shallow clone",
> "sparse checkout", and "untracked cache" fall into the same category
> for exactly the same reason.  The "submodule" feature might fall
> into the same category for the same reason, but that is not
> something you as a project participant can unilaterally decide, as
> the project you are working on may have already decided to use the
> feature, so it is harder to ban from the beginners.
> 
> But for the rest of really "core" part of Git, I do not think there
> is any such command that can be totally banned.
> 
> We have these "powerful" tools for a reason.  After making a mess
> experimenting with your working tree files, "reset --hard" is the
> best tool to go back to the known-good state, and robbing it from
> the users is not a sound approach to help them.  When "powerful"
> becomes "too powerful" is when a "powerful" tool is misused.  It is
> perhaps done by mistake or perhaps done by copying and pasting a
> solution from Interweb for a problem that does not match your
> situation without understanding what you are doing.
> 
> What is needed to help beginners is to make the powerful tool harder
> to misuse.  Of course, that would be a harder task, because you have
> to do a real thinking.
> 
> You do not have to do any thinking to say that "a blanket ban that
> hides these powerful tools behind the beginner mode" helps
> beginners, but I do not think it is solving what really matters.  At
> the same time, it just adds to the FUD, i.e. some commands are too
> powerful for their own good.

Thanks for your elaborate response. I think I got your point and I
tried to adjust my "beginner mode" proposal accordingly [1]. Here
is the relevant change:

If this mode is enabled then Git shall print a warning message before 
running a potentially destructive command. In addition to the warning 
Git shall print a command that would reverse the operation if possible. 
Most of the information to reverse an operation is already available 
via git reflog. However, the task here is to make this information more 
easily accessible to Git beginners.

--

Does this go into the direction of "making the powerful tool harder to
misuse"?

Thanks,
Lars

  parent reply	other threads:[~2016-02-19  9:25 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-10  9:31 GSoC 2016: applications open, deadline = Fri, 19/2 Matthieu Moy
2016-02-10 11:09 ` Johannes Schindelin
2016-02-10 17:44   ` Stefan Beller
2016-02-11  8:36 ` Christian Couder
2016-02-12  7:10   ` Matthieu Moy
2016-02-12  8:29     ` Lars Schneider
2016-02-12  9:11       ` Matthieu Moy
2016-02-12 13:04     ` Jeff King
2016-02-12 13:11       ` Jeff King
2016-02-13 11:21       ` Matthieu Moy
2016-02-16 18:10         ` Stefan Beller
2016-02-17 10:34           ` Matthieu Moy
2016-02-17 10:45             ` Duy Nguyen
2016-02-17 13:36             ` [PATCH 0/3] Turn git-rebase--*.sh to external helpers Nguyễn Thái Ngọc Duy
2016-02-17 13:36               ` [PATCH 1/3] rebase: move common functions to rebase--lib.sh Nguyễn Thái Ngọc Duy
2016-02-17 13:36               ` [PATCH 2/3] rebase: move cleanup code to exit_rebase() Nguyễn Thái Ngọc Duy
2016-02-17 14:03                 ` Matthieu Moy
2016-02-17 13:36               ` [PATCH 3/3] rebase: turn git-rebase--*.sh into separate programs Nguyễn Thái Ngọc Duy
2016-02-17 14:05                 ` Matthieu Moy
2016-02-17 14:22               ` [PATCH 0/3] Turn git-rebase--*.sh to external helpers Johannes Schindelin
2016-02-17 14:40                 ` Duy Nguyen
2016-02-17 13:09           ` GSoC 2016: applications open, deadline = Fri, 19/2 Johannes Schindelin
2016-02-17 16:04             ` Christian Couder
2016-02-22  9:28         ` Duy Nguyen
2016-02-22 10:22           ` Matthieu Moy
2016-02-22 21:42             ` Jeff King
2016-02-22 21:56               ` Junio C Hamano
2016-02-22 22:02                 ` Jeff King
2016-02-23 13:13                   ` Matthieu Moy
2016-02-24 10:52                     ` Jeff King
2016-02-17 17:24 ` Thomas Gummerer
2016-02-17 18:32   ` Lars Schneider
2016-02-17 18:58     ` Matthieu Moy
2016-02-17 19:03       ` Junio C Hamano
2016-02-17 20:21         ` Matthieu Moy
2016-02-17 20:45           ` Jeff King
2016-02-17 21:33             ` Junio C Hamano
2016-02-18  9:38               ` Carlos Martín Nieto
2016-02-19  8:06                 ` GSoC 2016: applications open, libgit2 and git.git Matthieu Moy
2016-02-19  9:46                   ` Carlos Martín Nieto
2016-02-29 21:01                     ` Git has been accepted as a GSoC 2016 mentor organization! Matthieu Moy
2016-03-08 22:46                       ` Jeff King
2016-03-08 23:01                         ` Junio C Hamano
2016-03-08 23:03                           ` Jeff King
2016-03-09  9:55                         ` Matthieu Moy
2016-03-09 14:08                           ` Jeff King
2016-03-09 13:50                         ` Johannes Schindelin
2016-03-09 19:34                         ` Jeff King
2016-02-19  8:09                 ` GSoC 2016: applications open, deadline = now => submission Matthieu Moy
2016-02-19  8:18                   ` Jeff King
2016-02-19  9:10                     ` GSoC 2016: applications open, deadline = now => submitted Matthieu Moy
2016-02-19 11:37                       ` Jeff King
2016-02-18  8:41       ` GSoC 2016: applications open, deadline = Fri, 19/2 Lars Schneider
2016-02-18 18:38         ` Stefan Beller
2016-02-18 19:13           ` Junio C Hamano
2016-02-19  7:34             ` Matthieu Moy
2016-02-19 20:35               ` Junio C Hamano
2016-02-20  9:28                 ` Johannes Schindelin
2016-02-19  9:23             ` Lars Schneider [this message]
2016-02-19 12:49               ` Matthieu Moy
2016-02-19 20:37               ` Junio C Hamano
2016-02-19 11:46         ` Thomas Gummerer
2016-02-19  3:09       ` Duy Nguyen
2016-02-19  3:20         ` Junio C Hamano
2016-02-19  3:29           ` Duy Nguyen
2016-02-19  7:17         ` Matthieu Moy
2016-02-19  9:41           ` Duy Nguyen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0E364888-DD95-4B47-9679-3CB586FC7E8C@gmail.com \
    --to=larsxschneider@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=Matthieu.Moy@grenoble-inp.fr \
    --cc=christian.couder@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=peff@peff.net \
    --cc=sbeller@google.com \
    --cc=t.gummerer@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).