2009-11-24 7 views
2

Просто быстрый вопрос я не нашел ответа на поиск по ...Как получить последнюю обновленную версию через SVN?

Как получить текущий проверил номер ревизии с моей SVN-каталог?

Более ясно: мне не нужен последний номер версии, поскольку это может быть моя собственная фиксация, но номер версии последнего обновления, который я сделал в своем локальном репо.

Или, если это проще, я хочу получить список всех файлов, которые были переданы в репо с момента последнего обновления, желательно без файлов, которые я сделал с тех пор.

Cheers.

+0

Все текущие ответы говорят мне, что последняя версия у меня есть локально, но ** не ** последнее обновление, которое я сделал. Потому что, если мой последний коммит был 1234, я получу 1234. Однако если последняя ревизия, которую я проверил, составляет 1233, это номер, который я хочу найти. (Хотя я должен всегда обновлять до последней версии, прежде чем совершать себя). – Christoffer

ответ

5

svnversion отображает диапазон номеров

> svnversion 
2:3 

Первый номер является Последнее обновление/извлеченная версия. Второй номер - последняя зарегистрированная версия. Если они одинаковы, вы увидите только один номер.

Редактировать: имейте в виду, что если вы выполняете сложный checkin/checkout/merges, различные части вашей рабочей копии могут быть в разных версиях, а svnversion сообщит вам диапазон номеров ревизий. см. документацию svnversion.

+0

Спасибо, это то, что я хотел знать :) – Christoffer

+0

спасибо, что просил - я понял это из-за беспорядка, не знал об этой функции, пока не попробовал. –

+0

Заявление о * последней проверенной/зарегистрированной версии * ** неправильно **. Не в общем случае. Вы можете просто ** svn up -r $ OLDREV; svn up $ FILE **, чтобы получить смешанную копию, и вы не зарегистрировались ** $ FILE **)) – gavenkoa

2

Вы можете использовать программу svnversion.

0
svn info <your local WC> 

Любая дополнительная информация:

C:\>svn help info 
info: Display information about a local or remote item. 
usage: info [TARGET[@REV]...] 

    Print information about each TARGET (default: '.') 
    TARGET may be either a working-copy path or URL. If specified, REV 
    determines in which revision the target is first looked up. 

Valid options: 
    -r [--revision] ARG  : ARG (some commands also take ARG1:ARG2 range) 
          A revision argument can be one of: 
           NUMBER  revision number 
           '{' DATE '}' revision at start of the date 
           'HEAD'  latest in repository 
           'BASE'  base rev of item's working copy 
           'COMMITTED' last commit at or before BASE 
           'PREV'  revision just before COMMITTED 
    -R [--recursive]   : descend recursively, same as --depth=infinity 
    --depth ARG    : limit operation by depth ARG ('empty', 'files', 
          'immediates', or 'infinity') 
    --targets ARG   : pass contents of file ARG as additional args 
    --incremental   : give output suitable for concatenation 
    --xml     : output in XML 
    --changelist ARG   : operate only on members of changelist ARG 
          [aliases: --cl] 

Global options: 
    --username ARG   : specify a username ARG 
    --password ARG   : specify a password ARG 
    --no-auth-cache   : do not cache authentication tokens 
    --non-interactive  : do no interactive prompting 
    --config-dir ARG   : read user configuration files from directory ARG 

К второй части вашего вопроса:
Вы можете использовать svn diff -r BASE:HEAD. BASE описывает вашу текущую версию, HEAD последней в репозитории.

3

Используйте команду svnversion.

$ svnversion 
1234 

будет означать, что 1234 является самой высокой версией вашей рабочей копии.

0

Если вы хотите знать, что изменилось в репо, что это не в вашей рабочей копии, вы ищете -u переключатель на команду состояния СВН:

svn status -u 

Он покажет вам, что произойдет, если вы сделали svn up, но без фактического выполнения обновления.

+1

Нет - OP ищет номер версии последней обновленной версии. Состояние svn -u сравнивается с последней проверенной версией, которая может быть больше последней обновленной версии. –

+0

Ugh. Это то, что происходит, когда я переключаюсь на декаф! –

0

Pls проверить эту документацию svnversion

Я думаю, вам нужно использовать команду svnversion с опцией -c.

--committed (-c) Использует измененные изменения, а не текущие (то есть самые доступные локально доступные) ревизии.

Надеюсь, что эта помощь!

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