ページ

2022年1月15日土曜日

Subversion にコミット済みのファイルの実行権限を変更する

Subversion からファイルをチェックアウトすると,その一部に実行権限が付与されている場合がある.

しかし,chmod コマンドでそのファイルから実行権限を削除してからコミットしても,リポジトリ上ではそのファイルから実行権限は削除されない.(そもそもパーミッションを変更しただけでは,svn 的にはファイルを変更したと認識されないため,コミットすることができない)

Subversion にコミットされているファイルの実行権限は svn:executable というプロパティで管理されているため,chmod ではなく svn propdel コマンドや svn setprop コマンドを使用して変更する必要がある.

以下に実行権限の有無の確認方法と追加・削除の方法をそれぞれ示す.

ファイルの実行権限の有無の確認.(svn:executable が表示される場合は,実行権限あり)
 $ svn proplist hogehoge
 'hogehoge' の属性:
   svn:executable

ファイルに実行権限を追加する場合
 $ svn setprop svn:executable ON hogehoge

ファイルから実行権限を削除する場合
 $ svn propdel hogehoge


svn setprop または svn propdel コマンドで実行権限を変更した場合,そのファイルは修正されたとみなされるためコミット可能な状態になる.

 $ svn status hogehoge
  M      hogehoge


ちなみに,Subversion に新規追加するファイルに関しては,svn add コマンドを実行した時点で対象のファイルに実行権限があるときは,svn:executable が属性に追加された状態でコミットされる.

また,読み取り権限,書き込み権限に関しては,ファイルをチェックアウト or エクスポートする環境のumask値にしたがうため,Subversion上では管理されていない.

0 件のコメント:

コメントを投稿