Re: Call Me Gitless

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 21 Aug 2008, Junio C Hamano wrote:

> Daniel Barkalow <barkalow@xxxxxxxxxxxx> writes:
> 
> > On Mon, 18 Aug 2008, Junio C Hamano wrote:
> > ...
> >>     If we had a configuration for "index-free" people, that changes the
> >>     semantics of "git add" to register object name of an empty blob when a
> >>     new path is added, makes "git add" for existing blobs a no-op, but
> >>     keeps "git commit -a" and "git commit <paths>" to operate as they
> >>     currently do, then people with such configuration could:
> >> 
> >> 	$ >new-file
> >>         $ git add new-file
> >>         $ edit old-file
> >>         $ edit new-file
> >>         $ git diff
> >> 
> >>     to always see what's the difference from the HEAD is with "git diff",
> >>     and any of these three:
> >> 
> >> 	$ git commit -a
> >>         $ git commit old-file
> >>         $ git commit old-file new-file
> >> 
> >>     would work as expected by them.  We still need to support the three
> >>     diff variants for normal git people, but people who do not use index
> >>     do not have to know the two variants ("git diff" vs "git diff HEAD");
> >>     such a change could be argued as a "UI improvement" [*1*].
> >
> > I think that having the possibility of adding an empty blob (or maybe a 
> > magical "nothing currently here but git-ls-files includes it") would be 
> > preferrable to a no-index mode.
> 
> I am not sure if you are really saying something different from what I am
> saying.  We'll see after this three patch series.  The first one is an
> unrelated bugfix (but the bug won't trigger with existing callers -- only
> triggered with the added codepath).

I see this primarily as something you can use if you're worried about 
leaving files out of commits. When you create the file, you can use "git 
add -N" to make sure that it won't get overlooked when you're adding 
things. If you weren't using the index for anything important, you could 
just use a normal add, but that would get confusing if you're adding 
completed changes as well as some half-written version of any file that 
happens to be new. That is, it'll let you cause "git diff" to report the 
contents as unstaged changes in your working tree, rather than not 
reporting it (either because it's not tracked at all, or because the 
changes are now staged). Then you can decide to stage them.

(The thing that I'd ideally like to have different is for:

$ echo "content" > new-name
$ git add -N new-name
$ git commit

Say:

# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#
#          added:   new-name
#
no changes added to commit (use "git add" and/or "git commit -a")

rather than committing the empty blob. But that's tricky to implement 
and keep from breaking other stuff and really minor; and the 
documentation doesn't exclude that being what happens with -N)

	-Daniel
*This .sig left intentionally blank*
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux