-
這不是真的,這是乙個全球性的。 SVN 僅在乙個目錄中有效。
這是必不可少的。
-
我想首先您需要了解 SVN 伺服器儲存所有歷史版本,而不僅僅是最新版本,因此您可以更新到其中任何乙個的狀態。
SVN 的更新是將庫中的最新檔案新增到本地工作區,並替換當前本地檔案。 此時,如果您的本地檔案還沒有被您修改過,它將被直接替換,如果您已經修改過,但尚未提交,則可能會報告衝突。
更新到修訂版是將當前檔案或資料夾更新到以前的版本狀態,即檢索以前的版本。
SVN 提交是伺服器的最新版本,通過將本地修改的檔案提交到伺服器。 原始版本和最新版本都由服務資源管理器儲存。
svn 的操作是在檔案上完成的,而不是在檔案的內容上完成的。 我認為你的類 C 的兩個方法存在於同乙個原始碼檔案中,所以提交後,svn 會記錄這個原始碼檔案的兩個歷史狀態:只有方法 A 的狀態和方法 A 和 B 的狀態。
-
事實證明,情況是這樣的:
如果 A 新增並提交,B 建立但尚未新增該操作,則如果 B 執行更新操作,則 B 的本地檔案的內容將保持不變(更新會提示它已被合併),但該檔案將被標記為已修改並準備提交(Tortoisesvn 下的圖示是乙個紅色感嘆號)。 在這種情況下,如果 B 提交了該操作,它將直接覆蓋 A 的問題,而不會生成衝突提示。
這次行動確實存在隱患。
繼續驗證:如果 A 新增並提交,B 建立並新增操作,如果 B 執行更新操作,則報錯“無法識別的行尾樣式”,更新失敗,B 不會在本地更改。 如果此時 B 執行提交操作,則會報出錯誤訊息,提示檔案已存在,提交失敗,B 本地未更改。
綜上所述,建立新檔案後,可以先進行新增操作,然後才能及時發現是否有人已經提交了同名的新檔案。
-
您可以嘗試使用兩個工作副本。
我試了一下,結果不是很滿意:svn 不提示,可能會導致覆蓋。
例如,A 上傳和 B 更新,但 SVN 不會移動 B。 在這種情況下,如果 B 再次提交,它將直接覆蓋 A 的。
當然,雙方的變化不會丟失,這是麻煩。
Git 在這方面做得不好,git 會提示它。
-
配置中有兩個小錯誤:
1. 如果 projects 是倉庫的名稱,則 [projects:] 應為 [projects: ] ; 如果您在這裡錯了,管理員組將無法訪問儲存庫;
2. [projects:build lib] 這裡應該是 [projects: build lib] ; 在這裡出錯將導致 testteam1 組無法訪問構建庫;
此外,由於您的許可權檔案包含中文,因此請記住使用 ultraedit 或 editplus 等軟體將許可權檔案轉換為“UTF-8 no BOM”格式。
最後,如果你的專案不是倉庫的名稱,而是父倉庫的名稱,那麼上面的配置是完全錯誤的。
-
你是否在你的職權範圍內?
-
用於解決版本衝突的命令。 衝突解決後,需要使用 svn resolved 告訴 subversion 衝突解決,以便提交更新。 如果發生衝突,Subversion 會將所有物件檔案版本(上次更新的版本、當前獲取的版本,即其他人提交的版本、自己更新的版本和物件檔案)儲存在工作副本中。
假設檔名是,對應的檔名為: 此外,在目標檔案中標記來自不同使用者的更改。
衝突解決:
手動解決:發生衝突時,在與其他使用者通訊後手動更新目標檔案。 然後執行 svn resolved filename run 來解決衝突,最後提交。
放棄您自己的更新並使用其他人的更新。 用最新獲取的版本覆蓋目標檔案,執行 svn 解析的檔名並提交。
放棄你自己的更新,使用 svn revert,然後提交。 這樣,你就不需要使用 svn resolved。
您需要非常小心地使用 svn resolved 命令,您必須非常確定衝突已解決,然後才能使用它。 否則會導致 subversion 認為衝突解決了,**庫會不正確。 衝突解決詳細文件:
這個安裝包是免費的,內建了apache、viewvc,乙個包基本就可以使用了,省去了很多複雜的配置過程。 建議先安裝JRE6後再安裝,否則自動安裝JRE6會太慢。 >>>More
事實證明,情況是這樣的:
如果 A 新增並提交,B 建立但尚未新增該操作,則如果 B 執行更新操作,則 B 的本地檔案的內容將保持不變(更新會提示它已被合併),但該檔案將被標記為已修改並準備提交(Tortoisesvn 下的圖示是乙個紅色感嘆號)。 在這種情況下,如果 B 提交了該操作,它將直接覆蓋 A 的問題,而不會生成衝突提示。 >>>More