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

Ken Bloom kbloom at
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>:
> > also sprach Manish <mailtomanish.sharma at> [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:

checkout = svn co svn:// bloom
update = /home/bloom/bin/svn-clean-conflicts; svn up "$@"
commit = /home/bloom/bin/svn-clean-conflicts; svn commit "$@"

checkout = svn co svn:// bin

checkout = svn co 'svn://' '586'

checkout = svn co 'svn://' '529'

checkout = svn co svn:// 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

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 (Chanoch) Bloom. PhD candidate. Linguistic Cognition Laboratory.
Department of Computer Science. Illinois Institute of Technology.

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

More information about the vcs-home mailing list