Marshalling Gits

This is a quick post-mortem on the three methods I examined for nesting some of our Git repos. In the end, I ran out of time and felt that the diversity of a CS team means that special handling would not produce a time saving benefit for me.


submodule

Git’s (somewhat) anointed solution is “submodules” and comes built in. Google’s CORGI project (et al) use it.

trial

I created two shared repositories and a third master repository. While submodules seemed to work at first (and showed up pretty on GitBucket) they required extra commands to work right.

subtree

https://github.com/apenwarr/git-subtree/blob/master/git-subtree.txt

Looks dead - not sure how to install it? Seems to be a tool for weaving history trees together or apart; I find this attractive but not useful.

sub-repo

http://www.mos6581.org/git_subtree_alternative

This looked like a neat idea, but, mentions that it’s only a proof-of-concept.

BONUS; quack

I came across this when I was preparing this post. It sounds attractive, but, it’s written in Python. Everything I’ve worked with in Python seems to;

  • check if the correct version of Python is being used
  • check for any other versions of Python
    • silently throw toys from pram and refuses to start if there’s a wrong version

I’m not discussing proper-published projects; I’m discussing the half finished internal things from work. As an example; while Google’s TensorFlow plays nice from an Anaconda sandbox, the tool we wanted to rewrite in TensorFlow didn’t like Anaconda and didn’t want to start. In “If I have to fix it; it is broken” terms; I feel like being written in Python makes software inherently broken.

Conclusion

I really need a hands-off solution, and, these are not it. I found that I was able to achieve most of what I wanted by hard-coding various gubbins into CMakeLists.

comments powered by Disqus
Peter LaValle avatar
Peter LaValle
Any links probably include affiliate ids for that sweet sweet kickback - and some programs require that I tell you. The contents of this blog are likely unrelated - as they include games, paints, and build tools.