xcopy ASP.NET развертывание проекта, управляемого Subversion - PullRequest
4 голосов
/ 22 октября 2008

В настоящее время я использую Subversion для управления моим веб-сайтом ASP.NET. Я обнаружил, что всякий раз, когда я отправляю свой веб-сайт на свой сервер, я копирую большое количество скрытых папок .svn и любое содержимое, которое может находиться внутри них.

У кого-нибудь есть предложения, как этого избежать? Я не особенно хочу, чтобы эти скрытые папки .svn на рабочем сервере, но если не считать удаления вручную каждой папки .svn перед загрузкой своего веб-сайта, я не знаю, как создать рабочую среду, свободную от .svn-folder. .


Редактировать: Спасибо всем, это отличные предложения, я действительно ценю это!

Ответы [ 4 ]

4 голосов
/ 22 октября 2008
  1. Вы должны использовать команду экспорта из Subversion.
  2. Вы можете настроить реестр и добавить «Удалить папки SVN» в контекстное меню для папок. Вот пример сценария из http://weblogs.asp.net/jgalloway/archive/2007/02/24/shell-command-remove-svn-folders.aspx Сохраните его в файл .reg и выполните.

Щелкните правой кнопкой мыши папку вашего проекта и рекурсивно удалите все папки .svn.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
@="Delete SVN Folders"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""
3 голосов
/ 22 октября 2008

два предложения:

  • Используйте robocopy или xcopy для фильтрации .svn папок
  • svn export хранилище для веб-сервера ( документы ). При экспорте не будут записываться никакие папки .svn

см. Также: Черепаха SVN скрытые папки SVN

2 голосов
/ 22 октября 2008

У меня есть шаг после сборки, который подготавливает чистую папку для перетаскивания как часть сборки проекта. Вот как я это делаю:

  <PropertyGroup>
    <DropPath>..\..\drop\</DropPath>
    <TestDropPath>..\..\test\</TestDropPath>
  </PropertyGroup>
  <Target Name="AfterBuild">
    <ItemGroup>
      <Binaries Include="$(OutputPath)**\*.*" />
    </ItemGroup>
    <ConvertToAbsolutePath Paths="$(DropPath)">
      <Output TaskParameter="AbsolutePaths" ItemName="FullDropPath" />
    </ConvertToAbsolutePath>
    <Message Importance="High" Text="Binplacing -&gt; @(FullDropPath)" />
    <Copy SourceFiles="@(Compile)" DestinationFiles="@(Compile->'$(DropPath)%(Identity)')" />
    <Copy SourceFiles="@(Content)" DestinationFiles="@(Content->'$(DropPath)%(Identity)')" />
    <Copy SourceFiles="@(EntityDeploy)" DestinationFiles="@(EntityDeploy->'$(DropPath)%(Identity)')" />
    <Copy SourceFiles="@(Binaries)" DestinationFiles="@(Binaries->'$(DropPath)%(Identity)')" />
  </Target>

Конечно, svn export тоже работает. :-) Однако, при таком подходе вы не можете изменять и фиксировать обратно в хранилище любой исходный файл, измененный во время сборки.

2 голосов
/ 22 октября 2008

Как насчет того, чтобы запустить Subversion на сервере, а затем выполнить экспорт SVN из репозитория? svn-экспорт похож на извлечение, но без папок .svn (и без возможности работы Subversion в этом каталоге).

Либо выполните svn-экспорт репо на локальном компьютере, а затем отправьте экспортированную версию по FTP.

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