~siborgium/src-tree

A simple tool to build multiple git repositories together
Always fetch, fix command description
Pretty-print command choices
Show --target and checkout in README

refs

trunk
browse  log 

clone

read-only
https://git.sr.ht/~siborgium/src-tree
read/write
git@git.sr.ht:~siborgium/src-tree

You can also use your local clone with git send-email.

#src-tree - A simple tool to build multiple git repositories together

A perfect dependency graph is never stale or broken, but there are no perfect dependency graphs. One very common use case is building multiple projects from source, using one's build artifacts to build another. Copying artifacts by hand is tedious and errorprone, but there is a simple solution: shared build directory. Setting one up is quite tedious too, so I've come up with this tool.

It allows to clone multiple repositories as described by configuration file, and link their build directories together.

% src-tree clone config.yaml --root ./root
% mkdir root/result
% # populate root/result with dependencies
% src-tree link config.yaml --root ./root --builddir build --targetdir result

For a following configuration file

repositories:
  - url: https://some.where/~else/xxx
    branch: develop
  - url: https://else.where/~nowhere/yyy
    name: zzz

This would produce a following directory tree minus xxx and zzz contents.

./root/result
./root/xxx/build -> ./root/result
./root/zzz/build -> ./root/result

Sometimes the working tree gets dirty or stale. You can fetch & checkout to the latest copy with

% src-tree checkout config.yaml