SVN остается в конфликте?


284

Как мне вывести этот каталог из конфликта? Мне все равно, если это решается с использованием "их" или "мое" или что-то еще ...

PS C:\Users\Mark\Desktop\myproject> svn ci -m "gr"
svn: Commit failed (details follow):
svn: Aborting commit: 'C:\Users\Mark\Desktop\myproject\addons' remains in conflict

PS C:\Users\Mark\Desktop\myproject> svn resolve --accept working C:\Users\Mark\Desktop\myproject\addons
Resolved conflicted state of 'C:\Users\Mark\Desktop\myproject\addons'

PS C:\Users\Mark\Desktop\myproject> svn ci -m "grr"
svn: Commit failed (details follow):
svn: Commit item 'addons' has copy flag but an invalid revision

PS C:\Users\Mark\Desktop\myproject> svn update
   C addons
svn: Can't move 'addons\debug_toolbar\templates\debug_toolbar\.svn\tmp\entries' to 'addons\debug_toolbar\templates\debug
_toolbar\.svn\entries': The file or directory is corrupted and unreadable.

PS C:\Users\Mark\Desktop\myproject> svn cleanup

PS C:\Users\Mark\Desktop\myproject> svn update
Skipped 'addons'
At revision 51.
Summary of conflicts:
  Skipped paths: 1

PS C:\Users\Mark\Desktop\myproject> svn ci -m "grrr"
svn: Commit failed (details follow):
svn: Aborting commit: 'C:\Users\Mark\Desktop\myproject\addons' remains in conflict

93
ответ: [svn resolved filename] делает это, а не принятое решение.
Трэвис Шнеебергер,

1
@TravisSchneeberger, принятое решение отлично 😉
Привет-Ангел

svn resolved * имя файла * не исправляет это для меня.
reinierpost

Ответы:


447

Дайте следующую команду:

svn resolved <filename or directory that gives trouble>

(Спасибо @Jeremy Leipzig за этот ответ в комментарии)


35
Серьезно, если вам все равно, как она решена (может быть, вы все равно собираетесь ее удалить), это правильный ответ.
invertedSpear

1
Это ничего не решает. Ошибка, вероятно, возникнет снова при следующем коммите.
Тадей

Большое спасибо, это работает для меня! Вы должны в своем репозитории SVN root, вы можете использовать эту команду!
GeekHades

276

Хорошо, вот как это исправить:

svn remove --force filename
svn resolve --accept=working  filename
svn commit

Более подробная информация на сайте: http://svnbook.red-bean.com/en/1.8/svn.tour.treeconflicts.html


Если вы работаете с Eclipse IDE, вы также можете применить мое решение «без командной строки», которое я описал в отдельном ответе ниже.
Питер Випперманн

3
используя svn 1.7.4, svn help resolved заявляет, что он «устарел в пользу запуска svn resolv --accept working».
wreckgar23

35

Для меня только отменить опцию --depth infinity исправлено, что каталог Svn остается в конфликте:

svn revert --depth infinity "<directory name>"
svn update "<directory name>"

1
восстановить весь каталог файлов или файл больше не существует
biology.info

Чтобы разрешить конфликт локально удаленных файлов, который существует на сервере, этот параметр работал ..
Neo

1
Большое спасибо. "SVN Revert - Глубина бесконечности." работал для меня и восстанавливал удаленные файлы, которые не появлялись снова только с «svn up»
Rauli Rajande

16
  1. SVN решить
  2. очистка svn
  3. SVN обновление

... эти три команды CLI SVN в этой последовательности, в то время как CD-ED в правильный каталог работал для меня.


@Elad Tabak: В моем случае мне пришлось сделать это с родительским каталогом файла, что доставило мне неприятности, возможно, это то, с чем вы столкнулись
Джей Салливан,

11

Если вы используете Eclipse IDE и натолкнулись на эту ошибку при фиксации, вот решение для вашего инструмента. Я использую Subclipse, но решение для Subversive может быть аналогичным.

Возможно, вы не заметили, что в конфликтующем файле есть дополнительный символ, который помечает файл как «конфликтующий».

Щелкните правой кнопкой мыши файл, выберите «Команда» и «Изменить конфликты ...». Выберите подходящее действие. Раньше я сливал файл вручную на текстовом уровне, поэтому я выбрал первый вариант, который примет текущее состояние вашей локальной копии как «решенное решение». Теперь нажмите «ОК» и все.

Конфликтующий символ должен был исчезнуть, и вы должны быть в состоянии зафиксировать снова.


2
Кроме того, в случае конфликта каталогов вы можете выполнить «Team-> Show Tree Conflicts», а затем просмотреть все эти конфликты и пометить их как разрешенные (в отдельном окне «SVN Tree Conflicts»)
altumano

6

Еще одно решение ниже,

Если вся папка удалена и SVN выдает ошибку «отсутствует файл администратора. SVN отсутствует», то для разрешения конфликта в рабочее состояние будет использовано следующее.

svn resolve --accept working "file / directory name "

3

Инструкция для черепахи СВН

Перейдите в каталог, где вы видите эту ошибку. Если у вас нет никаких изменений, выполните следующие действия.

а. Щелкните правой кнопкой мыши и выполните команду «Вернуть».
B. Выбрать все файлы
c. Затем обновите каталог снова


3

Я использую следующую команду, чтобы удалить конфликт с помощью командной строки

svn revert "location of conflict folder" -R
svn cleanup
svn update

для возврата текущего каталога

svn revert . -R

Хахахаха, нет, не делай этого. Это сделает плохие вещи.
Сова

Это, очевидно, отменит ваши изменения
Ujjwal Roy

на самом деле это работает для некоторых проблем, таких как конфликт, и может быть разрешено только через
cli

2

Если у вас есть проблемы с разрешением (как у меня), и вы не можете удалять и обновлять ресурсы, потому что вы внесли в них много изменений, плюс вы используете eclipse subversive вместо собственного клиента, выполните следующие действия:

  1. сделайте копию всего вашего проекта dir
  2. выполнить команду> отключиться в затмении и выбрать удаление метаданных SVN
  3. затем выберите команду> поделиться проектом и укажите ту же папку, в которой находится ваш проект
  4. выберите да и зафиксируйте все (вы можете исключить некоторые очень локальные ресурсы, такие как файлы конфигурации)
  5. Если вы удалили или переместили некоторые ресурсы до первой пробной фиксации, удалите эти старые ресурсы (они должны были бы удвоиться, один в старом местоположении, один в новом) и зафиксировать эти удаления.

Вы сделали


2

Я думаю, правильное решение:

(1) backup your-file/your-directory
(2) svn revert your-file/your-directory
(3) svn update your-file/your-directory
(4) Merge the backup your-file/your-directory to the updated one.
(5) svn ci -m "My work here is done"

0

У меня была похожая проблема, вот как она была решена

xyz @ ip: ~ / formsProject_SVN $ svn разрешен формыProj / templates / search

Устранено конфликтующее состояние «formsProj / templates / search»

Теперь обновите ваш проект

xyz @ ip: ~ / formsProject_SVN $ svn update

Обновление ".":

Выберите: (mc) сохранить затронутые локальные ходы, (r) разрешить метку (разбить ходы), (p) отложить, (q) выйти из разрешения, (h) help: r (выбрать опцию «r» для разрешения)

Устранено конфликтующее состояние «formsProj / templates / search»

Сводка конфликтов: конфликты деревьев: 0 осталось (и 1 уже решено)


0

У меня была та же проблема с Linux, но я не мог ее исправить с помощью принятого ответа. Я был в состоянии решить эту проблему с помощью, cdчтобы перейти к правильной папке, а затем выполнить:

svn remove --force filename  
syn resolve --accept=working filename  
svn up

Вот и все.


Во второй строке это svnне такsyn
Диего Ромеро Родригес
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.