Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/svenfuchs/space
multi-repository monitoring and shell helper tool to ease development across multiple dependent repositories
https://github.com/svenfuchs/space
Last synced: about 2 months ago
JSON representation
multi-repository monitoring and shell helper tool to ease development across multiple dependent repositories
- Host: GitHub
- URL: https://github.com/svenfuchs/space
- Owner: svenfuchs
- License: mit
- Created: 2012-03-26T17:47:53.000Z (almost 13 years ago)
- Default Branch: master
- Last Pushed: 2012-10-29T01:19:04.000Z (about 12 years ago)
- Last Synced: 2024-04-18T22:21:52.295Z (8 months ago)
- Language: Ruby
- Homepage: https://github.com/svenfuchs/space
- Size: 203 KB
- Stars: 17
- Watchers: 3
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Space [![Build Status](https://secure.travis-ci.org/svenfuchs/space.png?branch=master)](http://travis-ci.org/svenfuchs/space)
Space is a multi-repository monitoring and shell helper tool to ease
development across multiple dependent repositories.Here's a screenshot of my setup (iterm, tmux, vim, space) for working on
[travis](http://github.com/travis-ci).[![tmux based travis workspace](http://img.skitch.com/20120410-d4qk8ce75h6x7i7g7i2cbtjnn8.png)](http://img.skitch.com/20120410-d4qk8ce75h6x7i7g7i2cbtjnn8.png)
The thing on the right side is an iterm split pane running space. The main
screen is take by a tmux session that has a vim and a zsh pane. (I use an iterm
pane for space so that I can switch between tmux windows but keep the space
view.)The space view gives an overview of:
* current branch
* current commit
* bundler local flag
* git status (clean, dirty, ahead)
* bundle status (`bundle check`)
* dependenciesE.g. one can easily see that:
* repos 1-5 are using the bundler local flag, while 6-7 are using remote
references
* repos 4, 6, 7 have dirty working directories
* repo 6 is 1 commit ahead of origin
* the bundle in repo 7 is not installedSpace checks for each dependency listed in a repo's Gemfile if the bundle is
locked to the hash that is currently checked out locally and display that
status information.Also note that the repo numbers are referring to the tmux windows where
possible.This screencast is from a very early version but still mostly valid. It also
demonstrates how screen can be used to run commands on multiple repositories at
once:[![screencast](http://img.skitch.com/20120410-gyiprdiy8jyhwwp3pd4gafk3tu.png)](http://www.youtube.com/watch?v=NfYZysobsYo)
## Installation
gem install space
Add a space config file. This is what the `~/.space/travis.yml` file for the setup above looks like:
base_dir: ~/Development/projects/travis
repositories:
- travis-ci
- travis-hub
- travis-listener
- travis-core
- travis-support
- travis-worker
- travis-buildThen run:
space [project]
e.g. `space travis`.
## Usage
Commands are always run for a given scope of repos. If no scope is specified
then commands are run for all repos in the project.### Scoping/unscoping
One can set a scope like so:
> [name|number] # scope to the given repo and all of its deps, can scope to multiple repos
> - # unscope### Builtin commands
> [refresh|!] # refresh
> r[emote] # use remote repos
> l[ocal] # use local repos### Running shell commands across all repos
> git co -b foo # run this in all repos
### Scoping a single command
You can specify a scope for a single command. The command is then run within
the specified repos.> 1 2 3 bundle update # run the command in the repos 1, 2, 3