Действительно ли возможно сделать частичный клон/ответвление или с базаром, подвижным или с мерзавцем?

Можно использовать

git add -u

Для добавления удаленных файлов к району сосредоточения войск, затем фиксировать их

git commit -m "Deleted files manually"
19
задан Blorgbeard 19 August 2009 в 08:55
поделиться

6 ответов

Если у вас уже есть репозиторий и вы хотите это сделать, это будет неприятно.

Если вы собираетесь делать это с новыми репозиториями, вы Возможно, вы захотите взглянуть на новые подрепозитории Mercurial .

В основном вы создаете автономные репозитории для определенных каталогов:

myproject/
    .hg/
    source code/
        ... files here ...
    documentation/ (subrepo)
        .hg/
        ... files here ...
    graphics/ (subrepo)
        .hg/
        ... files here ...

Это изолирует различные части проекта в разных репозиториях. «Содержащий» репозиторий (в данном случае myproject) отслеживает ревизию подрепо при каждой фиксации. Вики-страница субрепо, о которой я говорил, хорошо это объясняет.

10
ответ дан 30 November 2019 в 03:16
поделиться

Насколько я знаю, клонирование подмножества дерева невозможно, но есть и другие возможности.

Git : команда git clone имеет флаг - depth :

- depth

Создает неглубокий клон с историей, усеченной до указанного числа ревизий. Мелкий репозиторий имеет ряд ограничений (вы не можете клонировать или извлекать из него, а также нажимать из него или в него), но его будет достаточно, если вас интересует только недавняя история большого проекта с длинной историей и вы хотели бы отправлять исправления в виде патчей.

Bazaar : флаг - облегченный для checkout команда загружает только рабочий каталог, а не всю историю и сохраняет полосу пропускания и диск пространство. Все операции по-прежнему поддерживаются,

14
ответ дан 30 November 2019 в 03:16
поделиться

Судя по этой вики-странице , эта функция еще не реализована в Mercurial, однако есть расширение , которое может делать примерно то, что вы хотите, «преобразование» репозитория или его части, а не фактическое разветвление. Поскольку он может преобразовывать из и в Hg, он может работать как частичное клонирование. Это то, что вам нужно?

6
ответ дан 30 November 2019 в 03:16
поделиться

В большинстве DCVS правило: «1 проект == 1 репозиторий ". Здесь нет понятия «подпроект» (в отличие от Subversion, где вы можете извлечь поддерево и поработать над ним).

Основная причина в том, что ваш «проект» содержит копию всего репозитория в корневой папке. Все было бы довольно сложно, если бы вы могли создавать копии всего репозитория в подпапках.

С другой стороны, создание рабочих копий - это быстрая операция (если только файловая система не является медленной).

4
ответ дан 30 November 2019 в 03:16
поделиться

Для Bazaar у вас есть вложенные деревья: http://bazaar-vcs.org/NestedTreesDesign , что позволяет разделить большой проект на подпроекты.
Я еще не использовал эту функцию, поэтому не знаю, насколько хорошо она работает.

Вы также можете перейти с помощью --hardlink, чтобы избежать копирования кучи файлов (не уверен, работает ли это в Windows ...) , ветвь без истории (более светлая ветвь) или ветвь без рабочего дерева (без файлов, только история).

3
ответ дан 30 November 2019 в 03:16
поделиться

В git вы можете использовать git subtree , что позволяет вам извлекать «виртуальный» репозиторий только для определенного подпроекта, затем вносить изменения в подпроект и затем объединять их обратно в.

4
ответ дан 30 November 2019 в 03:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: