[英]svn merge doesn't merge
我正在嘗試將一些來自trunk的修補程序合並到一個分支上。 當我比較trunk/foo.py
和branches/feature/foo.py
,我看到了差異。 然而,當我運行svn merge https://<svn server>/trunk/foo.py foo.py
,沒有任何更改被合並。 使用--force
選項重試也沒有任何效果。 似乎SVN認為功能分支的foo.py
副本是最新版本。 如何說服SVN呢?
編輯:我的Subversion客戶端是svn
版本1.6.16(Linux)。 服務器正在運行trac,版本0.12。
EDIT2:服務器的subversion版本是1.6.9。 感謝評論中的hasienda指出trac和subversion不一定是相關的。
我先說
svn info <trunk>/foo.py
和svn <branch>/foo.py
; 檢查上次更改的修訂版和日期,如果SVN說它們是同一個文件,則不會發生合並。 您可以查看高級合並以獲取更多信息。
我不確定你使用的是什么版本的subversion,但是我認為合並跟蹤還沒有完全實現。
每當Subversion中的某些內容出現異常或似乎比它應該更難時,我的一般經驗法則是在一個新的,干凈的目錄中獲取一個新的工作副本,並在沒有本地修改的情況下再次嘗試。 這往往排除了一些難以察覺的微妙問題。
另外,執行svn diff <server>/branches/this_branch <server>/trunk
以確保Subversion認為存在合並更改。 在此處使用兩個存儲庫路徑將消除工作副本的任何可能問題。 如果上面的diff
命令在您將分支URL與WC的路徑交換時給出了不同的結果,那么問題可能在您的工作副本中。
您還可以通過向merge
命令提供兩個完整URL來純粹在存儲庫中進行merge
。 如果你走這條路線,我強烈建議使用--dry-run
選項在合並之前預覽合並。
此外,您是否有合理使用特定文件名而不是簡單地將整個/trunk
合並到您的分支的原因? 在將整個修訂版本合並到一個分支而不是特定文件中時,我通常會看到更少的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.