git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Daniel Barkalow <barkalow@iabervon.org>
To: Nicolas Pitre <nico@cam.org>
Cc: Carl Worth <cworth@cworth.org>, Junio C Hamano <junkio@cox.net>,
	Peter Baumann <Peter.B.Baumann@stud.informatik.uni-erlangen.de>,
	git@vger.kernel.org
Subject: Re: Separating "add path to index" from "update content in index"
Date: Sun, 24 Dec 2006 16:38:17 -0500 (EST)	[thread overview]
Message-ID: <Pine.LNX.4.64.0612241602060.20138@iabervon.org> (raw)
In-Reply-To: <Pine.LNX.4.64.0612221709380.18171@xanadu.home>

On Sat, 23 Dec 2006, Nicolas Pitre wrote:

> On Fri, 22 Dec 2006, Carl Worth wrote:
> 
> > On Fri, 22 Dec 2006 00:06:32 -0500 (EST), Nicolas Pitre wrote:
> > > On Thu, 21 Dec 2006, Carl Worth wrote:
> > >
> > > > So, I think what I really want here is a complete separation in the
> > > > interface between adding a path to the index and updating content into
> > > > the index.
> > >
> > > Strangely enough I think this separation is unnecessary and redundent.
> > 
> > One argument I would make in favor of the separation is that the two
> > operations are conceptually distinct from the user point-of-view. But
> > that's really hard to nail down since all users have different points
> > of view and different conceptual models,
> 
> ... and if we want to break the CVS model and give people a better 
> chance of ever grasping the git index concept I think they should not be 
> different.

I don't think the misunderstanding (if there is one) of the git index 
model is due to CVS. If I'm using a staging area for wrapping Christmas 
presents, I may assign space to items I haven't got yet: this is where I 
put the tape so I can reach it, this is where the roll of wrapping paper 
goes, here is where the wrapping paper will be spread out, but I can't 
spread out the wrapping paper until I have the present (it just rolls back 
up), so there's nothing in the spot allocated to actual wrapping. Git 
reminds me of people who have to put a trash can in their parking spaces 
when their cars aren't there to keep them from being deallocated simply 
because they're empty.

The allocation of empty space before anything is put in it is a 
fundamental operation available in the general concept of a staging 
area. Someone coming from an index-based version-control system that 
doesn't lack this feature would expect to have a possible status:

# Changed but not updated:
#   (use git-update-index to mark for commit)
#
#       new file: new-test-file
#

(And note that it can't be CVS-damage, because "Changed but not updated" 
isn't supported by CVS. This is a way in which git sort of has CVS-damage, 
because the "new file" operation goes straight to "Updated but not checked 
in", unlike everything else.)

	-Daniel
*This .sig left intentionally blank*

  reply	other threads:[~2006-12-24 21:38 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-19 20:33 GIT - error: no such remote ref refs/heads/TestBranch Sean Kelley
2006-12-19 22:06 ` Junio C Hamano
2006-12-20 22:31   ` Carl Worth
2006-12-20 22:36     ` Junio C Hamano
2006-12-20 22:57       ` Carl Worth
2006-12-20 23:36         ` Junio C Hamano
2006-12-21  6:55           ` Carl Worth
2006-12-21 10:49             ` Peter Baumann
2006-12-22  0:52               ` Junio C Hamano
2006-12-22  2:32                 ` Separating "add path to index" from "update content in index" Carl Worth
2006-12-22  3:06                   ` Sean
2006-12-22  5:06                   ` Nicolas Pitre
2006-12-22 21:57                     ` Carl Worth
2006-12-23  5:27                       ` Nicolas Pitre
2006-12-24 21:38                         ` Daniel Barkalow [this message]
2006-12-22  5:10                   ` Junio C Hamano
2006-12-22  5:21                     ` Shawn Pearce
2006-12-22  8:24                     ` Jakub Narebski
2006-12-22 16:18                     ` Carl Worth
2006-12-22 17:28                       ` Nicolas Pitre
2006-12-22 16:55                     ` Carl Worth
2006-12-23  2:56                     ` Daniel Barkalow

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=Pine.LNX.4.64.0612241602060.20138@iabervon.org \
    --to=barkalow@iabervon.org \
    --cc=Peter.B.Baumann@stud.informatik.uni-erlangen.de \
    --cc=cworth@cworth.org \
    --cc=git@vger.kernel.org \
    --cc=junkio@cox.net \
    --cc=nico@cam.org \
    /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).