Как вывести список SVN-тегов и их ревизий из командной строки
Мне нужны ревизии разных тегов. До сих пор я использовал Tag-Browser в SmartSVN. Однако это довольно медленно.
Что-то вроде svn ls "^/tags"
показывает только теги, но не ревизии. И что-то вроде
svn log /path/to/tag -v --stop-on-copy
дает слишком много запутанной информации, которая не нужна.
Есть ли команда SVN, чтобы получить только теги и его ревизию?
1 ответ
Решение
Вы можете увидеть номера ревизий самого последнего коммита для каждого тега, добавив опцию -v
:
svn ls -v ^/tags
Если вы хотите обработать результаты, я рекомендую использовать командную строку svn info --xml --depth=immediates ^/tags
и анализ XML-документа с помощью скрипта. Например, следующий скрипт python выводит имена тегов с их номером ревизии:
#! /usr/bin/env python3
import sys, lxml.etree
document = lxml.etree.parse(sys.stdin.buffer)
for entry in document.xpath('//entry[@kind="dir"]'):
print(entry.xpath('string(@path)'), entry.xpath('string(commmit/@revision)'))