it-swarm.com.ru

Как обновить ветку SVN, созданную с помощью svn-copy?

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

У меня есть несколько филиалов в моем репозитории SVN. Все разработчики получают доступ к своей личной ветке. Каждая ветка была сделана по копии из ветки бета.

svn copy  svn://192.168.0.2/svn/example/branches/beta
svn://192.168.0.2/svn/example/branches/dev/devN

Теперь, когда dev1 закончил работу, он объединил свою работу в бета-версии (pwd = ./beta/).

svn merge svn://192.168.0.2/svn/example/branches/dev/[email protected] .

Ну, мой вопрос, как другой разработчик может обновить свою ветку до последней беты с изменением dev1?

когда dev2 выполняет слияние (после того, как совершил свое собственное изменение | pwd = ./dev/dev2)

svn merge svn://192.168.0.2/svn/example/branches/[email protected] .

Он получил это сообщение:

svn: E195016: Merge tracking not allowed with missing subtrees; try restoring these items first:
pointing his files. -> impossible to merge.

Есть ли способ «обновить» копию ветки?

16
abenevaut

Это сообщение об ошибке появляется, когда кто-то удаляет что-то, не сообщая об этом Subversion. Если вы должны запустить svn status для этой рабочей копии, тот же путь, на который жалуется Subversion, должен отображаться с ! в первом столбце выходных данных. Обычно это означает, что кто-то использовал команду ОС для удаления путей, а не команду svn.

Если вы действительно хотите, чтобы пути были удалены, вы можете это исправить, сообщив об этом Subversion, выполнив команду svn rm. Пути будут показаны как удаленные с D в первом столбце вывода статуса, и ваше слияние должно продолжаться (хотя у вас могут быть конфликты деревьев).

Если вы хотите узнать подробности, смотрите выпуск # 2915 из проекта Subversion, который объясняет, почему было добавлено это сообщение об ошибке.

35
Ben Reser

Если вы работаете в Windows, а путь превышает 256 символов, Windows начнет раздражаться. Я обычно обхожу это путем создания рабочей области непосредственно в коротком каталоге в корневой файловой системе (например, C:\WRK). В этом случае путь будет намного короче, чем в каталоге C:\Users\user_name\Desktop \. После создания рабочего пространства я добавляю ярлык на рабочий стол для быстрого доступа.

1
Brian S. Wilson

Я получаю эту ошибку, и я только что сделал проверку с TortoiseSVN. Ничего не было удалено .. Я обнаружил, что в конце длинного пути был создан "общий" каталог, который не появляется, когда я иду в Repo-broswer. Если я удаляю родительский каталог и выполняю обновление, снова появляется «общий» каталог. В родительском каталоге также отображается красный X, который указывает, что TortoiseSVN считает, что что-то было удалено с помощью команды ОС, а не с помощью команды удаления SVN.

Я думаю, что где-то в коде есть ошибка. Я не знаю, связано ли это с длиной пути (проблема для Windows 7?) Или есть какая-то другая проблема, происходящая.

0
Brian S. Wilson