Вам нужен узкий или частичный клон , но это, к сожалению, пока не поддерживается.
Если у вас уже есть большой репозиторий и вы понимаете, что имеет смысл разделить его на несколько меньших репозиториев, то вы можете использовать расширение convert , чтобы сделать преобразование Mercurial в Mercurial . Обратите внимание, что при этом создается новый репозиторий foo
, и вы не можете нажимать / тянуть между your-big-repo
и foo
.
convert extension
не включен по умолчанию, поэтому добавьте следующее в файл hgrc
вашего репо или mercurial.ini
:
[extensions]
hgext.convert=
Затем создайте файл map.txt
с
include "libs/foo"
rename "libs/foo" .
(обратите внимание, что вы можете использовать косую черту даже в Windows) и запустить
$ hg convert --filemap map.txt your-big-repo foo
Это сделает foo
хранилищем с полной историей папки libs/foo
из your-big-repo
.
Если вы хотите удалить все свидетельства foo
из your-big-repo
, вы можете сделать другое преобразование, в котором вы используете exclude libs/foo
, чтобы избавиться от каталога.
Если у вас есть несколько таких репозиториев, и вы хотите использовать их как единое целое, тогда вам следует взглянуть на субпозитории . Эта функция позволяет вам включать в репозиторий другие репозитории - подобно тому, как работает svn:externals
. Пожалуйста, следуйте рекомендациям на этой вики-странице.