Как мне исправить “Сбой фиксации.Файл xxx устарел.xxx путь не найден ”.
Вопрос
Недавно я столкнулся с особенно сложной проблемой, связанной с фиксацией результата слияния в subversion.Наш сервер 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.Мы усвоили наш урок и теперь знаем лучшие практики.Однако сначала нам нужно объединить и зафиксировать нашу последнюю ветку.
Каков наилучший способ исправить проблемы, с которыми мы сталкиваемся?
Было бы ли удаление всей информации о слиянии в магистрали и ветке жизнеспособным решением?Нет.Я сделал это, но это не устраняет ошибку, которую я получаю выше.
Решение
У меня была та же проблема сегодня, и я не делал промежуточных слияний, поэтому из вашего вступительного поста может подойти только # 1 - однако я сделал коммиты как из svn-клиента в ubuntu, так и из tortoisesvn в windows. К счастью, в моем случае не было никаких изменений в стволе, поэтому я мог просто заменить ствол на ветку. Возможно разные версии SVN тогда? Это очень беспокоит.
Если вы используете функции svn move / copy / delete, хотя в моем случае история не теряется - я svn переместил ствол, а затем svn переместил ветку в ствол.
Другие советы
У меня просто была эта проблема, и причина, казалось, была в том, что каталог был помечен как конфликтующий. Чтобы исправить:
svn update
svn resolved <the directory in conflict>
svn commit
Я получал это на сервере 1.6.2, черепаха 1.6.8. Все в Windows, нет слияния в этой ветке.
Я переименовал каталог, и каким-то образом (возможно, из-за AnkhSVN) два файла в каталоге были помечены как " заменены " а не "нормальный". В другие файлы в каталоге были внесены некоторые незначительные изменения.
Возврат файлов, помеченных как замененные, устранил проблему.
У меня тоже была такая же проблема, и я решил ее следующим способом
svn resolve --accept=working <FILE/FOLDER NAME>
svn cleanup
svn update <FILE/FOLDER NAME>
svn commit <FILE/FOLDER NAME> -m "Comment"
Надеюсь, это поможет вам:)
У меня была такая же проблема при попытке зафиксировать мою рабочую копию. Я добавил папку, которую Subversion сообщает как «путь не найден». в список игнорируемых. Фиксация (должна быть успешной). Затем добавьте эту же папку обратно в Subversion. Подтвердите еще раз.
У меня только что была похожая проблема, но без какого-либо ветвления или слияния, которые могли бы вызвать проблему.Мой обходной путь состоял в том, чтобы:
- svn экспортирует мою рабочую папку (включая неверсированные файлы) во временную папку.
- переименуйте рабочую папку в резервную копию.
- svn проверяет магистраль.
- скопируйте всю папку из временной папки экспорта поверх новой рабочей папки.
- svn фиксирует.
Теперь, кажется, все в порядке.
Я знаю, что это старый пост, но эта проблема все еще встречается довольно часто. Самый простой способ, который я нашел, - это переименовать / удалить файл .svn / all-wcprops в уязвимой папке, затем запустить обновление и зафиксировать.
У меня была та же проблема, не знаю, в чем причина, но я исправил ее, набрав в терминале
svn update
а потом я фиксирую и бум это работает!
О, мальчик! Это выглядит плохо! Единственный вариант, о котором я могу подумать, это то, что рабочая копия повреждена.
Попробуйте удалить рабочую копию, выполнить новую проверку и снова выполнить объединение.
Если это не сработает, зарегистрируйте ошибку.
Мне не удалось найти удовлетворительное решение этой проблемы; Однако я нашел неудовлетворительное решение.
Я удалил все файлы в транке и зафиксировал эти изменения. Затем я экспортировал свой код ветки в ствол, добавил все файлы и сделал большой коммит. Это имело эффект того, что мой ствол имитировал мою ветку 1: 1 (что я и так хотел).
К сожалению, это создает большой разрыв, поскольку история всех файлов теперь "потеряна". Но из-за нехватки времени не было никакой другой возможности.
Я по-прежнему буду интересоваться любыми ответами, которые могут быть у других, поскольку я хотел бы знать, какова была основная причина и как ее избежать в будущем.
У меня была такая же проблема после слияния ветки с кучей изменений обратно в мой ствол. Единственные два решения, которые я видел, - это решение svn move, предлагаемое Pacifika , или ручное объединение файлов с помощью инструмента diff , Но я нашел обходной путь ...
На машине, которая не работала, был запущен клиент Subversion 1.6.5. Я делал то же самое на машине с Subversion 1.5.4, и она работала ! На обеих машинах я сделал 1) чистую проверку ствола, 2) svn merge ... и 3) svn commit. Мой сервер стоит 1.5.x, что стоит.
Надеюсь, это кому-нибудь поможет.
Была аналогичная проблема с SVN 1.6.5 на Mac 10.6.5, обновлен до SVN 1.6.9, и фиксация прошла успешно.
У меня была такая же проблема, когда я попытался зафиксировать удаленный пакет (который содержит различные классы java, но ничего из пакета больше не было нужно).
Мое решение / обходной путь для устранения проблемы:
- Я перевернул весь пакет
- сначала удалил содержимое
- отправил удаленный контент
- наконец я снова отправил удаленный пакет (и это сработало в большинстве случаев :-))
Однако время от времени не удавалось зафиксировать удаленный пакет (который ничего не содержит).
Мой обходной путь:
- Я создал фиктивный класс в пакете
- и после этого я повторил шаги, упомянутые выше
Мой последний намек...
Но иногда помогает просто синхронизировать пакет / проект еще раз, и после этого все снова работает отлично.
О моей конфигурации:
- Неоновое Затмение
- Интерфейс SVN:JavaHL (JNI) 1.8.13 (r1667537)
- VisualSVN Server Manager, Версия:3.3.1
Может быть, я мог бы помочь кому-нибудь одним из своих советов.
Мне кажется, я видел нечто похожее, когда папки перемещались на сервер, но рабочие копии все еще были связаны со старой структурой папок SVN. Не уверен, что кто-то переместил вещи в вашем стволе, прежде чем у вас была возможность слить ветку.
Это возможно?
Это похоже на проблему с выходом свойства svn: mergeinfo
из раздела между веткой и транком. Р>
Что приводит к следующим вопросам (простите мои инструкции из командной строки, так как я часто использую черепаху):
<Ол>Вы объединяетесь на уровне корневого ствола или на уровне подпапок? По моему опыту, это всегда лучше делать на корневом уровне, таким образом весь ствол думает, что он был объединен, а не просто частью (это, кажется, сильно запутывает 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 >
Затем вам нужно зафиксировать эти изменения
Как только вы закончите, попробуйте снова объединиться. Р>
Я сомневаюсь в этом, но, возможно, запуск очистки svn в вашем рабочем каталоге поможет.
Я столкнулся с той же проблемой, поднял голову и обнаружил, что я изменил каталог в хранилище с " / " в "/ trunk" и забыл сделать " Переключить " команда, в TortoiseSVN!
Ого, этот вопрос занял у меня некоторое время, так как я использовал SVN через Eclipse. В конце концов, единственное, что сработало для меня, это зафиксировать все незатронутые файлы, затем (с закрытым Eclipse) переименовать каталог проекта и повторно проверить проект из SVN. Рад, что теперь он работает правильно!
Очевидно, SVN - не очень надежная программа.У меня была такая же проблема (использование SVN с Turtoise), и я решил ее, сохранив содержимое файла .cs, а затем вернувшись на 1 ревизию.Это показало конфликты, подобные этому:"<<<<<<< имя файла моих изменений
======= код, объединенный из репозитория доработка "
пока я не сделал ничего особенного (просто один раз вернул ревизию).
Я заменил содержимое этого файла сохраненным содержимым, сохранил, а затем выбрал через TortoiseSVN → Решенный.Затем я мог бы внести изменения в репозиторий.
Спасибо Джейми Баллоку за эту работу для меня
Согласно Джейми Баллоку,
У меня просто была эта проблема, и причина, казалось, была в том, что каталог был помечен как конфликтующий. Чтобы исправить:
<Ол>