• Stars
    star
    218
  • Rank 180,763 (Top 4 %)
  • Language
    JavaScript
  • License
    BSD 3-Clause "New...
  • Created over 8 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

Build Status

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:

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

Quick Start / Basic Usage

Clone

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

$ git clone http://example.com/my-meta-repo.git meta
$ cd 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:

$ git meta open my-repo
$ git meta checkout -b my-feature

Now, change a file:

$ cd my-repo
$ echo "new work" >> some-file

Make a commit:

$ git meta commit -a -m "I made a change."

And push your change back upstream:

$ git 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.

More Repositories

1

beakerx

Beaker Extensions for Jupyter Notebook
Jupyter Notebook
2,784
star
2

flint

A Time Series Library for Apache Spark
Scala
993
star
3

Cook

Fair job scheduler on Kubernetes and Mesos for batch workloads and Spark
Clojure
336
star
4

satellite

Satellite monitors, alerts on, and self-heals your Mesos cluster.
Clojure
143
star
5

marbles

Read better test failures.
Python
116
star
6

fastfreeze

Turn-key solution to checkpoint/restore applications running in Linux containers
Rust
113
star
7

waiter

Runs, manages, and autoscales web services on Mesos and Kubernetes
Clojure
83
star
8

ngrid

It's "less" for data!
Python
75
star
9

nsncd

nscd-compatible daemon that proxies lookups, without caching
Rust
47
star
10

uberjob

uberjob is a Python package for building and running call graphs.
Python
27
star
11

riemann-jmx

A reliable JMX connector for Riemann
Clojure
25
star
12

libvirtcpuid

libvirtcpuid provides transparent CPUID virtualization, all in userspace.
C
24
star
13

blinky

C++
22
star
14

tensu

Tensu is a TUI (text user interface) based program for interacting Sensu Go's monitoring pipeline and backend API.
Python
21
star
15

ts_isolate

C
17
star
16

libvirttime

libvirttime provides transparent time virtualization, all in userspace.
Rust
14
star
17

postgresql-contrib

PLpgSQL
12
star
18

goll-e

Graph Object Language and Layout Editor
JavaScript
11
star
19

beaker-notebook-archive

Archive of Beaker Notebook
Java
11
star
20

gcsthin

Rust
11
star
21

envoy-viz

Go
10
star
22

mbeat-core

Command-line utilities for testing multicast network.
C
10
star
23

beakerx_tabledisplay

TypeScript
9
star
24

docker-repo-auth-demo

Demonstration of auth with the Docker open source registry
Python
9
star
25

set_ns_last_pid

The semantics of writing to /proc/sys/kernel/ns_last_pid without privileges
C
8
star
26

iqueue

C
8
star
27

debootwrap

Create a Debian chroot unprivileged, with the help of bubblewrap and debootstrap.
Shell
6
star
28

nxv

Render NetworkX graphs using GraphViz
Python
5
star
29

OpenJDK

Two Sigma Open Source fork of OpenJDK for contributions to upstream, based on AdoptOpenJDK
Java
5
star
30

docker-sideways

Go
4
star
31

beakerx_widgets

TypeScript
4
star
32

pagerduty-supervisor

Integrates PagerDuty with SupervisorD
Python
4
star
33

beakerx_kernel_base

Base repository for BeakerX JVM based kernels
Java
3
star
34

verilator_support

Support scripts for verilator
Perl
3
star
35

beakerx_kernel_scala

Java
3
star
36

memento

Framework and lightweight set of standards that encourage discipline in the way data is incrementally transformed through code
Python
3
star
37

beakerx_kernel_groovy

Java
2
star
38

beakerx_kernel_sql

Java
2
star
39

gsskrb5

C
2
star
40

beakerx_kernel_java

Java
1
star
41

relexec

A program to enable relative shebangs in scripts
Python
1
star
42

beakerx_base

Python
1
star
43

beakerx_tests

Jupyter Notebook
1
star
44

beakerx_kernel_autotranslation

A repository for BeakerX Autotranslation components.
Python
1
star