twosigma/git-meta

Name: git-meta

Owner: Two Sigma

Description: BETA: Repository for the git-meta project -- build your own monorepo using Git submodules

Created: 2016-02-02 15:01:24.0

Updated: 2018-05-23 22:00:42.0

Pushed: 2018-05-23 22:00:39.0

Homepage: http://twosigma.github.io/git-meta

Size: 2872

Language: JavaScript

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

What is git-meta?

Git-meta allows developers to work with extremely large codebases – performance only degrades very slowly when physical size, number of files, number of contributors increases, or the depth of history grows. You can use granular ACLs with git-meta to help refine the scope of work. Users only need to clone the subsets of the code that they need, yet they can still make atomic commits across the entire codebase. Development and collaboration are done mostly using normal Git commands; we provide a Git plug-in for ease-of-use.

A little more detail

Git-meta both describes an architecture and provides a set of tools to facilitate the implementation of a mono-repo and attendant workflows. Aside from the ability to install the tools provided in this repository, git-meta requires only Git. Git-meta is not tied to any specific Git hosting solution, and does not provide operations that are hosting-solution-specific, such as the ability to create new (server-side) repositories.

A detailed description of the architecture of Git-meta is provided in doc/architecture.md.

Getting Started

Installation

To install the git-meta plugin:

t clone https://github.com/twosigma/git-meta.git
 git-meta/node
m install -g
Quick Start / Basic Usage
Clone

Clone your organization's meta-repository as you normally would with Git:

t clone http://example.com/my-meta-repo.git meta
 meta

At this point, your working directory is likely full of empty directories where sub-repos are mounted. Open the one(s) you're interested in working on and create out a feature branch to work on:

t meta open my-repo
t meta checkout -b my-feature

Now, change a file:

 my-repo
ho "new work" >> some-file

Make a commit:

t meta commit -a -m "I made a change."

And push your change back upstream:

t meta push origin my-feature

Documentation

User Guide

Run git meta --help to see information about git-meta commands, or see the user guide at doc/user-guide.md for more information.

Administration

To learn how to set up and maintain a mono-repo using git-meta, please see: doc/administration.md.

Architecture

A detailed description of the architecture of Git meta is provided in doc/architecture.md.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.