Я написал инструмент развертывания для своих собственных программ на основе SQL и Subversion.Как я могу «svn удалить» папку, а затем добавить папку с тем же именем?
Я могу создавать различные версии приложений и хранить их с помощью Subversion, в то время как информация для них хранится в SQL.
До тех пор, пока мой «инструмент развертывания» не работал, но теперь я нашел проблему.
При создании версии приложения я проверяю ревизию головы и визуализирую ее в своей программе. Последняя версия может быть отредактирована путем удаления, переименования, добавления или перезаписи файлов и папок.
Скажем, если я иметь следующую структуру дерева в моей рабочей копии:
- ProgramFiles
- Assemblies
- Data
- Type 1
- ...
- Type 2
- ...
- Type 3
- ...
Я хочу, чтобы заменить один каталог (Data). Это вызывает svn delete и после этого Directory.Delete, потому что «svn delete» просто отмечает папки для удаления, когда вы совершаете фиксацию. Теперь я хочу снова добавить папку с именем «Данные» с новыми вложенными папками и файлами, но затем я получаю исключение «Отсутствует область управления рабочей копией». Насколько я могу судить, проблема в том, что каталог .svn в ProgramFiles хранит информацию о том, что папка Data будет удалена, если я прочитаю эту папку, она сработает.
Я также знаю, что я могу зафиксировать перед добавлением папки, но это увеличит мой номер версии с помощью «нестойкой версии».
Как я могу решить эту проблему?
У вас такая же проблема, что и в подпапках, если имя одной подпапки равно одной удаленной вложенной папке –
@Robin: ooh, nasty. Не беспокойся в таком случае. –