[OT] DVCS

Bruno Medeiros brunodomedeiros+spam at com.gmail
Thu Nov 11 02:44:50 PST 2010


On 10/11/2010 10:20, "Jérôme M. Berger" wrote:
> Bruno Medeiros wrote:
>> On 28/10/2010 18:51, "Jérôme M. Berger" wrote:
>>> Bruno Medeiros wrote:
>>>> But isn't the staging area similar, if not identical to SVN? I mean, in
>>>> svn you also have to do a command "svn add" to add new files to the
>>>> "sandbox". They won't get commit otherwise, right?
>>>>
>>>> (note: im somewhat familiar with SVN and Git, but not with Mercurial)
>>>>
>>>      No, because in Git if you make changes to an existing file, you
>>> need to "add" that file again. In both SVN or Mercurial, you need to
>>> "add" new files, but once a file is in the repository, any changes
>>> to the file get committed by default (although there are ways to
>>> commit only some files in both Mercurial and SVN and ways to commit
>>> only some changes in Mercurial).
>>>
>>>          Jerome
>>
>> I see. Well, it's not identical then, but still, it seems very similar,
>> since one can use "git commit -a" to do the same as "svn commit", isn't
>> that so? I mean, is there any aspect to Git's staging area that makes
>> "git commit -a" not be equivalent to "svn commit" ? (obviously for this
>> question interactions with Git-only features should not be considered)
>>
>>
>> My confusion here stems not so much from the discussion in this thread,
>> but from another discussion elsewhere on the web (not D related) where I
>> also saw a developer comment that Git's staging index default behavior
>> was more complex that necessary, and that it should be the simple thing
>> by default. There was an implication, from the way he said it, that this
>> was an issue of at least medium importance.
>> However, from my understanding, in the whole landscape of version
>> control issues and comparisons, this one seems of very low importance,
>> if not borderline irrelevance. Because even if a developer using Git
>> shoots himself in the foot with this... it will be only *once*, on the
>> learning phase. After that you'd know and remember to use "git commit
>> -a" so the mistake would not be repeated. A /one-time issue/ cannot
>> possibly be anywhere near in importance than a /many-times issue/.
>>
>>
> 	Ah, but it is a many-times issue. It is even an every-times issue.
> The problem here is that you need to remember to add the appropriate
> option each and every time you want to commit. Proper interface
> design would be to have the common usage be the default and have an
> option to enable the complex usage (especially for the most common
> command).
>
> 	Additionally this makes it a lot more difficult to move back and
> forth between several systems: imagine if all VCSes required special
> options to do a simple commit, now each time you want to commit, you
> need to remember whether this particular VCS requires an option and
> which option you need to add to get the simple behaviour.
>
> 	Moreover, this is just the tip of the iceberg. The whole git UI is
> "designed" like that and full of small irritations and inconsistencies.
>
> 		Jerome


Well, yes, it is every-times with regards to having to add the extra 
commit option. But it is just 3 extra characters, and I'm guessing it is 
quite easy to remember every time (maybe a little bit less if you use 
different VCS often, yeah).
I'm not saying git would not be better designed if " -a" was the 
default, just that it's a very unimportant in terms of comparing VCS's. 
(It matters even less to my usage of VCS, since almost always I use 
Eclipse's graphical interface, which has a common behavior for the basic 
operations in all popular VCS. :) )

-- 
Bruno Medeiros - Software Engineer


More information about the Digitalmars-d-announce mailing list