2012-03-19 17 views
0

私のCygwin SVNクライアントは、バージョン1.6.17と1.7.4の間でWindows ACLに関する動作が変更されました。Cygwin SVNチェックアウトACLの問題

[更新:] SVN 1.7.4と1.6.17は、実際には同じ動作をしています。問題は他のところにあります。私が得られなかったことは、おそらくCygwinのアップデートで動作が停止した点です。 ]

[UPDATE: Cygwinの内蔵SVNクライアントは、実際には、現在のユーザーのために実行可能なACLのビットを設定することにより、svn:executableキーワードを称えます。 SVN本の "Windowsの下では効果がない"という言葉は慎重に取らなければならない。 ]

1.7.4でチェックアウトを実行すると、抽出されたすべてのファイルが現在のユーザーに対して読み取り専用に設定されます。たとえば、私の特定のケースでは迷惑なことですが、バッチに対して実行フラグを設定しません。ファイルのプロパティでは、[セキュリティ]タブにEveryoneの場合はRead、現在のユーザーの場合はRead/Writeとなります。

チェックアウトを1.6.17で実行しても、この動作は表示されません。ファイルはユーザフレンドリーな権利でチェックアウトされ、バッチを実行できます。ファイルのプロパティでは、[セキュリティ]タブでEveryoneの場合はRead & execute/Read、現在のユーザーの場合はModify/Read & execute/Read/Writeとなります。これはチェックアウト時に予想されます。そのチェックアウトはスクリプト化されたプロセスの一部なので、環境は両方のテストシナリオで同じです。

私はsvnチケットでその動作については言及しておらず、運の検索もありませんでした。結果のほとんどは、サーバー側の構成に関連しています。

私はACL/NTFSのエキスパートではありません。私はhttp://cygwin.com/cygwin-ug-net/ntsec.htmlでCygwinのposix/windowsの記事を読んだが、その違いを明確にしていない。

  • 私はsvn:executableキーワードを試しましたが、期待通りWindowsでは効果がありません。
  • Windows 7でもXPでも同じ違いがあります。
  • TortoiseSVN 1.7.6(「ネイティブ」SVN 1.7.4用に構築された)がチェックアウトを正しく実行することに注意しました。
  • 私はデフォルトの新鮮なインストール/etc/fstabを空にしており、/etc/fstab.dの設定はありません。

私は1.6.17に満足できませんが、1.7.4の機能のいくつかは面白いです。

どうすれば奇妙なアクセス権の問題を解決できますか?

+0

なぜここでcygwinを使用しますか?確かにネイティブsvnクライアントが必要なものです。 –

+0

@DavidHeffernan合意。しかし、チェックアウトを実行するスクリプトは、実際にはCygwinツールを前提条件として使用しています。おそらく、プロセス内に外部svnを導入すると、害よりも害が大きくなり、実行されるプラットフォームの構成が複雑になります。このスクリプトはリモートbuildbotワーカーで動作します。 – TallFurryMan

答えて

0

最終的には、このファイルをfind'ingとchmod'ingによって解決されたが、実行可能とみなさ正しいパーミッションフラグを追加するCygwinビルドSVN。私はすぐにそれを確認する必要があります。

[更新日: CygwinでビルドされたSVNクライアントはsvn:executableを授与しています。これは問題を解決する方法です。 ]

+0

実際、svn:実行可能ファイルはその仕事をしました。このキーワードは、CygwinでビルドされたSVNクライアントがワークスペースをチェックアウトしたり更新したりしているときに、実際には* Windows *の影響を受けます。 – TallFurryMan

0

まあ、解決策はとmkgroupを使用して/etc/passwd/etc/groupを再構築することでした。

ただし、これらのファイルへの変更をロールバックしても、問題を引き起こす状態の構成は元に戻りません。おそらくそれらを再構築してチェックアウトを再度実行することは、SVNツール自体に影響を与えましたが、私はなぜ、どのように考えているのでしょうか。

EDITいいえ、問題は解決しません。私は確かに理由を調査するための時間の不足のため逃した何

sh - c "find %MYDIR% -name '*.bat *.sh *.exe *.com *.cmd' -exec chmod u+x {} \;"

svn:executableが実際によって扱われるべきであるということである。