2012-05-21 86 views
0

我想:鎖定本地文件的svn

  1. 更新文件,以某個版本
  2. 鎖定工作副本,以便沒有人可以更新或修改其
  3. 運行編譯腳本(獨立到SVN和相當緩慢)
  4. 解鎖文件,這樣其他用戶就可以再次修改

這是我寫的東西(在Windows命令行語法):

svn update file.cpp --force -r 320 
svn lock file.cpp 
Call CompileScript.exe 
svn unlock file.cpp 

然而不幸的是另一個用戶運行在file.cpp的更新,而我被編譯,並再次將其恢復,即在庫中的最新版本,它沒有被鎖停止。

有沒有辦法鎖定工作副本,所以這不會發生?

回答

1

svn lock命令是停止提交/合併庫上的事物,它不會阻止某人修改或更改本地文件。你可以讓它只讀在DOS?我認爲它是attrib + r,然後用attrib -r刪除它。

+0

我害怕讓他們只能在dos中讀取並不能解決問題。我曾經想過,如果我修改人們用來運行CompileScript.exe的腳本,以便在運行'update'命令之前檢查工作版本。這應該防止人們修改file.cpp,而CompileScript.exe正在運行。 – Chris

+0

該死的。 :/不知道還有什麼建議,除了一些svn掛鉤,如果任何文件被鎖定,將阻止更新/檢出/回覆等。但如何去寫這樣一個鉤子,如果確實有一個可能我不知道。 – Diziet

0

你想鎖定文件的本地副本?這是一個操作系統的事情,並且與Subversion無關。你想要做什麼,每個人和他們的表弟對你需要控制的文件有讀/寫權限?

版本控制系統已經具有內置的功能,但您需要直接在您的控制下使用工作目錄。因此,用戶不應該共享工作目錄。如果您需要合作空間,請創建分支,但不要共享工作目錄。

我想你可以使用cacls命令來刪除讀/寫權限,但是如果你和其他人一樣使用相同的用戶ID,那麼其他人可以簡單地向他們自己授予權限。