Откат до указанной ревизии в Subversion

ifani

Народ, подскажите плизз, как сделать откат до заданной ревизии в Subversion?
Делаю update project с указанием номера ревизии - всё нормально, забирает нужную версию, но при коммите на сервак ничего не отправляется (это из svn-клиента, встроенного в Идею).
Ещё поставил TortoiseSVN - там есть отменить изменения из указанных ревизий, но как-то неочевидно работает - стрёмно так отменять:)
По идее-то, это должно в один клик делаться....

Hastya

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

ifani

То есть возможности обычного отката там нету?
А что значит "в другом дереве взять нужную ревизию"?
Я правильно понимаю, что нужно в папку с проектом взять HEAD ревизию, в какую-то левую папку взять нужную мне ревизию и затем скопировать её в папку с проектом?

bobby

Ну да, а если у тебя какие-то файлы были удалены или добавлены со времен той ревизии, то это тоже нужно будет соответствующим образом отследить.

ifani

вот и я про то ж:(
что-то всё-таки не верится, что нет комманды откатить до такой-то ревизии - довольно естественно, имхо, было бы её ввести

artimon

А svn merge это не оно?

Hastya

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

artimon


Undoing Changes
Another common use for svn merge is to roll back a change that has already been committed.

ifani

Да, это я уже читал тут: та же книга, но на русском
Но отсюда нифига не понятно
Что значит "Все, что нужно сделать, это указать обратные отличия"?
Грубо говоря, сейчас в репозитории 20 версия, а хочется откатиться к 15 - как это сделать с помощью merge?
Ни одним из двух клиентов, указанных в первом посте, мне это не удалось

artimon

Типа набрать?

svn merge -r 15:14 чего-то-там

gopnik1994

если рассуждать по аналогии с CVS, то он ничего коммитить и не должен, потому как после апдейта с указанной ревизией (не путать с ветками!) он проставляет sticky flag для этого файла.
в CVS это избегалось ключом -p
видимо в subversion должно быть что-то похожее.

ifani

Если кому интересно, то тут сравнение CVS и SVN
и в пункте "Откат" SVN проигрывает CVS:(

Hastya

а, точно
он может в обратном направлении делать merge
это круто

vijrel7878

как вариант сделать checkout правильной ревизии и закоммитить ее

manusakina

a revert ne pomozhet?
Оставить комментарий
Имя или ник:
Комментарий: