Подтвердить что ты не робот

Как исправить ошибку "Commit Failed". Файл xxx устарел. Xxx path не найден ".

Недавно я столкнулся с особенно липкой проблемой, связанной с получением результата слияния в подрывной деятельности. Наш сервер Subversion - @1.5.0, и мой клиент TortoiseSVN теперь @1.6.1.

Я пытаюсь объединить ветвь функции обратно в мой сундук. Слияние, похоже, работает нормально; однако коммит не выполняется со следующим сообщением об ошибке.

Commit failed (details follow):
File 
'flex/src/com/penbay/invision/portal/services/http/soap/ReportServices/GetAllBldgsParamsByRegionBySiteResultEvent.as' 
is out of date
'/svn/ibis/!svn/wrk/531d459d-80fa-ea46-bfb4-940d79ee6d2e/visualization/trunk/source/flex/src/com/penbay/invision/portal/services/http/soap/ReportServices/GetAllBldgsParamsByRegionBySiteResultEvent.as' 
path not found
You have to update your working copy first.

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

  • У нас были некоторые разработчики, совершающие работу с клиентом subversion до 1,5 и после. Я считаю, что это может привести к повреждению информации о слиянии.
  • В других ветвях мы выполнили частичные слияния. То есть мы не всегда выполняли слияния в корне ветки. Это должно было облегчить обновление усилий Flex и .NET в одной ветке.
  • Мы выполнили циклические (рефлексивные) слияния на нашей ветке. Это было сделано, потому что у нас было несколько параллельных ветвей, и мы хотели периодически обновлять нашу ветвь с последним кодом в trunk.

Все эти вещи явно не рекомендуются книгой/командой Subversion. Мы изучили наш урок и теперь знаем лучшие практики. Однако сначала нам нужно объединить и перенести нашу последнюю ветвь.

Каков наилучший способ исправить проблемы, с которыми мы сталкиваемся?

Будет ли удаление всей информации о слиянии в магистрали и ветке жизнеспособным решением? Нет. Я сделал это, но он не разрешает ошибку, которую я получаю выше.

4b9b3361

Ответ 1

У меня была такая же проблема сегодня, и я не делал промежуточных слияний, поэтому из вашего вступительного сообщения можно было применить только # 1, однако я сделал фиксацию как с svn-клиента в ubuntu, так и с чередованием в окнах. К счастью, в моем случае никаких изменений в багажнике не было, поэтому я мог просто заменить багажник веткой. Возможно, разные версии svn? Это довольно тревожно.

Если вы используете функции svn move/copy/delete, хотя в моем случае история не потеряна - я svn переместил туловище, а затем svn переместил ветвь в магистраль.

Ответ 2

У меня просто была эта проблема, и причина заключалась в том, что каталог был помечен как конфликтный. Исправить:

svn update
svn resolved <the directory in conflict>
svn commit

Ответ 3

Я получал это на сервере 1.6.2, 1.6.8 черепахи. Все в Windows не объединяются в эту ветку.

Я переименовал каталог и каким-то образом (возможно, из-за AnkhSVN) два файла в каталоге помечены как "замененные", а не "нормальные". Были внесены некоторые незначительные изменения в другие файлы в каталоге.

Возврат файлов, отмеченных как замененных, устраняет проблему.

Ответ 4

У меня была такая же проблема, пытаясь зафиксировать мою рабочую копию. То, что я сделал, это добавить папку, в которой Subversion будет отображаться как "путь не найден" в списке игнорирования. Commit (должен преуспеть). Затем добавьте ту же папку обратно в Subversion. Повторите попытку.

Ответ 5

У меня была аналогичная проблема, но без разветвления или слияния, чтобы вызвать проблему. Мое обходное решение заключалось в следующем:

  • svn экспортирует мою рабочую папку (включая неверсифицированные файлы) в временную папку.
  • переименуйте рабочую папку в резервную копию.
  • svn проверить багажник.
  • скопируйте всю папку из папки экспорта temp поверх новой рабочей папки.
  • svn commit.

Теперь все кажется прекрасным.

Ответ 6

У меня также была та же проблема, и я решил это следующим образом:

svn resolve --accept=working <FILE/FOLDER NAME>
svn cleanup
svn update <FILE/FOLDER NAME>
svn commit <FILE/FOLDER NAME> -m "Comment"

Надеюсь, это поможет вам:)

Ответ 7

Я знаю, что это старый пост, но эта проблема все еще встречается довольно часто. Самый простой способ найти это - переименовать/удалить файл .svn/all-wcprops в затронутой папке, затем запустить обновление и зафиксировать.

Ответ 8

О, мальчик! Это выглядит плохо! Единственный вариант, о котором я могу думать, это то, что рабочая копия повреждена.

Попробуйте удалить рабочую копию, выполнить новую проверку и снова выполнить слияние.

Если это не сработает, запишите ошибку.

Ответ 9

Я не смог найти удовлетворительное решение этой проблемы; однако я нашел неудовлетворительное решение.

Я удалил все файлы внутри туловища и совершил эти изменения. Затем я экспортировал код ветки в соединительную линию, добавил все файлы и сделал большую фиксацию. Это повлияло на мой сундук, подражая моей ветке 1:1 (чего я и хотел).

К сожалению, это создает большой разрыв, так как история всех файлов теперь "потеряна". Но из-за ограничений по времени, похоже, не было другого варианта.

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

Ответ 10

У меня была такая же проблема после слияния ветки с тоннами изменений обратно в мой багажник. Единственные два решения, которые я мог увидеть, - это сделать решение svn move, предлагаемое Pacifika, или вручную слить файлы с помощью инструмента diff. Но я нашел обходное решение...

На машине, которая не работала, был запущен клиент Subversion 1.6.5. Я сделал то же самое на машине с Subversion 1.5.4 и работал! На обеих машинах я сделал 1) чистую проверку багажника, 2) svn merge... и 3) svn commit. Мой сервер равен 1.5.x для того, что стоит.

Надеюсь, это поможет кому-то.

Ответ 11

Была аналогичная проблема с SVN 1.6.5 на Mac 10.6.5, обновлена ​​до SVN 1.6.9, и фиксация выполнена успешно.

Ответ 12

Я думаю, что я видел что-то подобное, когда папки были перемещены на сервере, но рабочие копии все еще привязаны к старой структуре папок SVN. Не уверен, что кто-то переместил вещи в вашем багажнике, прежде чем у вас была возможность объединить ветку.

Возможно ли это?

Ответ 13

Это выглядит как проблема с свойством svn:mergeinfo, выходящим из wack между ветвью и стволом.

Это приводит к следующим вопросам (прошу простить мои инструкции в командной строке, поскольку я много использовал черепаху):

  • Собираетесь ли вы на уровне корневой линии или уровне подпапки? По моему опыту, всегда лучше всего делать на корневом уровне, так что весь багажник считает, что он был объединен, а не просто частью (это, похоже, сильно смущает svn в 1.5.0)

  • Мой следующий вопрос: используете ли вы параметр --reintergrate? Я не могу вспомнить, как это сделать в черепахе, но когда вы возвращаетесь к стволу из ветки, вы должны использовать этот параметр.

  • Вы объединили багажник в ветку до того, как вы реинтегрировали? Это может помочь устранить конфликты, которые вы можете увидеть при слиянии?

  • У вас есть какие-либо свойства svn:mergeinfo на ветке, которые не находятся на корневом уровне? Это я всегда вызывал проблемы. Вы всегда можете найти это, перейдя в svn -R pg svn:mergeinfo. Затем вы можете записать местоположения и ревизии, которые были ниже корня, если вы найдете их релевантными, а затем переместите их в корневой каталог svn merge --record-only -r start:end <location>, а затем удалите их из корневых сайтов с помощью svn pd svn:mergeinfo <location>. Затем вам необходимо зафиксировать эти изменения

  • После того, как вы все это сделаете, попробуйте снова слить.

Ответ 14

Я сомневаюсь, но, возможно, работает svn cleanup в вашем рабочем каталоге.

Ответ 15

Я столкнулся с той же проблемой, взломал голову и обнаружил, что я изменил каталог в репрезентации от "/" до "/trunk" и забыл сделать команду "Switch" в TortoiseSVN!

Ответ 16

Вау, мне это заняло некоторое время, потому что я использовал SVN через Eclipse. В конце концов, единственное, что сработало для меня, - это зафиксировать все незатронутые файлы, затем (с закрытым Eclipse) переименуйте каталог проекта и переустановите проект из SVN. Рад, что он работает правильно!

Ответ 17

По-видимому, SVN не очень надежная программа. У меня была такая же проблема (с использованием SVN с Turtoise), и она была решена путем сохранения содержимого файла .cs, а затем возврата 1 версии. Это показало такие конфликты: "< < < < < < < < filename мои изменения

=======   код, объединенный из репозитория ревизия "

в то время как я не сделал ничего особенного (только один раз вернул ревизию).

Я заменил содержимое этого файла сохраненным контентом, сохраненным, а затем выбрал через TortoiseSVN → Resolved. Затем я мог бы внести изменения в репозиторий.

Ответ 18

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

Мое решение/обходное решение для устранения проблемы:

  • Я вернул весь пакет
  • сначала удалил содержимое.
  • отправил удаленный контент
  • Наконец, я снова отправил удаленный пакет (и он работал в большинстве случаев: -))

Однако время от времени было невозможно зафиксировать удаленный пакет (который ничего не содержит)

Мое обходное решение:

  • Я создал в пакете фиктивный класс
  • и после этого я повторил описанные выше шаги

Мой последний намек...

Но иногда это помогает просто синхронизировать пакет/проект еще раз, и после этого все отлично работает снова.



О моей конфигурации:

  • Eclipse Neon
  • Интерфейс SVN: JavaHL (JNI) 1.8.13 (r1667537)
  • VisualSVN Server Manager, версия: 3.3.1



Может быть, я могу помочь кому-то с одним из моих намеков.

Ответ 19

У меня была такая же проблема, не знаю, в чем причина этого, но я исправил, набрав терминал

svn update

а затем я совершаю и бум сработает!