Отмена фиксации в TortoiseSVN

99

Я случайно зафиксировал кучу файлов (десятки файлов в разных папках). Каков самый простой, самый чистый (и самый безопасный!) Способ «отменить» эту фиксацию без удаления файлов из моего рабочего каталога?

Ману
источник

Ответы:

151

Перейдите к « Показать экран журнала» , выберите ревизию, которую вы хотите отменить, щелкните ее правой кнопкой мыши и выберите « Отменить изменения из этой ревизии» , это приведет к обратному слиянию .

Кристиан К. Сальвадо
источник
8
Это то, что я ожидал, но в последнем выпуске черепахи не было никаких знаков
Энтони Мэйн
39
Не забудьте потом сделать коммит, потому что он просто сливается локально.
pihentagy
5
Обязательно обновите свою рабочую копию перед этим, иначе ничего не произойдет.
Флориан Брукер
1
Документы по этой процедуре: tortoisesvn.net/docs/release/TortoiseSVN_en/…
Коста
TortoiseSVN> Показать журнал> <выберите свою старую ревизию>> Вернуться к этой версии tortoisesvn.net/docs/nightly/TortoiseSVN_en/…
Satyendra
15

Возможно, вам понадобится использовать командную строку, но вы можете использовать команду слияния SVN и указать исправления в обратном порядке, чтобы эффективно отменить фиксацию. Предполагая, что ваш плохой коммит был r1123, вы бы сделали:

svn merge -r1123:1122 <url of your working copy>
Jcoby
источник
Ничего не меняется, когда я делаю это так: svn merge -r 1880: 1879 server / myproject / branch / problem42. Я пробовал использовать как с таким пробелом «-r 1880: 1879», так и без такого пробела «-r1880: 1879». Если после этого я запустил "svn st", то ничего не изменилось.
neoneye
2

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

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

Ной Гудрич
источник
4
Разве это не говорит вам о том, что ваша ревизия устарела и требует обновления перед фиксацией? Я думаю, вам нужно объединить предыдущую ревизию, а не просто обновить старую.
Mnebuerquo
Также эта стратегия предполагает, что плохая фиксация - предыдущая. Вы можете отменить некоторые изменения, которые произошли некоторое время назад, не отменяя их всех.
jpaugh