SVNKIT метод doExport - что такое pegRevision? - PullRequest
5 голосов
/ 14 июля 2011

При использовании метода svnkit doExport() я не понимаю значения одного параметра.

Я до сих пор не понимаю его даже после просмотра Javadocs

Что означает параметр pegRevision?

В документах написано

pegRevision - ревизия, с которой URL будет впервые отображаться вхранилище, чтобы убедиться, что это именно то, что нужно

, но это действительно не помогает мне понять это.

Ответы [ 2 ]

5 голосов
/ 14 июля 2011

Посмотрите на это отличное объяснение.Как вы взяли из javadoc, вы упомянули:

... ревизию, при которой URL будет впервые виден в хранилище, чтобы убедиться, что он нужен ...

Я считаю, что это обычно @BASE или @HEAD.Это ревизия, предоставленная Subversion с единственной целью идентификации уникальной линии истории.Поскольку максимум один версионный ресурс может занимать путь в любой момент времени - или, точнее, в любой одной ревизии, - сочетание пути и ревизии колышка - это все, что необходимо для ссылки на конкретную линию истории.

Попробуйте использовать HEAD :

org.tmatesoft.svn.core.wc.Revision.HEAD

2 голосов
/ 20 апреля 2013

пример :

Скажем, давно мы создали наш репозиторий, и в ревизии 1 мы добавили наш первый каталог концептов, а также файл IDEA в этом каталоге, в котором говорилось о концепте.После нескольких ревизий, в которые был добавлен и настроен реальный код, мы в ревизии 20 переименовали этот каталог в frabnaggilywort.К 27-й редакции у нас появилась новая концепция, новый каталог концептов для его хранения и новый файл IDEA для его описания.А затем пролетело пять лет и тысячи ревизий, как в любой хорошей романтической истории.

Теперь, спустя годы, мы задаемся вопросом, как выглядел файл IDEA в ревизии 1. Но Subversion нужно знатьспрашиваем ли мы о том, как текущий файл просматривался в ревизии 1, или спрашиваем о содержимом того файла, который жил в concept / IDEA в ревизии 1. Конечно, эти вопросы имеют разные ответы, и из-за ревизий разметки вы можетезадайте эти вопросы.Чтобы узнать, как текущий файл IDEA выглядел в той старой ревизии, вы запускаете:

$ svn cat -r 1 concept/IDEA 
svn: Unable to find repository location for 'concept/IDEA' in revision 1

Конечно, в этом примере текущий файл IDEA еще не существовал в ревизии 1, поэтому Subversion даетошибка.

Механизм, называемый исправление peg , может решить проблему;

$ svn cat -r 1 concept/IDEA@BASE
or
$ svn cat -r 1 concept/IDEA@1

-------------------------- более сложные ситуации -----------------------------------

говорят, что frabnaggilywort был удален из HEAD, но мы знали, что он существовал в ревизии 20 (просматривая логи svn), и мы хотим увидеть различия в его файле IDEA между ревизиями 4 и 10.Мы можем использовать peg revision 20 вместе с URL-адресом, который содержал бы файл IDEA Frabnaggilywort в revision 20, а затем использовать 4 и 10. в качестве рабочего диапазона ревизий.

$ svn diff -r 4:10 http://svn.red-bean.com/projects/frabnaggilywort/IDEA@20
Index: frabnaggilywort/IDEA
===================================================================
--- frabnaggilywort/IDEA    (revision 4)
+++ frabnaggilywort/IDEA    (revision 10)
@@ -1,5 +1,5 @@
-The idea behind this project is to come up with a piece of software
+The idea behind this project is to come up with a piece of

подробнее здесь http://svnbook.red -bean.com / о / 1,6 / svn.advanced.pegrevs.html

...