git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: How to migrate folders using svn:externals exclusively (no actual data inside folder) to git submodules?

From
Michael J Gruber <git@drmicha.warpmail.net>
Date
May 14, 2010, 19:17 UTC
Message-ID
<4BEDA1D3.3050203@drmicha.warpmail.net>
In-Reply-To
<AANLkTikJNSPKPDdpYEYVJogPq22LyOr0s3QxEF7wZO1Z@mail.gmail.com>
Jensen Somers venit, vidit, dixit 14.05.2010 20:53:
Show 26 quoted lines
> Hello,
> 
> Having used Git a couple of times on some open source projects I am
> beginning to be more and more convinced of the power and benefit it
> has over subversion. One of the major benefits for me is the
> possibility to create local branches - and thus work on several things
> at the same time - without interfering with the actual master
> repository or to have 10 different /trunk folders on my hard drive.
> 
> Where I work we currently use subversion but I am looking into
> migrating everything to Git. There is one thing that is not very clear
> to me though and I hope somebody could shine some light on the matter.
> 
> Our current repository is set up as follows:
> /
> + /Modules
> + + /ModuleA
> + + /ModuleB
> + + /ModuleC
> + /Applications
> + + /ApplicationA
> + + /ApplicationB
> + /Views
> + + /ViewApplicationA
> + + /ViewApplicationB
> 

When I switched from svn to git, the first thing I needed to do was to "think small": Don't use one big repo for vaguely related things - use many small ones. You see, in git it's so simple to create one, it doesn't even hurt!

I don't think Views, Applications and Modules belong in the same repo here.
Show 16 quoted lines
> ViewApplicationA and ViewApplicationB are empty folders which use the
> svn:externals property to include all required folders. For
> ViewApplicationA this would for example be ApplicationA, ModuleA and
> ModuleC, for ViewApplicationB this would be ApplicationB, ModuleB and
> ModuleC. Using the views the developers are able to checkout only
> what's needed for the given project they work on.
> And this is where Git confuses me. As an alternative for svn:externals
> I stumbled upon Git submodules but I am not entirely sure they allow
> me to do the same thing. Can I create a sub folder on my root Git
> repository and let developers check out only that folder or do I need
> to create a separate repository per view and reference another
> repository (holding all actual data) as a submodule? And can I
> actually do that on the server? Most examples I found talk about
> cloning another repository as a submodule, but all of them seem to do
> it locally, and not on the server and I don't want to bother every
> developer doing all that every time he decides to start fresh.

Are your Modules interrelated, are your Applications interrelated enough so that it makes sense you have branches ModuleX in a repo Modules etc.? If not you may just have one repo per Module and per Application.

Views are a candidate for submodules referencing the Application and Module repos they need.

Michael
Previous: Jensen Somers
Message 2 of 2 in “How to migrate folders using svn:externals exclusively (no actual data inside folder) to git submodules?”
  1. Jensen SomersMay 14, 2010
  2. Michael J GruberMay 14, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.