После проверки хранилища я хочу вернуть его к самой старой версии. Есть ли способ сделать это? Все, что не хватает бега

svn log | grep '|' > log

(Я должен сделать это для нескольких папок). И затем получить первое слово в последней строке, а затем удалить 'r' и затем преобразовать его в целое число. И это предполагает, что никакие коммит-сообщения не имеют '|' в них, что, я думаю, является безопасным предположением, но не является "правильным" как таковым.

Примечание: я знаю, как проверить конкретный номер ревизии.

Запуск svn revert ./* в каталоге тоже не работал. После этого, когда я запустил svn up , он сказал "На ревизии __" (последняя ревизия). Работает svn co -r работает нормально

1 ответ1

0

У тебя две проблемы. Во-первых, "как быстро найти первую ревизию для каталога в хранилище". Вероятно, это можно решить, как в https://stackoverflow.com/questions/2675749/how-do-i-see-the-last-10-commits-in-reverse-chronoligical-order-with-svn, используя svn log --limit 1 -r1:HEAD который должен ограничить вас самым ранним одиночным сообщением журнала для каталога. При этом используется «--limit 1», чтобы показать только одно сообщение, и «-r1:HEAD», чтобы упорядочить отображаемые сообщения от первого к последнему, вместо обычного последнего к первому.

Вторая проблема: «Как заставить мою рабочую копию указывать на конкретную ревизию, когда я знаю ревизию?"

Как вы знаете, svn co -r123 получит вам НОВУЮ рабочую копию в редакции 123. Если у вас уже есть рабочая копия, вы просто используете svn update -r123 , чтобы обновить рабочую копию до этой ревизии.

Обратите внимание, что вы также можете использовать даты в спецификаторе ревизии, как описано на http://svnbook.red-bean.com/en/1.7/svn.tour.revs.specifiers.html#svn.tour.revs.dates . Также поддерживается несколько ключевых слов, таких как HEAD.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .