Как я могу использовать раздел [subpaths] в .hgsub для переназначения локального подрепортажа для использования в bitbucket - PullRequest
3 голосов
/ 15 ноября 2011

ПРИМЕЧАНИЕ: Поскольку я новичок, мне не разрешат публиковать ссылки, что означает, что все файлы конфигурации будут иметь неправильно отформатированные URL-адреса. Это просто, чтобы обойти ограничения stackoverflow, я использовал правильный URL на практике.

Я попытался настроить подпункт, назовем его A / B. Чтобы клонирование работало правильно, я хотел, чтобы нормальный относительный путь помещал его в хранилище, поэтому логически у меня было .hgsub:

A/B = A/B

Однако при попытке вставить это в bitbucket я получаю обычную ошибку 404 (НЕ НАЙДЕНА), потому что в bitbucket B не может быть локальным, и это фактически другой проект (http s: //username@bitbucket.org/username/B)

Итак, я сказал, хорошо, просто чтобы заставить работать битовую корзину, я могу поставить .hgsub:

A/B = https://username@bitbucket.org/username/B

Однако недавно я обнаружил, что якобы здесь есть обходной путь: https://www.mercurial -scm.org / wiki / Subrepository , где вы используете раздел [subpaths], так что клонирование локально работает нормально, но bitbucket запросит специальный путь для проекта.

Поэтому я попытался скопировать их инструкции. .hgsub:

A/B = A/B
[subpaths]
https://username@bitbucket.org/username/project/A/B = https://username@bitbucket.org/username/B

Но я получаю ту же ошибку 404. Предположительно всякий раз, когда он видит https://username@bitbucket.org/username/project/A/B, он вместо этого переопределяется на последний https://username@bitbucket.org/username/B, который будет работать. Тем не менее, это не так. Я также пытался без ввода username@ в начале.

Любая помощь будет высоко ценится. :)

Ответы [ 2 ]

3 голосов
/ 15 ноября 2011

Оказывается, я тестировал в другом репо, так что это не было захватом матча. Вот рабочий конфиг для всех заинтересованных:

.hgsub:

A / B = A / B

[подпути]

bitbucket \ .org / имя пользователя / имя проекта / A / B = bitbucket.org/username/B

0 голосов
/ 15 ноября 2011

Похоже, ваша subpaths конфигурация неверна. Строка с левой стороны должна быть шаблоном, который соответствует записи в вашем .hgsub. Я думаю, что вы хотите что-то вроде:

[subpaths]
A/B = https://username@bitbucket.org/username/B

Более подробную информацию можно найти в:

Вот выдержка из справки hgrc:

Определяет правила перезаписи исходных расположений в под-репозиториях в форме:

  <pattern> = <replacement>

Where "pattern" is a regular expression matching the source and
"replacement" is the replacement string used to rewrite it. Groups can be
matched in "pattern" and referenced in "replacements". For instance:

  http://server/(.*)-hg/ = http://hg.server/\1/

rewrites "http://server/foo-hg/" into "http://hg.server/foo/".
...