Permalink
Browse files

Renaming all instances of slim to git-meta

  • Loading branch information...
jhedwardyang committed Apr 20, 2016
1 parent f7b680d commit acb24ed50fee97f8305b5aca75388a0f818cdb9d
Showing with 152 additions and 152 deletions.
  1. +1 −1 LICENSE
  2. +21 −21 README.md
  3. +1 −2 TODO.md
  4. +18 −17 lib/git-meta.js
  5. BIN lib/metac/.DS_Store
  6. +3 −3 lib/{slmc → metac}/README.md
  7. +3 −3 lib/{slmc/slmc_branch.js → metac/metac_branch.js}
  8. +4 −4 lib/{slmc/slmc_checkout.js → metac/metac_checkout.js}
  9. +4 −4 lib/{slmc/slmc_cherrypick.js → metac/metac_cherrypick.js}
  10. +3 −3 lib/{slmc/slmc_close.js → metac/metac_close.js}
  11. +2 −2 lib/{slmc/slmc_commit.js → metac/metac_commit.js}
  12. +2 −2 lib/{slmc/slmc_include.js → metac/metac_include.js}
  13. +4 −4 lib/{slmc/slmc_merge.js → metac/metac_merge.js}
  14. +3 −3 lib/{slmc/slmc_open.js → metac/metac_open.js}
  15. +3 −3 lib/{slmc/slmc_pull.js → metac/metac_pull.js}
  16. +4 −4 lib/{slmc/slmc_push.js → metac/metac_push.js}
  17. +4 −4 lib/{slmc/slmc_rebase.js → metac/metac_rebase.js}
  18. +4 −4 lib/{slmc/slmc_status.js → metac/metac_status.js}
  19. +1 −1 lib/{slmc/slmc_version.js → metac/metac_version.js}
  20. BIN lib/metau/.DS_Store
  21. +3 −3 lib/{slmu → metau}/README.md
  22. +3 −3 lib/{slmu/slmu_branch.js → metau/metau_branch.js}
  23. +3 −3 lib/{slmu/slmu_checkout.js → metau/metau_checkout.js}
  24. +4 −4 lib/{slmu/slmu_cherrypick.js → metau/metau_cherrypick.js}
  25. +1 −1 lib/{slmu/slmu_close.js → metau/metau_close.js}
  26. +3 −3 lib/{slmu/slmu_commit.js → metau/metau_commit.js}
  27. +4 −4 lib/{slmu/slmu_gitutil.js → metau/metau_gitutil.js}
  28. +4 −4 lib/{slmu/slmu_include.js → metau/metau_include.js}
  29. +5 −5 lib/{slmu/slmu_merge.js → metau/metau_merge.js}
  30. +3 −3 lib/{slmu/slmu_open.js → metau/metau_open.js}
  31. +5 −5 lib/{slmu/slmu_pull.js → metau/metau_pull.js}
  32. +4 −4 lib/{slmu/slmu_push.js → metau/metau_push.js}
  33. +3 −3 lib/{slmu/slmu_rebase.js → metau/metau_rebase.js}
  34. +3 −3 lib/{slmu/slmu_status.js → metau/metau_status.js}
  35. +2 −2 lib/{slmu/slmu_submoduleutil.js → metau/metau_submoduleutil.js}
  36. +3 −3 lib/{slmu/slmu_testutil.js → metau/metau_testutil.js}
  37. +2 −2 lib/{slmu/slmu_usererror.js → metau/metau_usererror.js}
  38. +4 −4 package.json
  39. +5 −5 test/{slmu/slmu_gitutil.js → metau/metau_gitutil.js}
  40. +3 −3 test/{slmu/slmu_testutil.js → metau/metau_testutil.js}
@@ -11,7 +11,7 @@ modification, are permitted provided that the following conditions are met:
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

* Neither the name of slim nor the names of its
* Neither the name of git-meta nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

@@ -12,7 +12,7 @@
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of slim nor the names of its
* Neither the name of git-meta nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
@@ -29,17 +29,17 @@
POSSIBILITY OF SUCH DAMAGE.
-->

# Slim
# Git-meta

Efficiently manage a set of repositories as if they were a single repository.

The goal of the Slim project is to enhance Git's submodule support to be more
The goal of the git-meta project is to enhance Git's submodule support to be more
powerful and easier to use.

## Installation

$ git clone https://github.com/twosigma/slim.git
$ cd slim
$ git clone https://github.com/twosigma/git-meta.git
$ cd git-meta
$ npm install -g

## Motivation
@@ -73,7 +73,7 @@ custom servers.

## What's Out There?

Before starting on slim, I investigated several existing tools:
Before starting on git-meta, I investigated several existing tools:

[Gitslave](http://gitslave.sourceforge.net)
[myrepos](https://myrepos.branchable.com)
@@ -82,7 +82,7 @@ Before starting on slim, I investigated several existing tools:
[Git subtrees](https://git-scm.com/book/en/v1/Git-Tools-Subtree-Merging)
[Git submodules](https://git-scm.com/docs/git-submodule)

All of these tools overlap with the problems slim is trying to solve, but none
All of these tools overlap with the problems git-meta is trying to solve, but none
of them are sufficient:

- most don't provide a way to reference the state of all repositories
@@ -95,14 +95,14 @@ of them are sufficient:

Git submodules come the closest: they do provide the technical ability to solve
the problem, but are very difficult to use and lack some of the desired
features. With slim, we will build on top of Git submodules to provide the
features. With git-meta, we will build on top of Git submodules to provide the
desired functionality leveraging existing Git commands.

## Model

Our goal is to allow a related set of *sub-repositories* to be treated as a
single *meta-repository*. Slim provides this functionality using Git
submodules. The meta-repository is managed by slim; it is a Git repository
single *meta-repository*. Git-meta provides this functionality using Git
submodules. The meta-repository is managed by git-meta; it is a Git repository
containing a submodule for each sub-repository (and possibly other meta-data).
Each commit in the meta-repository describes an exact state of the world.
Branches and tags in the meta-repository facilitate cross-repository branching
@@ -113,40 +113,40 @@ that are locally available as being *open*.

### Git Is Still There

Slim is a tool that facilitates the use of Git submodules to manage a set of
repositories as if they were a single repository. Slim strives to be as
Git-meta is a tool that facilitates the use of Git submodules to manage a set of
repositories as if they were a single repository. Git-meta strives to be as
easy-to-use as possible, but hiding Git is not a goal. We understand that many
times you will want to work directly with Git commands. We will document our
model, invariants, and sub-command implementations so that you will be able to
understand how slim interacts with Git. Furthermore, slim will provide clear
diagnostics and automatic recovery when it encounters a non-canonical state.
understand how git-meta interacts with Git. Furthermore, git-meta will provide
clear diagnostics and automatic recovery when it encounters a non-canonical state.

In many cases, slim does provide sub-commands that map directly to Git
In many cases, git-meta does provide sub-commands that map directly to Git
sub-commands. We do this not to hide Git, but to provide the command with a
streamlined set of slim-compatible options and slim-specific documentation.
streamlined set of git-meta-compatible options and git-meta-specific documentation.

### Invariants

Slim, attempts to maintain the following invariants:
Git-meta, attempts to maintain the following invariants:

- Every open sub-repository is set to the same local branch as the
meta-repository.

### Vocabulary

*open* -- an open repository is one that has been cloned locally, and
to which slim operations (such as `branch`) will be applied. A repository is
to which git-meta operations (such as `branch`) will be applied. A repository is
opened with the `open` command.
*closed* -- a closed repository is not available locally. A repository is
closed with the `close` command.
*sub-repository* -- one of the repositories included in a slim repository.
*meta-repository* -- the containing repository managed by slim consisting of a
*sub-repository* -- one of the repositories included in a git-meta repository.
*meta-repository* -- the containing repository managed by git-meta consisting of a
submodule for each sub-repository

## Goal -- Reintegration With Git

While starting out as a tool written in terms of Git submodules, in the long
term I would like to see Slim become either a new Git command (like `subtree`),
term I would like to see git-meta become either a new Git command (like `subtree`),
or direct enhancement/extension of the existing `submodule` command. I'd like
to see how effective it is as a standalone tool first before proposing any such
thing to the owners of Git, at which point I would like to get their feedback
@@ -9,7 +9,7 @@
- generally, check for state of repositories (merging, etc.) before doing
operations... also bare repos, "unborn" repos, etc.
- use rebase status of meta-repo to track rebases
- add `slim rebase` continue, abort, etc.
- add `git-meta rebase` continue, abort, etc.
- progress meters for remote operations (fetch, include, open, pull, etc.)
- I've done a lot of this work on the 'working-on-progress-bars' branch, but
it's dependent on the nodegit issues listed below
@@ -23,7 +23,6 @@
- Add assertions for preconditions to methods, particularly argument types.
- Eliminate calls to `exit` except for in the main modules. Change calls
to `exit` into `UserError` exceptions; document this in method contracts.
- get mocha to show stack traces on failures

# Open Issues to Watch

@@ -13,7 +13,7 @@
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* * Neither the name of slim nor the names of its
* * Neither the name of git-meta nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
@@ -31,26 +31,27 @@
*/

/**
* This module contains the entrypoint for the `slim` program. All significant
* functionality is deferred to the sub-commands.
* This module contains the entrypoint for the `git-meta` program. All
* significant functionality is deferred to the sub-commands.
*/

const ArgumentParser = require("argparse").ArgumentParser;

const branch = require("./slmc/slmc_branch");
const checkout = require("./slmc/slmc_checkout");
const cherryPick = require("./slmc/slmc_cherrypick");
const close = require("./slmc/slmc_close");
const commit = require("./slmc/slmc_commit");
const include = require("./slmc/slmc_include");
const merge = require("./slmc/slmc_merge");
const open = require("./slmc/slmc_open");
const pull = require("./slmc/slmc_pull");
const push = require("./slmc/slmc_push");
const rebase = require("./slmc/slmc_rebase");
const status = require("./slmc/slmc_status");
const UserError = require("./slmu/slmu_usererror");
const version = require("./slmc/slmc_version");
const branch = require("./metac/metac_branch");
const checkout = require("./metac/metac_checkout");
const cherryPick = require("./metac/metac_cherrypick");
const close = require("./metac/metac_close");
const commit = require("./metac/metac_commit");
const include = require("./metac/metac_include");
const merge = require("./metac/metac_merge");
const open = require("./metac/metac_open");
const pull = require("./metac/metac_pull");
const push = require("./metac/metac_push");
const rebase = require("./metac/metac_rebase");
const status = require("./metac/metac_status");
const version = require("./metac/metac_version");

const UserError = require("./metau/metau_usererror");

/**
* Configure the specified `parser` to include the command having the specified
Binary file not shown.
@@ -12,7 +12,7 @@
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of slim nor the names of its
* Neither the name of git-meta nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
@@ -29,6 +29,6 @@
POSSIBILITY OF SUCH DAMAGE.
-->

# slmc
# metac

Each component in this package contains an entrypoint for a subcommand of slim.
Each component in this package contains an entrypoint for a subcommand of git-meta.
@@ -12,7 +12,7 @@
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* * Neither the name of slim nor the names of its
* * Neither the name of git-meta nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
@@ -97,8 +97,8 @@ exports.configureParser = function (parser) {
* @param {Boolean} delete
*/
exports.executeableSubcommand = co.wrap(function *(args) {
const GitUtil = require("../slmu/slmu_gitutil");
const branch = require("../slmu/slmu_branch");
const GitUtil = require("../metau/metau_gitutil");
const branch = require("../metau/metau_branch");

const colors = require("colors");
const NodeGit = require("nodegit");
@@ -12,7 +12,7 @@
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* * Neither the name of slim nor the names of its
* * Neither the name of git-meta nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
@@ -72,9 +72,9 @@ default value is 'some'.`,
* @param {String} args.create
*/
exports.executeableSubcommand = co.wrap(function *(args) {
const Checkout = require("../slmu/slmu_checkout");
const GitUtil = require("../slmu/slmu_gitutil");
const Status = require("../slmu/slmu_status");
const Checkout = require("../metau/metau_checkout");
const GitUtil = require("../metau/metau_gitutil");
const Status = require("../metau/metau_status");

const repo = yield GitUtil.getCurrentRepo();
yield Status.ensureClean(repo);
@@ -12,7 +12,7 @@
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* * Neither the name of slim nor the names of its
* * Neither the name of git-meta nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
@@ -78,9 +78,9 @@ exports.executeableSubcommand = co.wrap(function *(args) {

const colors = require("colors");

const CherryPick = require("../slmu/slmu_cherrypick");
const GitUtil = require("../slmu/slmu_gitutil");
const Status = require("../slmu/slmu_status");
const CherryPick = require("../metau/metau_cherrypick");
const GitUtil = require("../metau/metau_gitutil");
const Status = require("../metau/metau_status");

const repo = yield GitUtil.getCurrentRepo();
yield Status.ensureCleanAndConsistent(repo);
@@ -12,7 +12,7 @@
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* * Neither the name of slim nor the names of its
* * Neither the name of git-meta nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
@@ -65,8 +65,8 @@ exports.configureParser = function (parser) {
* @param {String} args.path
*/
exports.executeableSubcommand = co.wrap(function *(args) {
const GitUtil = require("../slmu/slmu_gitutil");
const Close = require("../slmu/slmu_close");
const GitUtil = require("../metau/metau_gitutil");
const Close = require("../metau/metau_close");
const repo = yield GitUtil.getCurrentRepo();
const closers = args.path.map(name => {
return Close.close(repo, name);
@@ -12,7 +12,7 @@
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* * Neither the name of slim nor the names of its
* * Neither the name of git-meta nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
@@ -73,6 +73,6 @@ exports.configureParser = function (parser) {
* @param {String} [args.message]
*/
exports.executeableSubcommand = function (args) {
const commit = require("../slmu/slmu_commit");
const commit = require("../metau/metau_commit");
return commit.commit(args.all, args.message);
};
@@ -12,7 +12,7 @@
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* * Neither the name of slim nor the names of its
* * Neither the name of git-meta nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
@@ -69,6 +69,6 @@ exports.configureParser = function (parser) {
* @param {String} args.directory
*/
exports.executeableSubcommand = function (args) {
const include = require("../slmu/slmu_include");
const include = require("../metau/metau_include");
return include.include(args.repository, args.directory);
};
@@ -12,7 +12,7 @@
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* * Neither the name of slim nor the names of its
* * Neither the name of git-meta nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
@@ -74,9 +74,9 @@ exports.executeableSubcommand = co.wrap(function *(args) {

const colors = require("colors");

const Merge = require("../slmu/slmu_merge");
const GitUtil = require("../slmu/slmu_gitutil");
const Status = require("../slmu/slmu_status");
const Merge = require("../metau/metau_merge");
const GitUtil = require("../metau/metau_gitutil");
const Status = require("../metau/metau_status");

const repo = yield GitUtil.getCurrentRepo();
yield Status.ensureCleanAndConsistent(repo);
@@ -12,7 +12,7 @@
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* * Neither the name of slim nor the names of its
* * Neither the name of git-meta nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
@@ -64,8 +64,8 @@ exports.configureParser = function (parser) {
*/
exports.executeableSubcommand = co.wrap(function *(args) {

const GitUtil = require("../slmu/slmu_gitutil");
const Open = require("../slmu/slmu_open");
const GitUtil = require("../metau/metau_gitutil");
const Open = require("../metau/metau_open");
const repo = yield GitUtil.getCurrentRepo();

const openers = args.path.map(name => {
@@ -12,7 +12,7 @@
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* * Neither the name of slim nor the names of its
* * Neither the name of git-meta nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
@@ -81,8 +81,8 @@ used if not specified`,
* @param {String} [source]
*/
exports.executeableSubcommand = co.wrap(function *(args) {
const GitUtil = require("../slmu/slmu_gitutil");
const pull = require("../slmu/slmu_pull");
const GitUtil = require("../metau/metau_gitutil");
const pull = require("../metau/metau_pull");

const repo = yield GitUtil.getCurrentRepo();

Oops, something went wrong.

0 comments on commit acb24ed

Please sign in to comment.