git submodules in ~ (was: Introductory git article?)

Ken Bloom kbloom at gmail.com
Thu Feb 21 16:09:03 CET 2008


On Thu, 2008-02-21 at 15:52 +0530, Manish wrote:
> 2008/2/21 martin f krafft <madduck at madduck.net>:
> > also sprach Manish <mailtomanish.sharma at gmail.com> [2008.02.21.0811 +0100]:
> >
> > > >  I personally prefer the mr tool to submodules for this task.
> >  >
> >  > Can you please share your .mrconfig?
> >
> >  No, it contains sensitive information, like client names and the
> >  like. What are you looking for anyway?
>
> I wanted to know how you were using mr to manage submodules but like
> you said you are not.  Guess I just need a clean layout.

I use mr to manage a bunch of subversion repositories. Basically, you
segment your concerns into a bunch of projects. I have one for my thesis
research, one for each of my classes, and one for ~/bin.

My mrconfig looks something like this:

[/home/bloom]
checkout = svn co svn://x.x.com/home-base bloom
update = /home/bloom/bin/svn-clean-conflicts; svn up "$@"
commit = /home/bloom/bin/svn-clean-conflicts; svn commit "$@"

[bin]
checkout = svn co svn://x.x.com/bin bin

[586]
checkout = svn co 'svn://x.x.com/parts/school/cs586' '586'

[529]
checkout = svn co 'svn://x.x.com/parts/school/cs529' '529'

[research]
checkout = svn co svn://x.x.com/parts/research research

Then I use subcommands of mr to do all of my commits, updates, and
svn subcommands for things like add, revert, etc...
(mr has nice rules for autodetecting the repository type, so I don't
need to specify update and commit commands for most of my repositories.
For /home/bloom, I have a special hook to clean up certain files with
bothsersome metadata before committing them, so as to avoid dealing with
conflicts.)

There are no svn:externals anywhere in my repository structure, which is
nice because, in general I check out different subsets of my home
directory on to different machines, so I just add them ad-hoc when I
need them on each machine. Also, AIUI, svn:externals doesn't buy
anything because svn commit doesn't recurse into svn:externals anyway.
If you have a static repository layout you like to keep around, you can
commit your .mrconfig into the repository. You can also have .mrconfig
files in directories, and configure your main .mrconfig to chain to the
subdirectory .mrconfigs.

The idea of having submodules that are recognized by your vcs only
really makes sense if you're using CVS (which recurses into whatever
directories it sees when commiting and updating), but using CVS doesn't
make sense in a whole lot of other ways.

--Ken

-- 
Ken (Chanoch) Bloom. PhD candidate. Linguistic Cognition Laboratory.
Department of Computer Science. Illinois Institute of Technology.
http://www.iit.edu/~kbloom1/

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://lists.madduck.net/pipermail/vcs-home/attachments/20080221/01b4509d/attachment.pgp>


More information about the vcs-home mailing list