On Thu, Sep 21, 2017 at 12:16 PM, Paul Hammant <p...@hammant.org> wrote: >> >> >> 2. Previously I forked a medium-sized Monorepo on Github, and did the the >> complete expand/contract work for it - >> https://github.com/paul-hammant-fork/jooby-monorepo-experiment - in Python. >> > > LOGIBALL's Tim Krüger has just written about a deployment of an > expanding/contracting monorepo for Git and Maven based on the above proof of > concept: https://timkrueger.me/a-maven-git-monorepo/ (I'd helped him with > the article).
FWIW, at my company we're actually working on something similar for SVN + Ivy (we have a monorepo too, in svn, with all of our projects together under /trunk, and sparse working copies for developers and on our build servers). We want to have automatically expanding/contracting sparse working copies, based on the ivy dependencies between modules (starting from a given "main module"). So far I've written a written a hackish python script that finds all "ivy.xml" files in our tree as quickly as possible (up to a certain directory level), 'svn cat's them, and invokes an ant-ivy task to determine a list of the needed modules for the given main module (in the form of relative paths in svn where those ivy.xml's reside). What's still left is "applying" that list of subdirs to a given working copy (or checking out a new one with these subdirs). So here too, I'd like to have a view(spec) feature that can handle the output from our "ivy dependency tree" script as input, and adapt the wc sparsity to it (or checkout a new one with the given sparsity). For now I've had to put my work on that auto-scoping functionality on hold (other priorities), but I hope to get back to it someday. -- Johan