2016-01-27 6 views
3

Я вытащил из репо, внеся изменения в несколько файлов, и теперь я хочу их отменить.SVN, похоже, не возвращает изменения

Я попытался svn revert -R . и svn revert --depth infinity ., но когда я называю svn status, я все еще видеть все файлы, помеченные как модифицированные, и они кажутся такими же, как они были прежде, чем я пытался вернуться.

Я видел this обсуждение в документах о возвращении изменений, но, похоже, это касается перехода от одного фиксации к другому, а не отмены всех незафиксированных изменений.

(я не имею доступа к TortoiseSVN.)

Я не могу дать вам точную дамп команды состояния, но это выглядит примерно так:

>>svn status 
? dir/ 
? dir/ 
X dir/ 
? dir/ 

Performing status on external item at [dir] 
M file 

Performing status on external item at [dir] 
? dir/ 
? dir/ 
? file 
? file 
X dir/ 
+0

Я сам всегда держу zip резервных копий, независимо от любого репозитория. Очень немногие из них делают то, что я хочу, когда пришло время «ретро» старой версии (например, они дают ей новую временную метку, а не оригинальную временную метку). Конечно, подчиняйтесь политикам своей организации и размещайте свой код в репозитории, для других разработчиков, но обязательно сохраняйте независимую резервную копию ..... – JosephDoggie

+1

Каков результат команды revert? Перечисляет ли это файлы с возвратом? –

+0

@LaurentH. Я не думаю, что какой-то результат. – JETM

ответ

2

Согласно svn:externals documentation есть некоторые команды, которые будут записываться в каталоги, определенные внешними. Эти команды являются:

  • контроля
  • обновления
  • переключателя
  • экспорта
  • статуса

Большинство из них имеет --ignore-externals флаг позволяя вам избежать обновлений тех.

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

К сожалению, это кажется одним из оставшихся грубых пятен в svn: externals. Вам, вероятно, потребуется изменить каталог на измененный внешний и вернуться туда.

Возможно, вы можете с этим легко справиться.

+0

Спасибо! Мне не разрешено присуждать награду еще на 20 часов, но я обязательно сделаю это. – JETM