Chris,

Although I'm fluent in SVN, I know nothing about GIT, and it sounds like any real technical debate on the 2 tools won't work unless someone can lay them both out with a glossary.

So it sounds like the intent of SVN externals is to allow binding together pieces that exist in different SVN repositories.

Different projects in the same repository is just as likely. One common use for me is to keep the common toolkit directories in separate projects, and external them in to all the other projects that need them.

You can think of a "superproject" as yet another Git repository that contains other Git repositories


This is exactly what I often do with SVN - I have some projects with nothing in them but a collection of externals definitions.

As for terms ... with git, you mentioned "clone", "wrapper", and "pull".

With SVN, I'd be talking about "external", checkout, commit, status, and update.

That's why I think we have a bit of a language barrier comparing the two. And I KNOW there is a concepts barrier, since GIT is definitely not just the next subversion.

Some groups are bridging the 2 together ... SVN for the master repositories, and GIT for the working ones. Apparently, there are some tools that do local conversions from git to svn and back.

At some point, I'd like to see a case study of someone who switched from SVN to GIT and how it was better ... or worse.

I could have written that case study from CVS to SVN based on personal experience. I'm sure there are some other sites with good writeups of svn-vs-git. Not just features, but actual benefits.

Sp

Sean Phelan http://www.sqcn.com - Web Development & Management by Sequoia Consulting
http://www.VIRTUssist.com - Secretarial And Virtual Assistant Services
(321)698-7987



Chris Knadle wrote:
On Tuesday 12 January 2010, Sean Phelan wrote:
Is this comparable to SVN's externals?

I think they're similar but different, because they're each done for different reasons.

   http://svnbook.red-bean.com/en/1.0/ch07s03.html

   "once one person has made the effort to define those nested working
    copy checkouts, no one else has to bother—Subversion will, upon
    checkout of the original working copy, also checkout the external
    working copies."

So it sounds like the intent of SVN externals is to allow binding together pieces that exist in different SVN repositories.

However the intent of doing a Git "superproject" is to allow you to do a clone of only one (or more) of the submodule repositories, due to a lack of an easy way to check out only part of a tree. You can think of a "superproject" as yet another Git repository that contains other Git repositories -- i.e. another layer of "git wrapper". More importantly, doing a "clone" of the Git superproject does not auotmatically give you a clone of every submodule; that's a separate operation. It likewise changes how a 'git pull' operates -- "you have to run git submodule update after git pull if you want to update submodules, too." (see one line up from the heading at:)

   http://www.kernel.org/pub/software/scm/git/docs/user-
manual.html#_pitfalls_with_submodules

   -- Chris

_______________________________________________
Mid-Hudson Valley Linux Users Group                  http://mhvlug.org
http://mhvlug.org/cgi-bin/mailman/listinfo/mhvlug

Upcoming Meetings (6pm - 8pm)                         MHVLS Auditorium
  Feb 3 - Arduino
  Mar 3 - Sahana and 7 Years of MHVLUG Celebration
  Apr 7 - Nagios

Reply via email to