Как вывести список 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)'))
Другие вопросы по тегам