2014-09-01 3 views
0

Мне нужно получить пересмотр главы из локального репозитория. Поэтому я использую:Получить версию главы от http до версии пакета

svn update 'path' --non-interactive --no-auth-cache --username here_username --password here_password 

И это работает! Консоль:

Updating 'path': 
At revision 29. 

Как получить этот номер 29?

Также я стараюсь:

REV=`/usr/bin/svnversion -nc 'path' | /usr/bin/sed -e 's/^[^:]*://;s/[A-Za-z]//'` 
echo $REV 

И результат 23

Но получить последнюю версию, но не голову.

В версии я видел enter image description here

Также я нашел:

REVISION = $(svn info -r HEAD 'http://login:[email protected]' | sed -n "/Revision/p" | sed "s/[^0-9]//g") 
echo $REVISION 

Но я не знаю, почему авторизация не удалась.

Так как я могу получить ревизию головы, используя сценарий shell?

ответ

1
  • Если path в svn up некоторый узел внутри рабочей копии (и это), вы получите не ГОЛОВА репозитария, как результат, но последней зафиксированной ревизии этого каталога в хранилище (ГОЛОВА может быть позже пересмотр совершить по другому пути)

  • Ваших svnversion призывания, ну, странно (я слишком ленив, чтобы рассекать и СЭД) - если вы хотите глава хранилища и иметь чистую рабочую копию, самый простой способ это просто svnversion . в туалете (-n все в порядке, если вы хотите, чтобы получить его в переменный), не -c и относительном пути (пересмотр глобальный)

Просто сравните результаты моего и ваш svnversion для такой рабочей копия

svn ls -v 
     5 lazybadg    фев 07 2014 ./ 
     2 lazybadg    ноя 28 2013 branches/ 
     2 lazybadg   146 ноя 28 2013 readme.textile 
     1 www-data    ноя 27 2013 tags/ 
     5 lazybadg    фев 07 2014 trunk/ 

Как вы можете видеть (и согласитесь со мной, да?) Головой этого туалета | репо должны быть 5.Но, ваши svnversions могут дать

svnversion -nc trunk 
2:5 

svnversion -nc branches 
2 

и в любом дереве (чистый) мой короткого svnversion -n рабочей копии

>svnversion -n 
5 
>cd branches 
>svnversion -n 
5 
  • Для svn info URL
    • -r HEAD может быть опущены (HEAD is default revision)
    • --username here_username --password here_password будет работать и работать лучше, чем URL-en закодировано разрешение
    • не СВНЫ связанных Вместо двух труб (ужасном) SED, вы можете легко значение Revision выписки из svn info вывода с простой короткой AWK svn info ... | awk '/Revision/ { print $2 }' (ТЮТ !!!)

Примечание

Для всех версий маркировки задачи я предпочитаю не изобретать велосипед, а использовать общие хорошо известные решения, такие как SubWCRev | SVNRev

Смежные вопросы