SVN переключается на ветку, которая старше, чем рабочая копия - PullRequest
1 голос
/ 30 июня 2011

Я внес изменения в свою рабочую копию ствола.Затем я хотел переключиться на другую ветку, чтобы я мог выполнить ее.Я сделал, и теперь мой проект беспорядок.Ветвь, на которую я переключился, была позади ствола и отсутствовала файлы, в которые я внес изменения.Разочарованный, я переключился обратно на транк.

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

Другая проблема - я вернул (и удалил) одну из папок, в которой была такаяконфликт деревьев.Итак, теперь я вижу, что папка существует в хранилище, но она ушла из моего локального проекта, и обновление НЕ переносит ее в мою рабочую копию.Что тут происходит?1. Он существует в репозитории, 2. он НЕ существует в моей рабочей копии, потому что я только что удалил его, и 3. обновление НЕ переносит его в мою рабочую копию.Почему это?

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

Вот что дает мне затмение для одного из конфликтов дерева,это было локальное изменение файла, которого не было в ветке, на которую я переключился.Я предполагаю, что хотел удалить файл, когда я переключился, потому что его не было в ветке.Так как мне это исправить сейчас?На самом деле я хочу добавить его в ветку и зафиксировать мои изменения, но я не могу, потому что сейчас есть конфликт!

Resolve Tree Conflict on my_jsp.jsp
Conflict Description:
local edit, incoming delete upon switch
Source left: (file) https://......./WebContent/WEB-INF/jsp/my_jsp.jsp@349
Source right: (none) https://......./WebContent/WEB-INF/jsp/my_jsp.jsp@353

Единственные варианты, которые он мне дает, это отменить, удалить или сравнитьВсе это недопустимо.У меня много локальных изменений!

1 Ответ

1 голос
/ 30 июня 2011

Для вашей первой проблемы:

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

svn diff > ~/patch.diff
svn switch svn://path/to/trunk
patch -p0 < ~/patch.diff

Это должно вернуть вас более или менее туда, где вы были (надеюсь). Если вы не используете Linux, в Eclipse или SVNTortoise должны быть похожие команды. Если вы хотите перейти в новую ветку, сделайте diff еще раз, чтобы быть в безопасности. Возможно, вам придется внести изменения вручную, если они действительно сильно отстают, или сначала объединить ветку с транком (если это вариант).

Для вашей второй проблемы:

Я думаю, что видел нечто подобное, но я не помню, в чем была проблема. Вы пытались svn up <file_name> просто обновить отсутствующий файл?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...