Поддерживает ли Subversion псевдонимы для веток? - PullRequest
7 голосов
/ 11 августа 2010

Есть ли способ в subversion указать, что конкретный путь является псевдонимом для другого пути, с возможностью обновления этого псевдонима при изменении условий? Можно ли заблокировать пути, чтобы предотвратить их изменение?

Я работаю над структурой хранилища, и я хотел бы иметь следующие пути:

  • / версии / 1.0 - предыдущий выпуск (заблокирован)
  • / версии / 1.1 - предыдущий выпуск (заблокирован)
  • / версии / 1.1.1 - текущий выпуск (разблокирован для разработки патчей)
  • / версии / 1.1.2 - следующий незначительный выпуск (разблокирован для разработки)
  • / версии / 1.2 - следующий основной выпуск (разблокирован для разработки)
  • / patch - Псевдоним для / версии / 1.1.1 , проверки появляются в обоих местах
  • / subrelease - Псевдоним для / version / 1.1.2 , Checkins появляются в обоих местах
  • / trunk - Псевдоним для / version / 1.2 , Checkins появляются в обоих местах

Цель состоит в том, чтобы продолжать движение ствола, чтобы не отставать от того, где большинство разработчиков работает. После того, как мы выпустим пару раз и выйдет 1.2, структура будет выглядеть так:

  • / версии / 1.0 - предыдущий выпуск (заблокирован)
  • / версии / 1.1 - предыдущий выпуск (заблокирован)
  • / версии / 1.1.1 - предыдущий выпуск (заблокирован)
  • / версии / 1.1.2 - предыдущий выпуск (заблокирован)
  • / версии / 1.2 - текущий выпуск (разблокирован для разработки патчей)
  • / версии / 1.2.1 - следующий незначительный выпуск (разблокирован для разработки)
  • / версии / 1.3 - следующий основной выпуск (разблокирован для разработки)
  • / patch - Псевдоним для / версии / 1.2 , проверки появляются в обоих местах
  • / subrelease - Псевдоним для / версии / 1.2.1 , Checkins появляются в обоих местах
  • / trunk - Псевдоним для / version / 1.3 , Checkins появляются в обоих местах

Я знаю, что мог бы сделать это на своей машине, но включение этого в систему контроля версий дает всем общий набор слов для работы.

Ответы [ 2 ]

6 голосов
/ 11 августа 2010

Насколько мне известно, вы можете добиться чего-то подобного, используя свойство svn: externals , чтобы папка действовала как псевдоним другой.Если вам никогда не нужно фиксировать сразу в двух версиях / ветках, это должно сработать.

2 голосов
/ 11 августа 2010

Псевдонимы не поддерживаются, извините. Однако быстро и легко скопировать целые деревья. Вы можете либо не создавать версию / 1.2 и т. Д., А затем просто скопировать транк в версию / 1.2, когда придет время, или просто работать в версии / 1.2. В качестве альтернативы вы можете управлять обоими, но использовать процесс для копирования коммитов между ними, например, как только они пройдут все тесты на вашем сервере непрерывной интеграции, он скопирует коммиты из транка в 1.2.

Блокировка: вы можете написать ловушку фиксации на стороне сервера, чтобы предотвратить фиксацию по конкретным путям, и добавить туда свои пути, чтобы заблокировать их. Однако нет встроенной поддержки ни в сервере, ни в клиенте по умолчанию. Некоторые клиенты, например TortoiseSVN будет обрабатывать пути, содержащие «теги», как подлежащие блокировке, и будет предупреждать вас, если вы собираетесь их фиксировать, но это чисто клиентская и специфичная для клиента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...