Как разрешить "локальное редактирование, входящее удаление после обновления"
когда я делаю 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), то возврат файла добавит его в структуру системных папок, но не ваш проект файловая структура. дополнительные шаги могут потребоваться, если вы в этом случае