Как я могу принудительно вернуть обратно так конкретный номер ревизии с помощью командной строки SVN?

В моем предыдущем посте я слишком рано говорил о том, что надо ломать голову.

Я пытаюсь вернуться к ревизии 1124 с помощью команды svn update -r 1124 но я продолжаю получать сообщение об ошибке следующим образом:

[prague]$ svn update -r1024
U    app/webroot/css/group_themes/green.css
U    app/webroot/css/style.css
Skipped 'app/webroot/index.php'
svn: Failed to add directory 'app/webroot/images/users': an unversioned directory of the same name already exists

Мы вернули кое-что, но все еще не ту версию, которую я знаю, что я проверил прошлой ночью... Я думал, что было бы намного проще просто вернуться к определенной ревизии:(

3 ответа

Решение

Без коммита

Попробуйте оформить редакцию 1124 в новом пустом каталоге, чтобы не было конфликтов с уже существующими каталогами.

Так svn checkout -r 1124 в новом каталоге.

С коммитом

Согласно руководству SVN, если вы хотите зафиксировать предыдущую ревизию, вам нужно использовать обратное слияние. См. http://svnbook.red-bean.com/en/1.0/ch04s04.html"Отмена изменений".

svn merge -c -1124 http://svn.example.com/repos/calc/trunkс последующим

svn commit -m "Rollback merge to revision 1124"

Не удалось добавить каталог 'app/webroot/images/users': неверсионный каталог с таким именем уже существует

Кажется, мне ясно: каталог с таким именем уже существует, и он не является версионным. Вы можете выбрать две вещи: либо удалить каталог и обновить снова, либо переименовать (возможно, самый умный) и обновить снова.

 $ mv app/webroot/images/users app/webroot/images/users.orig/
 $ svn update -r1024

Кроме того, сделайте себе одолжение и посмотрите на некоторые из альтернатив SVN, такие как Mercurial, Bazaar или Git. Я нашел переключатель, чтобы быть очень приятным;)

Вы можете просто сделать обновление до версии, используя

svn up -r 1124 

Но это не позволит вам зафиксировать изменения, так как SVN требует от вас обновить вашу рабочую копию до HEAD, прежде чем вы сможете зафиксировать. Что вы можете сделать вместо этого

svn merge -r HEAD:1124 yourFile
svn ci yourFile -m "Reverting back to rev 1124 "
Другие вопросы по тегам