Как пропустить subrepo в черепахе HG - PullRequest
0 голосов
/ 25 августа 2011

Я использую черепаху hg, и мой репозиторий содержит подпункт.Подпункт очень большой и требует очень много времени для обновления.

Есть ли способ обновить мой репозиторий, но пропустить обновление подпункта?

Ответы [ 2 ]

3 голосов
/ 25 августа 2011

Команда update предназначена для постоянной работы со всем хранилищем.Невозможно исключить вложенный репозиторий.

Однако если вы правильно структурируете свой репозиторий, вы сможете достичь того, что вам нужно.

Я ожидаю, что вы столкнулись с этой проблемой, потому что ваш проектРЕПО выглядит следующим образом:

parent/
    .hgsub
    .hgsubstate
    subrepo/
    your_project_file.py

При указанной выше структуре update вынужден работать как с файлами, находящимися под вашим контролем (в parent), так и с вашим вложенным репо.Лучший (и более гибкий) способ структурирования вашего хранилища:

build_repo/       # top-level repo that is empty except for .hgsub
    .hgsub
    .hgsubstate
    your_repo/    # your code as a subrepo
    subrepo/      # the library code as a subrepo

С этой структурой вы можете обновить your_repo, не требуя обновления библиотек, от которых вы зависите.

0 голосов
/ 29 августа 2011

Вот трюк, который я использую:

  • Локальный репозиторий subrepo в ДРУГОЙ папке.Я скопировал папку у моего коллеги.

  • Настройка нового репо.Вытащите изменения (пока не обновляйте).Клонируйте локальный подпункт в соответствующее место в новом репо.Теперь update и tortoiseHg будут извлекать diff только в этом подпункте.

  • В этот момент ваш подпункт указывает на локальную копию.После того, как все обновляется до даты.Направьте вложенный репозиторий на удаленный сервер.

Конечно, это работает только в том случае, если у вас или у кого-то уже есть копия этого субрепо.

...