У меня есть проект, исходный код которого контролируется с помощью Subversion и VisualSVN. Поскольку версия web.config отличается на сервере и на компьютерах разработчиков, я хочу, чтобы файл оставался на компьютерах, но игнорировался Subversion. Я добавил его в svn: ignore, но он все еще остается (и все еще имеет красный восклицательный знак, поскольку мы его не фиксируем).
Как я могу безопасно удалить его из Subversion, не удаляя его из файловой системы
Спасибо, Адин





svn rm --force web.config
svn commit
Будьте осторожны, сделайте резервную копию вашей локальной копии (web.config) перед этим, так как она будет удалена.
вам нужно будет выполнить операцию удаления и игнорирования
поскольку я использую tortoisesvn, я не могу сказать вам, какие команды svn вы должны использовать, но с использованием tortoisesvn это будет:
в моих проектах .net я включаю следующее исключение с svn: ignore: bin, obj, * .suo, * .user
В идеале вы также должны поддерживать версии серверной копии web.config в SVN. Обычно мы переименовываем рабочий файл web.config в web.config.prod (копия для каждой среды), а инструмент сборки выбирает нужный файл и переименовывает его обратно в web.config при упаковке для развертывания.
Какой инструмент сборки вы используете для этой модификации? Есть ли какая-то конкретная задача ccnet для таких модификаций web.config?
Я решил эту проблему, используя nant с ccnet. Следующий сценарий сборки nant заменяет файл web.test.config локальным файлом web.config;
<?xml version = "1.0"?>
<project name = "Project1" default = "build">
<target name = "init" depends = "clean" />
<target name = "clean" />
<target name = "checkout"/>
<target name = "compile"/>
<target name = "deploy"/>
<target name = "test"/>
<target name = "inspect"/>
<target name = "build" depends = "init, checkout">
<call target = "compile" />
<call target = "inspect" />
<call target = "test" />
<call target = "deploy" />
</target>
<copy file = "..\TestDeployments\Project1\Project1.Solution\Project1.Web.UI\web.Test.config"
tofile = "..\TestDeployments\Project1\Project1.Solution\Project1.Web.UI\web.config"
overwrite = "true"
/>
<delete file = "..\TestDeployments\Project1\Project1.Solution\Project1.Web.UI\web.Test.config" />
</project>
Мы выполняем развертывание следующим образом: 1. Зафиксируйте SVN на компьютере Dev 2. На сервере выполните «svn up filename»