TortoiseSVN またはコマンドライン SVN を使用して Subversion リポジトリに SVN の「実行」ビットを設定する
-
01-07-2019 - |
質問
code.google.com でホストされているオープンソース アプリを持っています。クロスプラットフォーム (Linux / Windows / Mac) です。最初に TortoiseSVN を使用して WinXP マシンからコードをアップロードしましたが、Linux ビルドに使用される「構成」バッチ ファイルには「実行」ビットが設定されていないようです。
必要なファイルにこれらを設定する最も簡単な方法は何でしょうか?TortoiseSVN を使用する方が簡単だと思いますが、それが使用できない場合は、Linux マシンでコマンド ライン SVN を使用することもできます。
解決
Tortoise SVN を使用すると、非常に簡単です。複数のファイルを選択し (検索結果からのものである可能性があるため、同じディレクトリにある必要はありません)、TortoiseSVN メニューで「プロパティ」を選択し、必要なプロパティを追加します (ほとんどのファイルのドロップダウン リストがあります)。使用するプロパティ (この場合は「svn:executable」)) を設定し、値 (この場合は「*」) を設定します。変更されたファイルをコミットし、Linux 上でチェックアウトすると、実行可能ビットが設定されます。
一度に複数のプロパティを設定したい場合は、まず 1 つのファイルに対してプロパティを正しく設定し、それらをファイルにエクスポートし、必要なファイルをすべて選択して、[プロパティ] メニューを選択する方が安全です。以前に保存したプロパティをインポートします。
他のヒント
コマンドラインでこれを行う方法は次のとおりです。
for file in `find . -name configure`; do
svn ps svn:executable yes ${file}
done
または 1 つのファイルのみ (configure
ここではファイル名です):
svn ps svn:executable yes configure
Unix では、結果セットに対処するには {} を使用します。
find . -type f -name "*.bat" -exec svn propset svn:executable yes '{}' \;
このプロパティが有効な引数として「yes」を必要とする理由を知っている人はいますか?Yes の代わりに '' を使用した別の例も見つかりました...
find . -type f -name "*.bat" -exec svn propset svn:executable yes "${}" \;
もちろん.exeなども同様です。
SVNインポート中に失われた実行可能権限を復元する方法:
SVN インポート中に使用した元のソース (現在のディレクトリから version1) からアクセス許可をコピーします。
find . -type f | xargs -I {} chmod --reference {} ../version1/{}
次に、次のシェル スクリプトを使用して、すべての実行可能ファイルに svn:executable を設定します。
for file in `find . -executable -type f`; do
svn ps svn:executable yes ${file}
done