2008-10-03 54 views
2

我有一個我記錄的個人wiki。 wiki的頁面位於Subversion的工作副本目錄「pages」中,我將它們的權限設置爲664,由www-data:www-data所有。我的用戶名在「www-data」組中,因此我可以手動簽入並弄亂頁面。爲什麼Subversion在登入時chown /重新創建文件?

有一段時間,我遇到了一個問題,因爲每次運行簽入時,這些文件都歸我所有:www-data而不是www-data:www-data,我將不能再更改維基文件通過我的網絡界面!我通過翻轉「pages」目錄中的setgid位解決了這個問題,但我仍然困惑於爲什麼發生在第一位:

每次我在subversion中檢查一些東西時,看起來好像svn刪除它並重新創建它。爲什麼?此行爲是否支持我不知道的某些功能?有沒有辦法改變它?

謝謝!

回答

3

設置「粘性」權限位。

find -type d -exec chgrp www-data {} + 
find -type d -exec chmod g+s {} + 

這將鼓勵簽出的文件創建階段繼承目錄權限,而不是切換到最後編輯它的人。

編輯:dow + s == setgid。這裏留給後人和其他讀者的信息。

2

我想你錯了。你可以做的事情仍然是在顛覆中的一切,並讓你的本地工作副本與你開發的www目錄分開。

然後只需通過一些腳本(也許作爲post-commit鉤子)將www工作拷貝自動更新(或者在不需要www foldeR中的.svn目錄的情況下導出)相應地設置權限。

工作流程是:在/ home

  1. 編輯文件/ youruser/yourwiki-工作拷貝/
  2. 做SVN提交
    • post-commit鉤子更新在/ var文件/網絡/(或任何維基位於)
  3. 轉到1.

這樣,您不必擔心權限,甚至可以讓多個人在網站上工作,並享受版本控制的所有好處。

+0

Isak,這將工作,但這裏的問題是,我的工作副本是我的/ var/www!當我通過http:// localhost/wiki訪問文件時,它正在查看/ var/www中的文件並編輯它們。 – 2008-10-07 19:23:03

相關問題