Подтвердить что ты не робот

Как найти ветку источника для тега

У меня есть тег в subversion, который был сделан некоторое время в прошлом. Я хотел бы знать, из какой ветки она была создана. Есть ли способ сделать это. Я пробовал

svn log --stop-on-copy

Но это только дает мне номер ревизии, а не путь ветки. Мне нужен путь ветки, чтобы я мог проверить это. Любые идеи, предпочтительно метод командной строки SVN здесь будут оценены.

4b9b3361

Ответ 1

svn log -v --stop-on-copy <url-of-the-tag> должен предоставить вам эту информацию как описанную здесь.

Соответствующая выдержка:

In addition to the action codes which precede the changed paths, svn log with the
--verbose (-v) option will note whether a path was added or replaced as the result of 
a copy operation. It does so by printing (from COPY-FROM-PATH:COPY-FROM-REV) after such 
paths.

Ответ 2

Чтобы получить прямо правильную ревизию:

svn log -v -r0:HEAD --stop-on-copy --limit 1 <url-of-the-tag>

Будет распечатана только версия, из которой создается ветка:

rxxx | Author | 2013-01-25 11:43:55 +0100 (fri., 2013, jan. 25) | 1 line
Changed paths:
   A /project/branches/branch (from /project/trunk/folder:ryyy)

Пересмотр и путь, который вы ищете: /project/trunk/folder:ryyy.

Ответ 3

Это может быть немного поздно, но я случайно наткнулся на это при разработке некоторых скриптов PowerShell

Если вы можете использовать PowerShell, это может привести к выводу пути, из которого тег/ветвь были скопированы напрямую:

([Xml](svn log -v -r0:HEAD --stop-on-copy --limit 1 URL-HERE --xml)).log.logentry.paths.path.'copyfrom-path'

Что здесь происходит? Команда svn вызывается с флагом --xml, поэтому я могу преобразовать возвращаемое значение в [Xml], что, в свою очередь, позволяет мне получить доступ к XML-узлам svn-output.