簡體   English   中英

svn合並重命名的文件

[英]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

在這里閱讀合並:

http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.merge.html

暫無
暫無

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

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