[LLVMdev] git Status Update?

Mark Lacey 641 at rudkx.com
Sat Sep 3 11:14:59 PDT 2011

> SVN doesn't require you to spend a lot of time learning it and adapting to
> its way of doing things. (The learning curve for SVN was small for me.

Git also doesn't require you to spend a lot of time learning it and adapting
to its way of doing things, if all you want to do is use the subset set of
functionality that SVN provides. If you're using Git to talk to a central
repository and simply force all your pulls from that central repository to
'rebase' your changes so that they appear after what you pull down (this can
be done by setting branch.autosetuprebase or branch.<name>,rebase), your
daily workflow is almost identical to SVN (checkin is split into two steps
1. commit locally, and 2. push to the central repo).

My initial (and subsequent) experiences with git are that it's very, very
> complex. And it gets in the way of most things I want to do. I still don't
> know what a "ref" or "object" is.)

This very short page explains these things relatively well.

The reality is that Git isn't complex at all, although the man pages might
make it look that way because most commands have many sub-options that can
be used to achieve very specific behavior. The reality is that you can
ignore 90% of most man pages, especially if you all you want to is have an
SVN-like workflow.

I've heard this "SVN works great for my workflow" argument before (in fact
recently), and if I go back 15 years I heard the "I don't need SCM/VCS - my
workflow of manually copying around back-ups works just fine." from people
working on small projects on their own. The reality is that I am skeptical
that there is any good way to explain how much of a benefit you can get from
Git or other DSCMs - it's one of those things you have to experience for
yourself to understand. I know that as I use Git more and more, I appreciate
it more and more. I invested a little time up front and it has paid off many
times over. I have found that my workflow has evolved with that
appreciation. One of the key benefits of Git is that it allows you to
separate check-pointing your work from publishing it, making it easy to make
many small changes and back out of some/all of them trivially. It makes it
trivial to separate out changes into different lines of development as well
(bug fixes vs. feature A vs. feature B) without having to pull up an editor
and copy changes across separate checkouts of a repository - it actually
makes supporting the small-patches philosophy of LLVM reviews much simpler
than with SVN, which turns doing these things into manual and error prone

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110903/8215861e/attachment.html>

More information about the llvm-dev mailing list