On Wed, Jun 4, 2014 at 11:58 AM, Nico Williams <n...@cryptonector.com>
wrote:

>
> Right, the index is a very light-weight mechanism for giving the user
> power in deciding what to commit.  I.e., more fine-grained control
> than "choose what files to commit".
>

My view is that the Git staging area (I really dislike the use of the word
"index" in that context) merely makes Git more difficult for people to
understand and complicates the interface without adding any new capability.

The staging area is another element of state on a check-out.  It is one
more thing that the developer must keep in mind.  Better to minimize the
amount of "mind-space" required for the VCS in order to leave as much
mind-space available to the application as possible.  Mind-space is a
finite resource.  Use it wisely.

The staging area complicates the interface.  Instead of just a diff between
the current check-out and the most recent check-in, now you have to add
syntax for a diff between the checkout and the staging area and a diff
between the staging area and the most recent check-in.  Multiply that by as
many commands as you have that involve both the repository and the current
check-out.

Does undo/redo effect the staging area?  What if you "update" in order to
pull in changes made by a collaborator before you commit - how does that
effect the staging area?  How does the staging area interact with the
stash?  If you are making a change in one branch and decide you'd really
rather have that change in a different branch (or you just happen to
discover that you were mistakenly on the wrong branch  - which is the usual
reason this comes up for me) and you move all your changes to a different
branch prior to check-in, does your staging area move with you or not?
Thousands of details like this need to be considered.  And all of these
details and complications and the associated mental clutter can be quickly
and easily eliminated simply by omitting the staging area.

My understanding is that the Git staging area arose as part of the
implementation showing through into the interface.  In Git-speak, it is
plumbing that is visible from the porcelain.  It is a misfeature.  My
readings on the matter suggest that most people agree with me on that point.

Please keep all thoughts of a staging area far, far away from Fossil.

-- 
D. Richard Hipp
d...@sqlite.org
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to