Announce gitslave - manage a superproject with slave repositories

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I'd like to announce the first public version of gitslave.

gitslave creates a group of related repositories all of which are
concurrently developed on and on which all git operations should
operate, so when you branch, each repository in the project is
branched in turn.  Similarly when you commit, push, pull, merge,
tag, checkout, status, log, etc; each git command will run on the
superproject and all slave repositories in turn.  This sort of
activity may be very familiar to CVS users and to a lesser extent
subversion users where it was fairly normal to assemble a
superproject in just this way.

git-submodules is the legacy solution for a similar sort of
activity, but went a different way.  With submodules you have a
semi-fixed subrepository which you are typically not doing active
development on and which git commands performed on the
superproject will not recurse down into the submodules. Another
option is to stick everything in one giant repository, but that
does not work well if some subsets are shared with other
superprojects.

The gits wrapper around git combines (and occasionally
post-processes for some special commands) the git output to make
everything clearer, which is very useful when you have a few
dozen slaves where looking at a concatenation of identical output
for each git command would lose the wheat in the chaff.

However, gitslave is not perfect. You can have partial success
and failure (which is advertised), programs like `gitk` will not
show the global systems' history only a specific repository's,
and things can get a little squirrelly if different branches/tags
have different slave modules associated with them and you
checkout back and forth.  However, we have not had any
significant problems in over two years of intensive work on a
project using this script.

If your development style or project lends itself to many
individual repositories, and those repositories are under your
direct control and all repositories should at identical
branch names at the same time, gitslave might just be for you.

http://gitslave.sourceforge.net/

Current release as of 2010-09-20: 1.0.0
http://sourceforge.net/projects/gitslave/files/gitslave-1.0.0.tar.gz/download

                                        -Seth Robertson

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]