On 12/13/12 05:07, Carson Chittom wrote:
> Nolan Darilek <[email protected]> writes:
> 
>> If we're talking about adding "git" to the name because of this whole
>> "rm" thing, we might as well consider "mercurial" as a candidate
>> too. Mercurial behaves sensibly and removes the file automatically on
>> rm. Naysayers aren't trying to make Fossil Git, we're just trying to
>> make it do what most other VCSs do in these areas.
> 
> Speaking as someone who has absolutely no investment--emotional,
> professional, or otherwise--in any VCS other than fossil (and also as a
> non-programmer), is "what most other VCSs do" so important?

   It's not; there's an important level of indirection that you're
overlooking.

   Other VCS's do it automatically because it's the most intuitive way
to do it. I.e. we want to do like other sane VCS's because *they do it
the sane way* (not because they do it in higher numbers). If all other
VCS would require two separate operations, I would still want fossil do
it automatically in one operation.

   I know it's being lazy, but sometimes it's simply easier to make the
argument "everyone else is doing it", and let the readers themselves
think about _why_ others do it that way.

> Seems
> like--while there's certainly potential room for tweaking--there's a
> fundamental disconnect, philosophically, between
> 
>                  1) what is in the filesystem
>                  2) what is kept in version control
> 
> and while the twain shall meet occasionally (to say the least), they are
> not *necessarily* the same.  Fossil, after all, is a version control
> system, not a filesystem management system.  It seems wholly natural to
> me that "fossil rm x" should mean "remove the file x from version
> control," since "version control" is fossil's raison d'etre.  To my way
> of thinking, VCSs which also really delete the file when removing it
> from version control are violating their fundamental paradigm.

   Proper data separation philosophies isn't the reason I use VCS's.
There are aspects of "proper design" which I find to be important, but
in the face of being practical, guaranteeing history integrity, and a
few other properties I could care less about conceptual proper
separation of filesystem/VCS data abstraction layers.

   More importantly: I use a fossil in a filesystem (open, checkout, rm,
mv, update, etc), and hence I expect it to do filesystem operations for
me. Which is does, sans rm and mv. I don't buy the "it's separate
layers" argument; a lot of working directory filesystem operations are
already an integral part of fossil -- why exclude rm and mv?

   But sticking to the practical side of things: If people are anyways
in 99.99% of the cases going to follow a "fossil rm" by an rm, and a
"fossil mv" by an mv, then I think we should start thinking about
whether it's really necessary to require them to do so when we're in the
perfect situation to do it for them.

   Say fossil changes the behavior and performs the requested filesystem
operations immediately, and a few people are really upset about it. I
could write a wrapper script for those uses which does essentially the
following:

   cp $file $file.tmp
   fossil rm $file
   mv $file.tmp $file

   That way, people can still do it in two separate steps if they want to.

   Now, consider how many times this will actually be used versus how
many people who do "fossil rm" followed by "rm" and "fossil mv" followed
by "mv".

   (I tried to make this point in my last mail, but I don't think people
quite get what I'm trying to say).

-- 
Kind regards,
Jan Danielsson

_______________________________________________
fossil-users mailing list
[email protected]
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to