Go to file
Mike Frysinger 5f2b045195 sync: change how we preserve objects in shared repos
Some automatic git operations will prune objects on us, and not just
the gc step.  Normally we don't care, but with shared projects, we
will have multiple git checkouts with refs that the others cannot
see, but with a shared object dir.  Any pruning of objects based on
refs in just one repo can easily break the others.

git-2.7.0 introduced a preciousObjects setting which tells git to
never prune objects for this exact scenario: there might be refs in
some location that git is unable to see.

Change-Id: I781de27c5bbe1d4c70f0187566141c9cce088bd8
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/254392
Reviewed-by: Nasser Grainawi <nasser@codeaurora.org>
Reviewed-by: David Riley <davidriley@google.com>
Reviewed-by: Mike Frysinger <vapier@google.com>
Tested-by: Mike Frysinger <vapier@google.com>
2020-02-11 23:58:43 +00:00
docs docs: document internal manifests.git/config settings 2020-02-10 00:12:17 +00:00
hooks hooks/pre-auto-gc-battery: allow gc to run on non-laptops 2018-07-11 13:45:58 -07:00
subcmds sync: change how we preserve objects in shared repos 2020-02-11 23:58:43 +00:00
tests project: allow src=. with symlinks 2020-02-11 04:23:26 +00:00
.flake8 Replace pylint with pyflakes/flake8 2016-09-14 09:49:02 +02:00
.gitattributes Adds additional crlf clobber avoidance. 2016-06-22 08:36:45 +00:00
.gitignore Add PyCharm project directory into the .gitignore 2020-01-24 23:09:49 +00:00
.mailmap Update .mailmap 2017-05-26 21:44:57 +09:00
.project Set correct name in PyDev and Eclipse project config 2013-04-19 09:35:43 +09:00
.pydevproject Leverage the next keyword from python 2.7 2018-12-19 11:06:35 -08:00
color.py set default file encoding to utf-8 2019-06-13 14:30:52 +00:00
command.py command: filter projects by active manifest groups 2019-10-08 20:15:08 +00:00
editor.py upload/editor: fix bytes/string confusion 2019-11-16 23:55:30 +00:00
error.py manifest: add basic path checks for <copyfile> & <linkfile> 2020-02-04 20:34:01 +00:00
event_log.py set default file encoding to utf-8 2019-06-13 14:30:52 +00:00
git_command.py repo: raise min version of git 2020-02-05 19:01:40 +00:00
git_config.py git_config: fix encoding handling in GetUrlCookieFile 2020-02-08 06:26:36 +00:00
git_refs.py use open context managers in more places 2019-11-12 03:44:39 +00:00
git_ssh add license header to a few more files 2019-06-13 13:23:19 -04:00
gitc_utils.py set default file encoding to utf-8 2019-06-13 14:30:52 +00:00
LICENSE setup.py: add basic packaging files 2019-12-02 04:23:31 +00:00
main.py main: rework launcher version checking 2020-02-10 23:20:55 +00:00
manifest_xml.py manifest_xml: allow src=. with symlinks 2020-02-10 23:19:31 +00:00
MANIFEST.in setup.py: add basic packaging files 2019-12-02 04:23:31 +00:00
pager.py remove spurious +x bits 2020-02-09 23:24:03 +00:00
platform_utils_win32.py [Win32] Make platform_utils compatible for Python3 2020-02-06 14:29:15 +00:00
platform_utils.py Revert "Port _FileDescriptorStreamsNonBlocking to use poll()" 2020-02-03 23:01:07 +00:00
progress.py sync: merge project updates with status bar 2019-11-12 23:33:51 +00:00
project.py project: fix bytes/str encoding when updating git submodules 2020-02-11 18:49:47 +00:00
pyversion.py set default file encoding to utf-8 2019-06-13 14:30:52 +00:00
README.md docs: add Windows support info 2019-12-05 01:02:08 +00:00
repo repo: allow REPO_REV to be an env var 2020-02-09 04:02:26 +00:00
repo_trace.py rename local trace module 2019-08-27 07:08:52 +00:00
run_tests find python via env 2020-02-09 04:02:45 +00:00
setup.py find python via env 2020-02-09 04:02:45 +00:00
SUBMITTING_PATCHES.md tox: add & document tox usage 2019-12-02 04:24:23 +00:00
tox.ini tox: add & document tox usage 2019-12-02 04:24:23 +00:00
wrapper.py wrapper: Fix indentation level 2019-07-31 08:38:19 +00:00

repo

Repo is a tool built on top of Git. Repo helps manage many Git repositories, does the uploads to revision control systems, and automates parts of the development workflow. Repo is not meant to replace Git, only to make it easier to work with Git. The repo command is an executable Python script that you can put anywhere in your path.

Install

Many distros include repo, so you might be able to install from there.

# Debian/Ubuntu.
$ sudo apt-get install repo

# Gentoo.
$ sudo emerge dev-vcs/repo

You can install it manually as well as it's a single script.

$ mkdir -p ~/.bin
$ PATH="${HOME}/.bin:${PATH}"
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo
$ chmod a+rx ~/.bin/repo