Как я могу написать скрипт-обертку для создания ветки SVN - PullRequest
1 голос
/ 18 ноября 2009

Мой опыт в Perl, но я готов рассмотреть другие скриптовые языки. Есть ли популярный стабильный сценарий SVN библиотечный модуль для Perl, Python или Ruby, которым мы должны быть принимая во внимание:

Цель: написать простой скрипт-обертку для SVN для разветвления или добавления тегов. Perl, Python или Ruby

мои требования:

Write a simple command-line script probably under 100 lines
that supports these actions:

  - create a specified svn branch
  - create a specified svn tag.  (Possibly deducing tag location
    by swapping "trunk" with "tags".)

support svn 1.6 repository or later

Script to be invoked on the svn server for speed and per current
"in house" policy.

I have been asked to use a library approach, instead of directly
calling (for ex) 'svn copy', because of the value that may added
by the library method, and because the script may be easier to
maintain and extend.

Существует ли популярный стабильный модуль библиотеки сценариев SVN для Perl, Python или Ruby, что мы должны рассмотреть?

-
спасибо,
Том

-
Вот модули cpan, на которые я смотрю: http://www.connotea.org/user/zfyarpe/tag/tmp-9fz

Вот большой список, который я впервые рассмотрел: поменяйте местами "tmp-9fz" с "svn-cpan" в последней ссылке

Ответы [ 4 ]

3 голосов
/ 18 ноября 2009

SVN :: Client - официальный интерфейс Perl для функциональности клиента Subversion. Другие перечисленные вами модули не подходят для вашей задачи (и просто используйте бинарный файл svn под капотом, которого вы, похоже, хотите избежать?).

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

100 строк кажутся излишними - возможно, ваш скрипт проанализирует и проверит параметры командной строки и выполнит одну команду svn, которая не должна быть такой сложной.

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

(SVN :: Client должен поставляться с Subversion; дистрибутив cpan Alien-SVN, который включает его, предназначен только для удобства - он создает Subversion для генерации модуля.)

1 голос
/ 18 ноября 2009

Я согласен с другими ответами - если у вас нет чего-то очень особенного, что вам нужно обеспечить (например, конкретная схема именования или сложный процесс, который вы используете для слияния), просто используйте командную строку. Когда я был новичком в svn, я написал несколько скриптов bash для выполнения некоторых из моих общих действий (создание новой ветви, объединение транка в мою ветку, фиксация моей ветви обратно в транк), но быстро стало ясно, что это было более прямым вперед (и так же легко выполнить), если я просто использовал сами команды SVN. Запутывание базовых действий, выполняемых над хранилищем, не приносит никакой пользы - пользователи svn должны понимать, что происходит с их ветвями, чтобы они знали, какие действия подходят (например, объединить, скопировать).

tl; dr версия: чего конкретно вы пытаетесь достичь?

1 голос
/ 18 ноября 2009

Лучший код - это вообще не код.

Использовать командную строку.

0 голосов
/ 18 ноября 2009

Взгляните на скрипт Perl svncopy, отмеченный в этом дефекте . Это хорошее начало для того, что вам нужно.

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