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



когда я делаю 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 status ., Я получаю эти сообщения о конфликте дерева.



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



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



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

567   7  
svn

7 ответов:

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

$ 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 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

сделано.

попытаться разрешить конфликт с помощью

svn resolve --accept=working PATH

Я только что получил эту же проблему, и я нашел, что

$ svn revert foo bar

решена проблема.

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

$ 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

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

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

вы можете принудительно вернуть свой локальный каталог в svn.

 svn revert -R your_local_path

эта проблема часто возникает, когда мы пытаемся слияние другая ветвь изменяется из неправильного каталога.

пример:

Branch2\Branch1_SubDir$ svn merge -rStart:End Branch1
         ^^^^^^^^^^^^
   Merging at wrong location

конфликт, который бросается на его выполнение:

Tree conflict on 'Branch1_SubDir'
   > local missing or deleted or moved away, incoming dir edit upon merge

и когда вы выберите q до выйти из разрешения, вы получаете статус:

 M      .
!     C Branch1_SubDir
      >   local missing or deleted or moved away, incoming dir edit upon merge
!     C Branch1_AnotherSubDir
      >   local missing or deleted or moved away, incoming dir edit upon merge

что явно означает, что слияние содержит изменения, связанные с Branch1_SubDir и Branch1_AnotherSubDir, и эти папки не удалось найти внутри Branch1_SubDir(очевидно, что каталог не может быть внутри себя).

Как избежать этой проблемы на первом месте:

Branch2$ svn merge -rStart:End Branch1
 ^^^^
Merging at root location

The простое исправление для этого вопроса, который работал для меня:

svn revert -R .

Comments

    Ничего не найдено.