commit | 09f0abb0efde83cfc4b850ebdc41f6ed3b61a123 | [log] [tgz] |
---|---|---|
author | Nikolai Merinov <n.merinov@inango-systems.com> | Fri Oct 19 15:07:05 2018 +0500 |
committer | Nikolai Merinov <n.merinov@inango-systems.com> | Fri Oct 19 23:51:23 2018 +0500 |
tree | 18265441fc938e567fbf7fae409de11bc2e6bfd7 | |
parent | b3133a31642ea88f0e4fe9c382411d43278dc9e4 [diff] |
init: --dissociate option to copy objects borrowed with --reference "repo init --reference" has two purposes: to decrease bandwidth used at clone time, and to decrease disk usage afterward, by using the reference repositories as an alternate store of objects even after the clone. The downside is that it makes the borrowing repositories dependent on the reference repositories, so it is easy to end up with missing objects by mistake after a cleanup operation like "git gc". To prevent that, v2.3.0-rc0~30^2 (clone: --dissociate option to mark that reference is only temporary, 2014-10-14), "git clone" gained a --dissociate option that makes --reference reuse objects from the reference repository at clone time but copy them over instead of using the reference as an alternate. This is more straightforward to use than plain --reference, at the cost of higher disk usage. Introduce a --dissociate to "repo init" that brings the same benefits to repo. The option is simply passed on to "git clone". Change-Id: Ib50a549eb71e0a2b3e234aea57537923962a80d4
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.