2009-07-29 14 views
4

私はちょうど私のウェブアプリケーションを構築するためにSubversionを使用する方法を学び始めています。私はそれをすべてを設定していますどのようにここでSubversionリポジトリの作業コピーの構造に関するベストプラクティス?

は次のとおりです。私のプロジェクトのすべてのためのリポジトリをホストする私のドメインの

  • 一つ。私は標準的なタグ/ブランチ/トランク構造を持っています。これはパブリックフォルダにあり、他の開発者がアクセスできるようになっています。
  • ライブサーバーにアプリケーションの各リリースを含むフォルダがあります。現在のリリースを指すWebディレクトリにシンボリックリンクがあります。このようにして、アプリケーションのアップデートをリリースすると、リリースディレクトリにエクスポートされた後、変更が瞬時にオンラインになるようにシンボリックリンクを切り替えます。ここで

私の質問です:

プロジェクトのローカルの作業コピーのための最良の構造とは?私はブランチとトランクの両方でかなり頻繁に作業するつもりですので、リポジトリ構造全体(タグ/トランク/ブランチ)をチェックするか、トランクとブランチを個別に別のフォルダにチェックアウトする必要がありますか?

また、設定方法について私が言ったことが、奇妙なやり方が間違っているようであれば、私に知らせてください(これは初めてです)。

答えて

0

本当に気に入ったら、リポジトリ全体をチェックアウトすることができます。それはあなた次第です。個人的には、私が積極的に取り組んでいる部品をチェックするだけです。そうすれば、 "svn update"は永久にとられることはなく、自分のハードドライブに占めるスペースは少なくなります。あなたのリポジトリ内の場所を切り替えるには、そのための特別なコマンドがあります: "svn switch"(略語 "svn sw")。最高のアイデアで、あなたが取り組んでいる唯一の支店を維持Agreed-

http://svnbook.red-bean.com/en/1.1/ch04s05.html

+0

マイケルに感謝します。これは実装するのが最も論理的で簡単です。 –

2

私はいつもsvnスイッチを使って、開発中にブランチ間を跳ね返りました。かなりよく働き、あなたの周りの浮動チェックアウトのすべての種類を持っている必要がありますが保存されます(すべて1つの作業ディレクトリにこれを行うことができます)

は、ここでのドキュメントです:http://svnbook.red-bean.com/en/1.0/re27.html
そしてトピックに関する短い記事:http://concisionandconcinnity.blogspot.com/2008/04/svn-switch.html

0

:「SVNのヘルプスイッチ」を使用するか、詳細はリンクを参照してください。 svnスイッチが付いている唯一の問題は、本当にローカルコピーを作成する必要がある場合は、-relocateオプションを使用してリポジトリ間を移動する必要があることです。

実際にリポジトリのクローンの配布を開始する必要がある場合はgitをご覧ください。 Gitは完全なローカルコピーを保持し、ブランチ間を簡単に移動し、チェンジセットを「マスター」レポや他のクローンに戻すことができます。

0

私があなただったら、現在の(好きな場合は最新の)リリースが入っているライブサーバーに標準で意味のある名前のワークスペースがあると考えています。これはリリースフォルダのチェックアウトになりますあなたのセントラルリポジトリにあります。次に、異なるリリースへのシンボリックリンクを変更するのではなく、単に "svn update"を行うだけです。リポジトリはあなたのアーカイブをすべて整理しておくので、あなたのサーバ上のスペースも節約できます。明確にするために

:あなたのSVNリポジトリは、この典型的な構造がある場合:

/トランク

/src 
/bin 
/docs 
/scripts 

/タグ

/released 

をあなたのリリースORのように保存するために、このフォルダを持つことができます私たちの場合は、すべてのアーカイブを手元に置いておく必要がある場合はバイナリアーカイブ用の別個のリポジトリを持つことができます(ソースファイルをバージョン管理するだけで十分です)

ライブサーバーにはリリースと呼ばれるワークスペースがあります。これはhttp:///タグ/リリースのチェックアウトです。サーバー上のワークスペースでsvnアップデートを実行すると、あなたのアプリは最新のリリースを指しています。お役に立てれば。

ローカルのワークスペースでは、新しいもので、間違ってコミットする恐れがある場合は、構造全体を一度チェックアウトして、変更したいものだけを更新してください。上記の他の提案も有効です。あなたは特定のフォルダの最上位ディレクトリstrcutureを調べることができますが、混乱を避けるために名前を一貫して保持してください。

一気離れ

1

:-)私は--depth immediatesでリポジトリ全体のsparse checkoutをしたいです。次に作業コピーの一部を

svn update --set-depth somedepth 

と入力して作業します。また作業コピーの一部をもう少し浅くしてディスクスペースを増やすこともできます。

svn switchは部分的に切り替えられた作業コピーでの悪い経験のために使用しません。バージョン管理されていないファイルに遭遇したときに、スイッチが途中でエラーを出力します。混乱を招く可能性があります。

関連する問題