Как разрешить "локальное редактирование, входящее удаление после обновления"

когда я делаю a svn status ., я получаю следующее:

!     C auto-complete-config.elc
      >   local edit, incoming delete upon update
!  +  C auto-complete.elc
      >   local edit, incoming delete upon update
!  +  C popup.elc
      >   local edit, incoming delete upon update
!  +  C fuzzy.elc
      >   local edit, incoming delete upon update

в основном, эти файлы не должны находиться в репозитории. Разработчик удалил их. Тогда, я думаю, что я сделал svn rm ... после факта по ошибке (должен был сделать svn update . вместо этого).

Итак, когда я делаю svn status ., я получаю эти сообщения конфликтов дерева.

Я нашел doc здесь, но не уверен, как "слить" его в соответствии с документом.

как избавиться от них?

Я думаю, что моя рабочая копия синхронизирована с репозиторием. Не знаю, почему эти сообщения показывают. Эти файлы должны быть удалены и удалены, насколько я знаю повсюду. Я пробовал svn update . и svn revert ., но я все еще получаю это сообщение, когда я делаю svn status ..

Ответ 1

Краткая версия:

$ svn st
!  +  C foo
      >   local edit, incoming delete upon update
!  +  C bar
      >   local edit, incoming delete upon update
$ touch foo bar
$ svn revert foo bar
$ rm foo bar

Если конфликт касается каталогов вместо файлов, замените touch на mkdir и rm на rm -r.


Примечание. Эта же процедура также работает для следующей ситуации:

$ svn st
!     C foo
      >   local delete, incoming delete upon update
!     C bar
      >   local delete, incoming delete upon update

Длинная версия:

Это происходит, когда вы редактируете файл, а кто-то еще удалял файл и сначала выполняли его. Как хороший гражданин svn, вы делаете обновление перед фиксацией. Теперь у вас конфликт. Осознание того, что удаление файла - это правильная вещь для удаления файла из рабочей копии. Вместо содержания svn теперь жалуется, что локальные файлы отсутствуют, и что существует противоречивое обновление, которое в конечном итоге хочет, чтобы файлы были удалены. Хорошая работа svn.

Если svn resolve не работает, по какой-либо причине вы можете сделать следующее:

Исходная ситуация: отсутствуют локальные файлы, обновление конфликтует.

$ svn st
!  +  C foo
      >   local edit, incoming delete upon update
!  +  C bar
      >   local edit, incoming delete upon update

Восстановить конфликтующие файлы:

$ touch foo bar

Если конфликт касается каталогов, замените touch на mkdir.

Новая ситуация: локальные файлы, которые будут добавлены в репозиторий (да, да, svn, что бы вы ни говорили), обновление все еще противоречиво.

$ svn st
A  +  C foo
      >   local edit, incoming delete upon update
A  +  C bar
      >   local edit, incoming delete upon update

Вернуть файлы в состояние svn им нравится (это означает, что они удалены):

$ svn revert foo bar

Новая ситуация: Локальные файлы, неизвестные svn, не перестают противоречить.

$ svn st
?       foo
?       bar

Теперь мы можем удалить файлы:

$ rm foo bar

Если конфликт касается каталогов, замените rm на rm -r.

svn больше не жалуется:

$ svn st

Готово.

Ответ 2

Попробуйте разрешить конфликт, используя

svn resolve --accept=working PATH

Ответ 3

У меня появилась такая же проблема, и я обнаружил, что

$ svn revert foo bar

решил проблему.

svn solution не работает для меня:

$ svn st
!  +  C foo
      >   local edit, incoming delete upon update
!  +  C bar
      >   local edit, incoming delete upon update

$ svn resolve --accept working
svn: Try 'svn help' for more info
svn: Not enough arguments provided

$ svn resolve --accept working .

$ svn st
!  +  C foo
      >   local edit, incoming delete upon update
!  +  C bar
      >   local edit, incoming delete upon update

$ svn resolve --accept working foo
Resolved conflicted state of 'foo'

$ svn st
!  +    foo
!  +  C bar
      >   local edit, incoming delete upon update

Ответ 4

Если вы не внесли никаких изменений внутри конфликтуемого каталога, вы также можете rm -rf conflicts_in_here/, а затем svn up. Это работало для меня как минимум.

Ответ 5

Итак, вы можете просто вернуть удаленный файл, но помните: если вы работаете над проектом любого типа с заданным файлом проекта (например, iOS), то возврат файла добавит его в структуру системных папок, но не ваш проект файловая структура. дополнительные шаги могут потребоваться, если вы в этом случае