SVN: отменить коммит, сохранив локальные изменения - PullRequest
1 голос
/ 01 ноября 2011

Итак, у меня есть локальный файл сборки.

Это вообще не должно быть в SVN, но это так. (Спасибо, предыдущий сопровождающий!) Но изменения были внесены в локальную копию, которая применяется только к сборке на той коробке, на которой она включена.

Я облажался и сделал коммит, который фиксирует этот локальный файл сборки. Теперь репо-копия SVN имеет эти локальные изменения; это плохо.

Как мне вернуться к status quo ante , где локальные изменения находятся в локальной копии, а не в репозитории SVN, и , последующие svn update не будут перезаписать локальные изменения?

Ответы [ 4 ]

2 голосов
/ 01 ноября 2011
  1. резервное копирование файла с локальными изменениями где-либо.
  2. создание журнала показа файла и возврат этого файла к ревизии до нежелательных изменений (с использованием обновления с заданным номером ревизии)
  3. подтверждение файла
  4. обновление всей рабочей копии
  5. восстановление резервной копии, выполненной на шаге 1

Вы можете использовать списки изменений или заблокировать файлчтобы не повторить ту же ошибку снова.

0 голосов
/ 12 января 2012

Если ваш файл не должен быть версионным, вы можете удалить его из версии:

svn rm --keep-local filename

Это сохранит любой локальный файл, но SVN перестанет его отслеживать.

0 голосов
/ 03 ноября 2011

Для меня это работает:

> svn st
M       0027
> svn info 0027 | grep URL
URL: svn://localhost/xxx/trunk/0027
> svn rm -m "remove accidently checked in file" svn://localhost/xxx/trunk/0027
Revision ...
> svn update
   C 0027
At revision 42.
Summary of conflicts:
  Tree conflicts: 1
> svn revert 0027
Reverted '0027'
> svn status
?       0027

Итак, файл 0027 все еще жив, имеет старое содержимое, но больше не находится в репо.

0 голосов
/ 01 ноября 2011
  1. Вы не можете хранить в WC «только локальные» изменения, если измененные файлы версионированы (кроме добавления набора в ignore-list)
  2. Вы можете отменить любые предыдущие коммиты путем обратного слияния
...