簡體   English   中英

提交后自動更新SVN工作副本

[英]Automatically update SVN working copy after commit

我們擁有125人以上的團隊,並且正在使用SVN烏龜進行版本控制。 我們有一個excel工作表,其中每個用戶都必須在一天結束前更新其日常工作,但要注意的是,在進行更改之前,沒有人正在更新(SVN更新)excel文件,並且由於添加了詳細信息的人丟失了。 因此,為避免這種情況,我想要一個svn post commit腳本,該腳本強制svn update命令到每個人的工作副本,因此每當他們打開其工作副本時,它都是最新的。 請幫助我將此應用到我的存儲庫中,我們將Torvise svn與Windows客戶端一起使用,並且我們將Torvise svn與collabnet team-forge集成在一起

不,你不要那樣。 這可能會破壞正在進行的工作。 如果多個人同時嘗試編輯,這將無濟於事。

您想要的一種方法是告訴用戶“其他人正在編輯此文件,請勿觸摸”。

執行此操作的方法是在任何二進制文件(例如Excel電子表格)上設置svn:needs-lock屬性。

使用此屬性,該文件在每個人的工作副本上都變為只讀。 要編輯文件,您首先要使用svn lock來使文件可寫,並防止其他任何人鎖定或提交文件。 然后,在完成更改並提交后,該鎖便消失了,其他人可以獲取鎖並進行更改。

如果文件的版本已過期,則獲取鎖將失敗,從而強制進行更新。

但是,請注意在進行更新時不要打開文件,否則可能會覆蓋傳入的更改。

  1. 如前所述,您選擇了錯誤的方式
  2. 您選擇了錯誤的工具:Excel工作表不是SVN的文本文件,因此-它們不能很好地合並(如果根本不合並)
  3. 您將與奇跡作戰:如果所有用戶都修改同一個文件,則只有最快的用戶將獲勝並可以提交文件:其他所有文件在提交嘗試時將“資源過時”, 必須更新自己的WC,並且外部更改將合並到本地更改的文件中(但請參閱上面的警告)

最后-服務器端的鈎子無法在客戶端的工作區上做任何共同的事情( svn up是客戶端的工作,而不是服務器的工作),除了一些特殊情況(ssh CLIENT && cd WC && svn up),這不是您的情況

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM