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 разрешено ім'я файла] робити це замість прийнятого рішення.
Травіс Шнебергер

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

svn resolved * ім'я файлу * не виправляє його.
reinierpost

Відповіді:


447

Дайте таку команду:

svn resolved <filename or directory that gives trouble>

(Дякую @Jeremy Leipzig за цю відповідь у коментарі)


35
Серйозно, якщо вам все одно, як це вирішено (можливо, ви все одно просто видалите), це правильна відповідь.
перевернутапоказувати

1
Це нічого не вирішує. Помилка, ймовірно, з’явиться знову при наступному фіксації.
Тадей

Велике спасибі, це працює для мене! Ви повинні у вашому svn root repo, ви можете використовувати цю команду!
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


Якщо ви працюєте з IDE Eclipse, ви також можете застосувати моє рішення "не командний рядок", яке я описав в окремій відповіді нижче.
Пітер Віпперман

3
використовуючи svn 1.7.4, довідка svn дозволена, стверджує, що вона "застаріла на користь запуску" svn resolution - accept working "."
wreckgar23

35

Для мене лише проблема повернення --depth нескінченна фіксована директорія Svn залишається проблемою confict:

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

1
щоб повернути цілий каталог файлів або файл вже не існує
biology.info

Щоб вирішити конфлікт локально видалених файлів, який існує на сервері, ця опція спрацювала ..
Нео,

1
Дуже дякую. "svn revert - поглиблення нескінченності." працював над мною і відновлював видалені файли, які не з’являлися знову лише зі "svn up"
Rauli Rajande

16
  1. svn вирішувати
  2. svn очищення
  3. оновлення svn

..це три команди CLN CLI у цій послідовності, тоді як cd-ed у правильній директорії працював на мене.


@Elad Tabak: У моєму випадку я мусив це зробити у батьківській директорії файлу, що викликає у мене проблеми, це може бути те, що ви зіткнулися
Jay Sullivan

11

Якщо ви використовуєте IDE Eclipse і натрапляєте на цю помилку під час вчинення, ось вам вбудоване рішення. Я використовую Subclipse, але рішення для Subversive могло бути подібним.

Можливо, ви не помітили, що на конфліктному файлі є додатковий символ, який позначає файл як "конфліктний".

Клацніть правою кнопкою миші на файл, виберіть "Команда" та "Редагувати конфлікти ...". Виберіть відповідну дію. Раніше я об'єднав файл вручну на рівні тексту, тому я взяв перший варіант, який сприйме поточний стан вашої локальної копії як "вирішене рішення". Тепер натисніть "ОК", і все.

Конфліктуючий символ мав би зникнути, і ви зможете здійснити знову.


2
Також у випадку конфлікту з каталогами ви можете зробити "Команда-> Показати конфлікти дерев", а потім переглянути всі ці конфлікти та позначити їх як вирішені (в окремому вікні "Конфлікти дерев SVN")
altumano

6

Ще одне рішення нижче,

Якщо вся папка буде видалена і SVNis видає помилку "адмін-файл .svn відсутній", для вирішення конфлікту в робочому стані буде використано наступне.

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

3

Інструкція до черепахи SVN

Перейдіть до каталогу, де ви бачите цю помилку. Якщо у вас немає змін, виконайте наступне

а. Клацніть правою кнопкою миші та зробіть "Повернути"
b. Виберіть усі файли
c. Потім оновіть каталог ще раз


3

Я використовую наступну команду для усунення конфлікту за допомогою командного рядка

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

для повернення поточного каталогу

svn revert . -R

Ха-ха-ха, не робіть цього. Це зробить погані речі.
Сова

Це, очевидно, скасує ваші зміни
Ujjwal Roy

він насправді працює для таких проблем, як конфлікт, і вирішити його можна лише через cli
zero8

2

Якщо у вас виникли проблеми з вирішенням (як я), і ви не можете видалити та оновити ресурси, тому що ви внесли багато змін до них, плюс ви використовуєте підривний затемнення замість рідного клієнта, виконайте наступні дії:

  1. зробіть копію всього свого проекту
  2. виконайте команду> відключіться під час eclipse та виберіть видалення 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: ~ / formProject_SVN $ svn вирішені формиProj / шаблони / пошук

Вирішено конфліктний стан 'formProj / шаблони / пошук'

Тепер оновіть свій проект

xyz @ ip: ~ / formProject_SVN $ svn оновлення

Оновлення ".":

Виберіть: (mc) зберегти локальні ходи, які впливають на вплив, (r) позначку вирішено (перерви рухається), (p) відкладіть, (q) вийдіть з дозволу, (h) help: r (виберіть варіант "r" для вирішення)

Вирішено конфліктний стан 'formProj / шаблони / пошук'

Підсумок конфліктів: конфлікти з дерева: залишилось 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.