2012-03-19 84 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運行檢出將所有提取的文件設置爲只讀爲當前用戶。例如,在我的具體情況下這就是煩人的事情,它不會爲批處理設置執行標誌。在文件屬性中,當前用戶的安全選項卡爲標記EveryoneRead/Write

運行退房與1.6.17不顯示此行爲。文件檢出與用戶友好的權利,批處理可以執行。在文件屬性中,對於當前用戶,安全選項卡爲/ReadEveryoneModify/Read & execute/Read/Write打勾,這是我期望從結帳中得到的。該檢出是腳本過程的一部分,因此兩個測試情景中的環境都是相同的。

我發現沒有提及SVN車票的行爲,並沒有運氣搜索。大多數結果都與服務器端配置有關。

我沒有ACL/NTFS專家,我看過Cygwin的POSIX /窗口在http://cygwin.com/cygwin-ug-net/ntsec.html文章,但沒有明確的區別。

  • 我試過了svn:可執行文件的關鍵字,但預計今年有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客戶端就是你需要的。 – 2012-03-19 15:53:42

+0

@DavidHeffernan同意。但是,運行檢出的腳本實際上是使用Cygwin工具作爲先決條件。在這個過程中引入外部svn可能會造成更多的傷害而不是優點,並且會使其運行的平臺的配置複雜化。該腳本適用於遠程buildbot工作人員。 – TallFurryMan 2012-03-20 10:59:58

回答

0

歸根結底,這是由find'ing和chmod'ing文件解決視爲可執行:

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

我肯定少不了的,因爲缺乏時間進行調查是應svn:executable實際處理Cygwin構建的SVN添加正確的權限標誌。我得儘快檢查一下。

[更新: Cygwin構建的SVN客戶端榮幸svn:executable,所以這是解決問題的方法。 ]

+0

確實,svn:可執行文件完成了它的工作。當Cygwin構建的SVN客戶端檢出或更新工作區時,該關鍵字實際上*在Windows下有效。 – TallFurryMan 2012-05-31 09:00:29

0

那麼,解決方案是重建/etc/passwd/etc/group使用mkpasswdmkgroup

然而,滾動修改這些文件回不回覆的觸發問題的狀態配置。可能重建它們並再次運行檢查會對SVN工具本身產生影響,但我不知道爲什麼以及如何。

編輯不,問題沒有得到解決。