Я пытаюсь записать пакетный файл, в котором мне нужен ГЛАВНЫЙ пересмотр проекта, я продолжаю работать.
Существует ли команда для получения этого от командной строки?
Я нахожусь на Машине Windows XP.
ОТРЕДАКТИРУЙТЕ я закончил тем, что использовал соединение между Shambulator, mizipzor, и ответами Stefan. Я закончил с этим:
for /f "tokens=5" %%i in ('SubWCRev WorkingCopyPath^|find "Last committed at revision"') do set version=%%i
echo %version%
Спасибо за всех Ваших парней справки
Добавленный этот ответ на список ниже также.
Это неудобно без возможностей текстовой обработки *nix, но этот пакетный файл делает это:
@echo off
for /f "tokens=2" %%i in ('svn info -rHEAD svn://localhost^|find "Revision"') do @echo %%i
Замените ваш svn-репозиторий на мой svn://localhost
.
svn info
получает информацию о репозитории, затем передает ее в find
, который удаляет все, кроме строки, содержащей номер ревизии. Команда for
дает вам второй "токен" в этой строке (первый - Revision:
).
EDIT: Как уже было сказано другими, вам потребуется установленная версия Subversion для командной строки и наличие svn.exe
в PATH
.
Если вам нужна эта ревизия в файле, используйте SubWCRev , который устанавливается вместе с TortoiseSVN (или доступен отдельно ).
В текущих ответах описано, как вывести текущую ревизию в центральном репозитории svn. Если вас интересует текущая локальная проверенная ревизия, я нашел эту запись в блоге, которая делает нечто похожее на то, что сделано в ответе Shambulator'а:
@echo off
FOR /F "tokens=2 skip=4" %%G IN ('svn info --revision HEAD') DO ^
IF NOT DEFINED REVISION SET REVISION=%%G
echo %REVISION%
В итоге я использовал смесь между Shambulator, mizipzor и ответами Стефана. В итоге у меня получилось вот что:
for /f "tokens=5" %%i in ('SubWCRev WorkingCopyPath^|find "Last committed at revision"') do set version=%%i
echo %version%
Спасибо за помощь, ребята
Другой возможный подход. Если вы проверили хранилище, то в файле .svn\entries номер ревизии указан в четвертой строке. Например,
head -4 entries | tail -1
даст вам номер ревизии.
вероятно, не стоит использовать это, так как формат файла может измениться - это зависит от того, предназначен ли скрипт для личного использования
TortoiseSVN не предоставляет никакого интерфейса командной строки, поскольку это просто расширение оболочки.
Однако, если вы установите инструменты командной строки svn, следующая команда предоставит вам подробную информацию об URL-адресе SVN:
svn info [SVN-URL]
для извлечения ревизии вы можете использовать это:
svn info [SVN-URL] | grep Revision | awk '{print $ 2}'
(предполагается, что у вас установлены некоторые инструменты UNIX, например cygwin)
Я не думаю, что есть способ сделать это прямо из командной строки с помощью tortoisesvn. Вы можете установить версию для командной строки из Collabnet , а затем использовать такую команду:
c:\>svn ls -v svn://server/Source
67336 user1 Jul 05 13:00 ./
67336 user1 Jul 05 13:00 Source/