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
mpen
источник
93
ответ: [svn resolved filename] делает это, а не принятое решение.
Трэвис Шнеебергер,
1
@TravisSchneeberger, принятое решение отлично 😉
Привет-Ангел
svn resolved * имя файла * не исправляет это для меня.
reinierpost

Ответы:

447

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

svn resolved <filename or directory that gives trouble>

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

Roalt
источник
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>"
nine9five
источник
1
восстановить весь каталог файлов или файл больше не существует
biology.info
Чтобы разрешить конфликт локально удаленных файлов, который существует на сервере, этот параметр работал ..
Neo
1
Большое спасибо. "SVN Revert - Глубина бесконечности." работал для меня и восстанавливал удаленные файлы, которые не появлялись снова только с «svn up»
Rauli Rajande
16
  1. SVN решить
  2. очистка svn
  3. SVN обновление

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

PiggyMacPigPig
источник
@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. Затем обновите каталог снова

PipoTells
источник
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. Если вы удалили или переместили некоторые ресурсы до первой пробной фиксации, удалите эти старые ресурсы (они должны были бы удвоиться, один в старом местоположении, один в новом) и зафиксировать эти удаления.

Вы сделали

bekce
источник
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

Вот и все.

Aisuko
источник
Во второй строке это svnне такsyn
Диего Ромеро Родригес