svn checkoutでフォルダーを無視できますか?ビルドサーバーでのチェックアウト時にDOCsフォルダーを無視する必要があります。
編集:外部を無視することはオプションではありません。必要な外観がいくつかあります。
svn checkoutでフォルダーを無視できますか?ビルドサーバーでのチェックアウト時にDOCsフォルダーを無視する必要があります。
編集:外部を無視することはオプションではありません。必要な外観がいくつかあります。
チェックアウトでフォルダーを直接無視することはできませんが、svn 1.5 ではスパース チェックアウトを使用できます。例えば:
$ svn co http://subversion/project/trunk my_checkout --depth immediates
これにより、プロジェクト トランクのファイルとディレクトリが「my_checkout」にチェックされますが、それらのディレクトリには再帰されません。例えば:
$ cd my_checkout && ls
bar/ baz foo xyzzy/
次に、「バー」の内容を取得するには:
$ cd bar && svn update --set-depth infinity
はい、SVN1.6を使用できます。最初にチェックアウトを実行してから、フォルダに除外のマークを付けてから、不要なフォルダを削除する必要があります。
svn checkout http://www.example.com/project
cd project
svn update --set-depth=exclude docs
rm -fr docs
今後、作業コピーを更新しても、docsフォルダーは再作成されません。
http://blogs.collab.net/subversion/2009/03/sparse-directories-now-with-exclusion/およびhttp://subversion.apache.org/docs/release-notes/1.6.html#sparse-を参照してください。詳細については、ディレクトリ除外を参照してください。
トム
1.5 より前のバージョンでは、最上位のフォルダーのみをチェックアウトしてから選択的に更新すると、それ以降の更新はチェックアウトしたものにのみ影響することがわかりました。すなわち。
svn co -N foo
cd foo
svn up -N bar
svn up
-N フラグは、操作を非再帰的にします。上記は foo レベルで他のものをチェックアウトしません。フォルダーがあるとしますlala
。最終的な svn アップはそのフォルダーをチェックアウトしませんが、更新しbar
ます。
ただし、後でsvn up lala
チェックアウトに追加することができます。
おそらくこれは1.5でも動作します。
これはTortoiseSVNクライアント1.7.1にあります(一部の古いバージョンでも利用できる場合があります)。
SVNチェックアウト->リポジトリのURLを選択
[チェックアウトアイテム]([チェックアウトの深さ]の下)をクリックして、必要なフォルダーのみを選択します。
はい、Subversion 1.5には、まさにこの種のことを実行できるスパースチェックアウトと呼ばれる機能があります。
docs フォルダーを外部リポジトリに配置してから、svn checkout --ignore-externals
.
回帰テストを除外しながら WebKit ソースをチェックアウトする方法を探しているこの質問を見つけました。私は次のようになりました:
svn checkout http://svn.webkit.org/repository/webkit/trunk WebKit \
--depth immediates
cd WebKit
find . \
-maxdepth 1 -type d \
-not -name '.*' \
-not -name '*Tests' \
-not -name 'Examples' \
-not -name 'Websites' \
| (while read SUBDIR; do svn update --set-depth infinity "$SUBDIR"; done)
必要に応じて除外を変更できますが、.* は、作業ディレクトリ (既に最新のもの) とすべての .svn ディレクトリをスキップすることをお勧めします。
最近、同じタスクを解決しました。アイデアは、リポジトリの下のフォルダー/ファイルの即時リストを取得して、必要なエントリを除外し、残りのフォルダーをチェックアウトして、即時ファイルがあれば更新することです。解決策は次のとおりです。
# Path to the svn repository to be checked out
rpath=https://svn-repo.company.com/sw/trunk/ && \
# This files are to be excluded (folders are ending with '/')
# this is a regex pattern with OR ('|') between enties to be excluded
excludep='docs_folder/tests_folder/|huge_folder/|file1|file2' && \
# Get list of the files/folders right under the repository path
filtered=`svn ls $rpath | egrep -v $excludep` && \
# Get list of files out of filtered - they need to be 'uped'
files=`echo $filtered | sed 's| |\n|g' | egrep '^.*[^/]$'` && \
# Get list of folders out of filtered - they need to be 'coed'
folders=`echo $filtered | sed 's| |\n|g' | egrep '^.*[/]$'` && \
# Initial nonrecursive checkout of repository - just empty
# to the current (./) working directory
svn co $rpath ./ --depth empty && \
# Update the files
svn up $files &&\
# Check out the all other folders finally.
svn co `echo $folders | sed "s|\<|$rpath|g"`
ソース作業ディレクトリに移動します。コマンドをコピーします。ペースト。適切な URL を変更し、パターンを除外します。コマンドを実行します。
ありがとう、
いいえ、無視するのはファイルを追加するためだけです。
スパースチェックアウトを使用できます(svn 1.5を使用している場合)
他の人が言及したように、チェックアウト時に svn:externals プロパティを使用してから --ignore-externals オプションを使用できます。ただし、svn:externals は必ずしも別のリポジトリを参照する必要はないことに注意してください。同じリポジトリ内の他のフォルダーへの参照になる場合があります。