[英]svn merge on renamed files
首先,我從主項目中創建一個分支
$ svn cp project branched
然后,我在分支中重命名一些文件:
$ svn mv branched/file.c branched/file.cpp
提交/更新后,其他人會對原始項目中的原始文件進行更改,如何合並這些更改?
$ svn merge project/file.c branched/file.cpp
svn: E195002: Invalid merge source 'project/file.c'; a working copy path can only be used with a repository revision (a number, a date, or head)
僅僅是語法問題,還是正如同事建議的那樣,是一個更深層次的問題,使得基本上不可能使重命名文件保持同步? 如果是這樣,重命名文件並使它們保持同步的正確方法是什么?
“無效的合並源'project / file.c';工作副本路徑只能與存儲庫修訂版一起使用”
讓我們分解一下。
“無效的合並源'project / file.c'”
SVN在理解“ project / file.c”的含義時遇到問題。 注意SVN嘗試使用您告訴它使用的相同文件,並且該文件顯然存在於您的系統上。 這里的重命名沒有問題。
“工作副本路徑”
您是在告訴SVN從工作副本中計算機上已經存在的文件中合並。 這不是正常使用。 通常,您指定要合並的存儲庫URL。 支持這種使用,但是:
“只能與版本庫一起使用”
...如果您嘗試從工作副本中進行合並,實際上您只是在告訴SVN您在說什么文件,而SVN仍將使用存儲庫服務器獲取合並數據。 因此,您需要告訴SVN要合並的版本。 例如:
$ svn merge -r HEAD project/file.c branched/file.cpp
但是,您在此處執行的另一項奇怪的操作是合並單個文件。 通常,您要合並整個目錄樹,而不是單個文件。 因此,我建議在以下內容上進行更改:
$ svn merge http://example.com/svn/path/to/project branched
在這里閱讀合並:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.