Как найти ветку источника для тега
У меня есть тег в subversion, который был сделан некоторое время в прошлом. Я хотел бы знать, из какой ветки она была создана. Есть ли способ сделать это. Я пробовал
svn log --stop-on-copy
Но это только дает мне номер ревизии, а не путь ветки. Мне нужен путь ветки, чтобы я мог проверить это. Любые идеи, предпочтительно метод командной строки SVN здесь будут оценены.
Ответы
Ответ 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.