Why I love GIT but use Subversion (was: GIT user survey)

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

 



Paolo Ciarrocchi wrote:
> On 7/23/06, Paolo Ciarrocchi <paolo.ciarrocchi@xxxxxxxxx> wrote:
>> We would like to ask you a few questions about your use of the GIT
>> version control system. This survey is mainly to understand who is
>> using GIT, how and why.
> Thanks a lot to all the people that already filled the questionnaire.
> We received 89 full filled questionnaires but we can do better, if you
> didn't fill it please do it before the 6th of August.

Okay, I thought a bit about filling out that survey, but I couldn't
because it didn't really fit my needs.  After all, it's a Git *user*
survey and I'm only a *wannabe* user.

So, why am I only a wannabe Git user (and a frustrated Subversion
user) even though I like Git very much?  Well, there's a couple of
reasons (beware: this rant should have really been a blog post, but I
don't have a blog ...; also, being a rant, this post may contain
oversimplification, overgeneralization and overexaggeration.  Please,
don't feel offended and also keep in mind that I'm not a native
speaker.).

The most important reason why I'm not using Git is probably that I'm
the wrong kind of user: Git is a source code(1) management system for
Linux(2) developers(3) and I am

  (1) not managing source code, 
  (2) not using Linux and 
  (3) not a developer.
  
Please note that there's nothing actually wrong with that---you can't
drive screws with a hammer and you can't make coffee with a
screwdriver but that doesn't mean that the hammer or the screwdriver
are buggy, it just means you have either the wrong problem or the
wrong tool.

So, I don't really know whether the fact that Git doesn't support my
operating environment and my workflow is (a) a problem with Git being
too specialized or (b) a problem with me choosing the wrong tool.
This is probably actually the most important question I have, because
if the answer is (a) I just need to wait some more until Git matures,
but if the answer is (b) I need to forget about Git and start looking
for another tool.

In my opinion, version control needs to integrate and really blend
into the operating environment and the workflow people use, because
otherwise, if it *doesn't* integrate but forces them to change their
operating environment, their workflow or their habits, people will get
lazy.  I know I would.  And being lazy about version control is even
worse than not having any version control at all, just as with backups
it gives you a false sense of security.

In my case the operating environment is the Windows Explorer or
Eclipse and my workflow is basically dragging and dropping files with
the mouse.  I can do just that with TortoiseSVN and Subclipse without
having to change the way I normally work.  With Git I would constantly
need to switch back and forth between Explorer or Eclipse and Cygwin.
That is, if I actually get Git compiled and up and running *at all*.
(Is there any unwritten rule in Git development that says that new
features are only accepted if they add a new dependency on a new
programming language?  Currently Git is implemented in C, POSIX sh,
Perl, Python, Tcl/Tk and C++ (if you include QGit) and I've already
seen some Ruby code posted to the mailing list.)

Don't get me wrong: Git is very nice.  Its similarity to a Unix
filesystem and the similarity of its UI to popular Unix command line
utilities means that it actually integrates perfectly with the Unix
shell, which also means that it integrates perfectly with the workflow
of people who mainly work in a Unix shell.  I'm sometimes using Git in
Linux where I mainly work from the command line and it's absolutely
amazing!  You have everything you would expect from your regular
environment: cat, diff, ls, tar, grep, mv, rm and even fsck!

But that's not the only operating environment, and it's certainly not
the one most widely used.  In order to be universally usable, Git
needs to also integrate with the Windows Explorer, MacOS Finder,
Konqueror, Nautilus, Eclipse and Visual Studio (among others).  It
needs to integrate with project management tools like Trac or Collaboa
and in order to do that it probably needs complete high-quality native
language bindings for Java, Perl, Python, Ruby, PHP, ...

Okay, let's answer two questions from the survey:

| Q20. What would you most like to see improved about GIT? (features,
|        bugs, plugins, documentation, ...)

The most pressing need for me would be a native Windows port.  Where
"native" means:

 - an installer package, 
 - integration with the Windows Explorer, 
 - handling of different line-ending encodings and 
 - addressing the fact that things like SSH clients, diff, patch, 
     merge, Perl, Python, Tcl/Tk, Bash and so on are usually not part 
     of a standard Windows installation and are also notoriously 
     difficult to install.

Number 2 would probably be providing the same level of integration for
Eclipse.

| Q21. If you want to see GIT more widely used, what do you think we
|        could do to make this happen?

What I think is most lacking is the ecosystem *around* Git, which is
actually not very surprising, considering that Git is still fairly
young compared to e.g. CVS and Subversion.  With "ecosystem" I mean
things like public repository hosting (currently it's mostly CVS
and/or Subversion and some Arch), integration in IDEs (e.g. Eclipse,
Visual Studio), project management software (e.g. Trac, Collaboa) and
so on.

The general theme is probably: make Git more seamless for more types
of users on more operating systems.

I currently use Subversion.  I hate Subversion.  I constanly hit the
limitations of the centralized model, and I hit them *very hard* and
*very often*.  I would *love* to migrate away as soon as possible.
There's only two reasons why I use Subversion: because I can install
it with three mouse clicks and because I can use it with three mouse
clicks.

Please, make those reasons go away.

Thank you for bearing with me through this long rant.

jwm

PS: I am well aware of the fact that Git is free software and that I
could fix all those issues myself.  However, the truth is, I can't.
I'm stupid.  I'm not a programmer.  So, please don't take this as a
demand or a request, merely a humble suggestion by a humble wannabe
user, whom you are free to ignore.

-
: 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]