Questions tagged [git-slave]

Gitslave creates a group of related repositories—superproject repository and a number of slave repositories—all of which are concurrently developed on and on which all git operations should normally 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 slaves in turn.

Gitslave creates a group of related repositories—superproject repository and a number of slave repositories—all of which are concurrently developed on and on which all git operations should normally 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 and (to a lesser extent) Subversion users. Gitslave's design is for simplicity for normal git operations.

Gitslave has been used for mid-sized product development with many slave repositories (representing different programs and plugins), branches, tags, and developers; and for single-person repositories tracking groups of .emacs and .vim repositories (in the latter case, it is basically used to keep the slave repositories up to date via a single command).

The gits wrapper typically runs the indicated git command on each repository in the project and combines (and occasionally post-processes for some special commands) the output from the individual git commands to make everything clearer, which is very useful when you have a few dozen slaves—looking at a concatenation of normally identical output for each git command would lose the wheat in the chaff.

Gitslave does not take over your repository. You may continue to use legacy git commands both inside of a gits cloned repository and outside in a privately git-cloned repository. Gitslave is a value added supplement designed to accelerate performing identical git actions over all linked repositories and aside from one new file in the superproject, adjustments to .gitignore, and perhaps a few private config variables, does not otherwise affect your repositories.

10 questions
102
votes
4 answers

Alternatives to Git Submodules?

I feel that using Git submodules is somehow troublesome for my development workflow. I've heard about Git subtree and Gitslave. Are there more tools out there for multiple repository projects and how do they compare ? Can these tools run on…
Chau Chee Yang
  • 18,422
  • 16
  • 68
  • 132
14
votes
1 answer

git submodules , gitslave, git subtree or a simpler solution

We have a git repository with N folders. Repo |-Folder1 |-Folder2 |- ... |-FolderN With different collaborators we would like to share different folders. Each collaborator should have access only to his allowed subset of folders. What is the "good"…
Issam T.
  • 1,677
  • 1
  • 14
  • 32
9
votes
2 answers

Best practices for multiple git repositories

I have around 20 different repositories. Many are independent and compile as libraries but some others have dependencies among them. Dependency resolution and branching is complicated. Suppose that I have a super project that only aggregates all…
betodelrio
  • 308
  • 2
  • 11
6
votes
2 answers

What are the options when working with Git submodules from which commits are made?

At work, we're working on a dozen Java OSGi bundles, each of which has its own git repository. All bundles will be, in the long run, pretty independent from each other, which justifies the individual repositories — although right now we're still…
Jean-Philippe Pellet
  • 59,296
  • 21
  • 173
  • 234
4
votes
2 answers

git-slave for windows

git-slave documentation only has the following not-so-helpful comment regarding installation on Windows: * Limited windows support Multiple users have been successful in using gitslave with Windows. This is "supported" only in the sense that people…
yotuina
  • 65
  • 4
3
votes
3 answers

How to create two Git repositories in the same base directory, without using branches?

We are currently in the process of moving our Magento Enterprise (an e-commerce web application) files into Git. The httpdocs/.gitignore file contains, among other things: app/design/frontend/company/website/ skin/frontend/company/website/ After…
Norbert
  • 990
  • 1
  • 8
  • 10
2
votes
2 answers

Git: Combine multiple repositories

We created a repository for a basic setup that we can use for new projects. This basic setup is 'work-in-progress', so development on this is ongoing. When there is a new project, we'd like to take the basic setup and use it. The new projects are…
koenHuybrechts
  • 868
  • 4
  • 15
  • 28
2
votes
1 answer

Integrating Git Slave With Jenkins

What would be the best way to integrate git-slave with jenkins? Would it be possible to do this without writing a full plugin? Any shortcuts I could take? I am most interested in replicating: (1) Polling and starting a build based on a change to a…
Gareth
  • 936
  • 6
  • 14
0
votes
1 answer

How do you checkout a branch in a child repository in gitslave?

I have a super repository with several child repositories. I want to change one of the child repositories to another branch. But, when I use git checkout to do it, after a gits status the child repo is somehow back on the master branch. What is…
jcrudy
  • 3,921
  • 1
  • 24
  • 31
-1
votes
1 answer

install Git slave on cygwin

is it possible to get git slave running on cygwin under windows. I tried running make & make install with cygwin, however make install produces mkdir -p //usr/local/share/man/man1 //usr/local/bin mkdir: cannot create directory ‘//usr’: Read-only…
lufthansa747
  • 1,923
  • 3
  • 26
  • 39