Замена каталога на копию другого каталога в Subversion - PullRequest
3 голосов
/ 22 марта 2011

Допустим, у нас есть следующие две директории в репозитории:

currentproduction
development

И я хочу:

  1. Переименовать currentproduction, например, archivedproduction.
  2. Копировать редакцию 1234 из development как (новую) currentproduction.

Когда я делаю

svn ren currentproduction archivedproduction
svn copy -r 1234 development currentproduction

Subversion пытается скопировать development в (в) currentproduction (который уже запланирован для удаления):

A    currentproduction\development\file1.txt
A    currentproduction\development\file2.txt
Updated to revision 1234.
svn: Can't add 'currentproduction\development' to a parent directory scheduled for deletion

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

svn ren currentproduction archivedproduction
svn commit
svn copy -r 1234 development currentproduction

, но это не очень хорошо ... Разве нет способа сказать Subversion, что я хочу заменить каталогс другим?

Ответы [ 3 ]

1 голос
/ 22 марта 2011

Вместо копирования вы можете объединить development с currentproduction из нужной вам ревизии. Таким образом, вы будете иметь только то, что изменилось в вашем коммите.

Если вы создали currentproduction с копией development, вам потребуется объединить ревизию, которой нет в ветвях currentproduction.

Я советую вам вести учет каждой ревизии, слитой с вашими ветвями currentproduction (если версия сервера не превышает 1.5). Никогда не следует объединять две ревизии дважды, поскольку это может рассматриваться как конфликт.

// Know to which version a branche was created (XX)
svn log --stop-on-copy
svn merge -r XX:1234 development currentproduction

Я бы также предложил вам использовать setup для вашего хранилища.

Удачи.

0 голосов
/ 08 ноября 2011

Я просто зашел в скрытую папку .svn, содержащуюся в удаленной папке, удалил ее, затем перезапустил свое рабочее пространство (я использую AhnkSVN в M $ VisualStudio) и без проблем зафиксировал файл в ранее удаленной папке.

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

0 голосов
/ 22 марта 2011

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

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