2009-04-27 37 views
1

我在使用svn時遇到了一些問題。這裏是一個列表svn絆腳石

  • 在某個時間點,像SVN我的所有命令提交,SVN添加等工作,但我做了一件讓他們沒有將不運行它們作爲根用戶(須藤)工作。具體的行爲會導致這種情況,以及如何解決這個問題?
  • 我的其他網站自己創建了一個圖片文件夾,其用戶:group成爲www-data:www-data。當我試圖將此文件夾添加到版本控制時,我認爲svn無法在圖像內創建一個子目錄.svn,因此它輸出了圖像文件夾的所有子路徑都被鎖定,我需要運行清理。清理也失敗了。它也開始用一個'〜'(波浪號)來顯示圖像目錄,這意味着它在某個時刻被版本化了,但是發生了一些事情。我固定在「不能犯,直到決裂locks'-和'cant破鎖」循環問題如下:
    • 刪除的.svn /鎖定的文件從各個通往圖像的目錄文件夾
    • 移動圖像目錄主文件夾,並承諾「刪除圖片」
    • 複製回的圖像文件夾並沒有使用「svn添加」

但我想知道我應該在上述各兩個都做案例。我懷疑在案例1中,問題與搞砸的文件夾權限有關,但我不知道具體是什麼,以及如何解決它。我懷疑我可以採取以下措施之一爲不具備相應的業主的文件夾/組設置:

  • 嘗試做「sudo的添加folder_with_different_user_and_group」
  • 更改用戶:組爲默認值,添加文件和承諾。但不知何故,我想以這樣的方式恢復這些變化,以使其在未來可以工作。可能更改權限但不更改所有者:.svn文件夾的組?

什麼是在上述每種情況下使用svn的最佳方式,以及如何在這種情況發生時成功地解鎖等等?

回答

1

你描述的是權限問題,而不是SVN問題。我建議瞭解一下Unix文件權限及其含義,例如here

如果您的文件是由Web服務器創建的,那麼您可能會遇到Apache配置爲以「www-data」或其他方式運行的問題。在這種情況下,將用戶(運行SVN命令)添加到Apache用於寫入文件的組可能會更加簡單。

1

你的第一個問題是文件系統的權限問題,而不是svn問題。如果以root用戶身份運行svn命令,很可能會有一些文件和目錄最終歸root所有。在工作拷貝根目錄下運行

chown -R desiredusername . 

的根應該解決的事情(請注意,你必須替代「desiredusername」真正的用戶名)。儘量避免以root身份工作,並且您將避免很多這些問題。 :)

至於第二個問題,如果它是一個包含運行時數據的目錄,就像您的Web應用程序存儲的東西一樣,我會質疑您是否真的想要版本化。我敢打賭,你不這樣做,所以你最好讓svn完全忽略這個目錄。您可以通過運行

svn propset svn:ignore imagedirectoryname . 

在父目錄中。再次,將實際名稱替換爲'imagedirectoryname'。還要注意的是,如果你已經有其他被忽略的資源的父目錄,用svn propset命令將覆蓋他們,所以你要運行

svn propedit svn:ignore . 

代替。

+0

是的,我認爲最好在某個階段完全忽略目錄,儘管不是現在。無論如何,已經從目前爲止的三個答案的每一箇中獲得了一些想法,但只能設置一個被接受 – umar 2009-04-27 09:25:05

2

好像你至少有2個不同的用戶更新同一個工作拷貝:

  • WWW的數據:WWW的數據(網絡用戶)
  • 自己的用戶

這是一個問題。你可以對所有的svn操作使用root(即sudo) - 它不乾淨,但是可以工作。