Ошибка команды ветвь коммутатора SVN Tortoise - "Не имеет общего происхождения"

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

Вот как создается хранилище, глядя на него с веб-сайта хоста. Раньше у меня была ветка bugfix-obby-quirks, но она была удалена после объединения с транком. Эта и новые карты оппонентов в игре были разветвлены от ствола.

Теперь я хочу взять мою извлеченную рабочую копию, "переключенную" из удаленной ветви в эту новую. У меня уже есть ветка bugfix-obby-quirks на моем компьютере, так как я просто работал над ней. Что я хочу сделать, так это переключить все в этой папке на все в новой ветке, которую я выберу, и это хорошо, так как на самом деле они не такие уж и разные. Вот что означает svn switch, верно?

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

К сожалению, это приводит к этому сообщению об ошибке каждый раз.

Это не счастливый день. Это грустный день.

Хорошо. Так что я делаю не так?

3 ответа

Установите флажок "игнорировать происхождение" в диалоговом окне переключателя svn.

Вы можете получить это, потому что вы пытались переключить одну из ваших подпапок вместо того, чтобы делать папку верхнего уровня. То есть вы пытались переключить только папку trunk/application вместо trunk.

Возможно, вы сможете переключить удаленную ветку на активную ветку. Для Subversion эта ветка больше не существует. (А так как он не существует, он не имеет общего происхождения).

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

Если это не сработает, вам придется восстановить свою ветку. Это не сложно из командной строки. Допустим, ваша ветка была удалена в ревизии 12345:

$ svn co --set-depth=immediates $URL/branches   # Checks out just branch names
$ cd branches
$ svn merge -c -12345 .                         # Removes branch delete

--set-depth=immediates проверяет все ваши филиалы, но не проверяет проекты под ними. Это будет довольно быстрая проверка и даст вам рабочий каталог вашего /branches каталог. Теперь вы можете выполнить обратное слияние удаления и восстановить ветку.

Если вы не хотите делать проверку и объединить, вы можете сделать svn cp где вы копируете ветку из ревизии до ее удаления в текущую ревизию:

$ svn cp -r12344 $URL/branches/features_in_opponents_cards@12344 $URL/branches

Это позволит вам восстановить ветку без предварительной проверки.

Другие вопросы по тегам