From mboxrd@z Thu Jan 1 00:00:00 1970 From: Junio C Hamano Subject: Re: Two crazy proposals for changing git's diff commands Date: Sat, 11 Feb 2006 19:48:54 -0800 Message-ID: <7vr769fd95.fsf@assigned-by-dhcp.cox.net> References: <87slqtcr2f.wl%cworth@cworth.org> <7vfymtl43b.fsf@assigned-by-dhcp.cox.net> <20060212031527.GA31228@fieldses.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: git@vger.kernel.org X-From: git-owner@vger.kernel.org Sun Feb 12 04:48:59 2006 Return-path: Envelope-to: gcvg-git@gmane.org Received: from vger.kernel.org ([209.132.176.167]) by ciao.gmane.org with esmtp (Exim 4.43) id 1F88EM-0003Rr-Pm for gcvg-git@gmane.org; Sun, 12 Feb 2006 04:48:59 +0100 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750952AbWBLDs4 (ORCPT ); Sat, 11 Feb 2006 22:48:56 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1750968AbWBLDs4 (ORCPT ); Sat, 11 Feb 2006 22:48:56 -0500 Received: from fed1rmmtao05.cox.net ([68.230.241.34]:26326 "EHLO fed1rmmtao05.cox.net") by vger.kernel.org with ESMTP id S1750952AbWBLDsz (ORCPT ); Sat, 11 Feb 2006 22:48:55 -0500 Received: from assigned-by-dhcp.cox.net ([68.4.9.127]) by fed1rmmtao05.cox.net (InterMail vM.6.01.05.02 201-2131-123-102-20050715) with ESMTP id <20060212034628.SXQV17838.fed1rmmtao05.cox.net@assigned-by-dhcp.cox.net>; Sat, 11 Feb 2006 22:46:28 -0500 To: "J. Bruce Fields" In-Reply-To: <20060212031527.GA31228@fieldses.org> (J. Bruce Fields's message of "Sat, 11 Feb 2006 22:15:27 -0500") User-Agent: Gnus/5.110004 (No Gnus v0.4) Emacs/21.4 (gnu/linux) Sender: git-owner@vger.kernel.org Precedence: bulk X-Mailing-List: git@vger.kernel.org Archived-At: "J. Bruce Fields" writes: > On Wed, Feb 08, 2006 at 05:21:12PM -0800, Junio C Hamano wrote: >> Of course, learning various flags to give "git diff" is part of >> understanding the index > > Well, there's understanding the index, and then there's memorizing the > flags... > ... > But maybe that's just me. (And maybe the namespace in question is > already to crowded to allow for INDEX and WORK.) I do not think it is just you. The real problem, honestly speaking, is that "git diff" wrapper cheats and avoids doing its own set of flags. The low-level is just a mechanism UI is built upon, and as a mechanism, except perhaps maybe --cached might be now better spelled as --index, has set of options and semantics that are consistent with its world model (index centric way of thinking). Because "git diff" wrapper cheats, it ends up exposing the low-level flags and arguments to the end user, and to use that effectively, obviously you need to understand the world model the low-level is built upon. It was OK (it could be argued that it was even better than sugar coating to make it *inconsistent* with the underlying world model) so far, as long as people who use it are aware of the index centric world model, but that "consistency with the underlying world model" makes it harder to approach and causes confusion. That is why I these days often mention "welding training wheels". Doing half-baked sugarcoating of the UI layer would break mental model of people who understand the world model low-level builds and tries to make effective use of low-level through the UI.