13

Web ソリューションをサーバーにアップロードする必要がある場合、特に面倒です。

作業ディレクトリの外に _svn フォルダーを作成するように SVN を構成する方法はありますか? そうでない場合、コードのみをコピーする必要がある場合、それらに対処する最善の方法は何ですか?

更新:「svn export」コマンドの使用には問題があります。これは、.dll、xml データ ファイル、またはデータベース ファイルのように、ソース管理されていないが必要なファイルがあり、それらがエクスポートされないためです。したがって、作業コピーから毎回異なるサブディレクトリに手動でコピーする必要があります。

4

9 に答える 9

26

作業コピーの外に .svn (または _svn) ディレクトリを作成するように SVN (または TortoiseSVN) を構成することは (現在) 不可能です。SVN 1.6 ロードマップには、作業コピー ライブラリの再検討が含まれていると思います。管理ディレクトリを別の場所に置く機能は、この作業から生まれるかもしれませんが、私は推測しています.

「svn export」コマンドを使用して、作業コピーの「クリーンな」コピー (つまり、_svn ディレクトリなし) を作成する必要があります。これは、コマンド ライン クライアントから機能します。

TortoiseSVN を使用している場合は、作業コピーを右クリックして [エクスポート...] を選択します。これにより、ファイルをエクスポートするフォルダーを尋ねられます。または、作業コピーをフォルダー (作業コピーではないフォルダー) に右ドラッグすると、TortoiseSVN がコンテキスト メニューを表示します。オプションの中には、「SVN エクスポートをここに」と「SVN エクスポートをすべてここに」があり、後者はバージョン管理下にないファイルもエクスポートします。

于 2008-10-21T15:03:22.553 に答える
17

「svn export」を使用して、クリーンなディレクトリ ツリーを作成します。

于 2008-10-21T14:58:11.347 に答える
12

Robocopy のデプロイ...

robocopy {source} {dest} /MIR /XD _svn /XD .svn
于 2008-10-21T15:45:23.997 に答える
4

TortoiseSVN では、作業コピーをクリックして別の場所にドラッグできます。ポップアップメニューが表示されたら、「SVN Export Here」を選択します。(エクスポートは作業コピーではなくトランクから行われるため、作業コピー内のすべてのコードがチェックインされている必要があります)

詳細については、次のリソースを参照してください。

于 2008-10-21T15:28:54.483 に答える
3

nant スクリプトを使用して Web サーバーへの展開を有効にする場合、ファイルをコピーするときの自動除外として _SVN および _SVN/** があります。nant は、コピー タスクを介してファイルをコピーするときに、次のような多くの不要なファイルを除外します。

  • **/*~
  • **/#*#
  • **/.#*
  • **/%*%
  • **/CVS
  • /CVS/
  • **/.cvsignore
  • **/.svn
  • /.svn/
  • **/_svn
  • /_svn/
  • **/SCCS
  • /SCCS/
  • **/vssver.scc
  • /_vti_cnf/

NANT の詳細については、プロジェクトのホームページをご覧ください: NANT ホーム

于 2008-10-21T15:22:23.467 に答える
2

IsakSavoからのソリューションの+1。

また、XCOPYを実行して、「/svn」フォルダーを除外できます。

XCOPY%1%1_deploy / EXCLUDE:C:\ ExclusiveSVN.txt / E / C / I / F / R / Y

ExcludeSVN.txtの内容:

/ _svn

実際、Webサーバーにアップロードする場合は、除外ファイルにさらに多くの情報を含めることができます。

  • .pdb
  • .cs
  • .resx
  • .csproj
  • .sln
  • .webinfo
  • .bak
  • .sql
  • 。ジップ
  • .vspscc
  • .vssscc
  • .scc
  • \ Web.config

警告:.csファイルを除外すると、後で.cssファイルを再コピーすることになります

于 2008-10-21T15:34:56.797 に答える
1

Windowsでの本当に汚い方法:プロジェクトのコピーを作成し、エクスプローラーを開き、コピーが含まれているディレクトリに移動して、_svnで終わるすべてのものに対して検索を実行します。検索が完了したら、すべてを選択して[削除]をクリックします。

うん!しかし、それは本当にうまく機能します。

于 2008-10-21T15:20:19.603 に答える
0

Windowsで.svnという名前のすべてのサブフォルダーを削除する場合は、次のコンテンツを含むバッチファイルを作成します。

for /f "tokens=* delims=" %%i in ('dir /s /b /a:d *.svn') do (
rd /s /q "%%i"
)

ファイルdel_All_Dot_SVN_Folders.cmdに保存します。それを実行します。完了しました。

http://www.axelscript.com/2008/03/11/delete-all-svn-files-in-windows/に感謝します

上記のコードには.svnが含まれていますが、リンク内のコードには* svnしかないため、誤って望ましくない影響を与えないように.svnを使用することをお勧めします。

于 2012-11-25T15:50:05.793 に答える
0

リポジトリのクリーン コピーを作成するために、CruiseControl と robocopy を使用します。

 <exec>
        <executable>C:\Archivos de programa\Windows Resource Kits\Tools\robocopy.exe</executable>
        <buildArgs>E:\CruiseControl\yourproject\Code\trunk\ E:\wwwroot\yourproject *.* /E /XX /XA:H /XO /NDL /NC /NS /NP /XF "*.cache" "*.designer.cs" "*.sln" "*.msbuild" "*.csproj" "*.PDB" "*.user" "*.designer" /XD .svn App_Code obj Properties</buildArgs>
        <buildTimeoutSeconds>60</buildTimeoutSeconds>
        <successExitCodes>1,0</successExitCodes>
 </exec>

/XF および /XD 引数は、本番環境にアップロードしたくないファイルとディレクトリを除外します。

robocopy の詳細については、こちらを参照してください。

于 2008-10-21T15:47:33.697 に答える