在CVS中,我的工作副本(WC)位於某個分支(我們稱之爲「foo」)。另一個開發者已將其他更改檢入foo。我想在我的WC和foo的上游狀態之間做一個差異。通常情況下,在後備箱(HEAD)工作時,我只是做一個cvs diff,這很好。但由於某種原因,在分支中執行簡單的cvs diff時,diff是空的。當我嘗試使用「cvs diff -r foo」時,diff顯示出來,但它是反向的 - 上游添加顯示爲小數,上游刪除顯示爲加數。 (1)讓CVS以「另一種方式」(加上上游添加)或(2)反轉補丁(一般情況下)來進行比較?反轉diff或patch || CVS diff
回答
如果主要目的是檢查中央回購庫中的「最新情況」,我建議您自己定製一個功能強大的CVS查看器/瀏覽器/網絡通道,您可以在更新之前瀏覽並查看最新更改。但是,假設你已經是命令行CVS,我會嘗試反正給你解決:)
所以,你在這裏買到的分支foo
從A
去 - >B
,其中B
是狀態分支(在服務器上)在其他開發人員簽入後,A
是您上次更新工作副本的狀態。
如果只是做在這種情況下一個普通的cvs diff
,你會看到你的本地修改相比A
因爲A
是你查了一下了。本地CVS狀態將顯示每個文件來自foo分支上的A修訂版,並且在區分CVS客戶端時將從服務器下載該修訂版。在你的情況下,我猜你沒有本地變化,因爲你的cvs diff
是空的。
然後,當你做你的版本比較本地A
(或A +的變化)對服務器的foo
(目前是B
)一cvs diff -r foo
- 從服務器的B
讓需要你的A+changes
是變化與其他開發人員的簽入完全相反,加上您自己的本地更改。現在,如果你真的很想知道B(或者tip-of-foo)與A(你目前檢查出的任何一個原始版本)的比較情況,我認爲你必須設置一個標籤在您的工作副本上,然後將該標記與分支狀態進行比較。就像這樣:
cvs tag pistos_temp1
cvs diff -r pistos_temp1 -r foo
# And clean up by deleting the tag afterwards:
cvs tag -d pistos_temp1
您可以嘗試將分支中的文件導出到某個臨時文件,然後在工作副本和此臨時文件之間進行區分。這似乎是最簡單的方法。
這是一種方式,是的,但肯定有一個更好的辦法。 :)我會打電話給這個「計劃C」。 – Pistos 2009-12-08 14:54:15
也許你想要的可以通過使用patchutils包中的interdiff來完成。
我經常用這種方式來看看是什麼在樹幹上改變給定文件:
cvs diff -up -r1 givenfile | interdiff /dev/stdin /dev/null
從'man 1 interdiff': '要反轉一個補丁,請使用/ dev/null作爲diff2。' 這有幫助,謝謝。 :) – selurvedu 2016-07-20 00:28:53
- 1. mercurial diff + unxutil「patch」
- 2. Java中的Diff,Patch和Reverse-patch
- 3. 如何「反轉」diff文件?
- 4. 如何使用google-diff-match-patch C#庫?
- 5. git log顯示diff儘管--no-patch
- 6. 如何臨時應用(或存檔)Tortoise SVN的PATCH/DIFF更改?
- 7. 爲什麼'svn diff --diff-cmd = diff'輸出內部diff格式?
- 8. 反向diff -u在python中
- 9. 如何讓svn diff看起來像diff?
- 10. git diff(git patch)和git push之間的區別
- 11. 'git format-patch和'git diff'有什麼區別?
- 12. 通過diff和patch添加完整的目錄
- 13. git diff/format-patch輸出包含^ M(回車)字符(Linux)
- 14. `git diff HEAD ^`的反義詞是什麼?
- 15. 是否有一個針對htmlstring的JS diff庫,就像純文本上的google-diff-match-patch一樣?
- 16. Diff,未賦值
- 17. DateTime Diff C#
- 18. Diff算法C++
- 19. diff if語句
- 20. Git diff pattern
- 21. DIFF算法
- 22. Java:Eclipse - Diff Trace
- 23. 實時git diff
- 24. git diff日期?
- 25. Mapreduce表Diff
- 26. F#Seq diff
- 27. scala Array [Byte] diff
- 28. JavaBeans Comparator/Diff
- 29. System.nanoTime()DIFF是0
- 30. TortoiseHg with TortoiseSvn Diff
我們正在使用viewvc,但我們無法真正弄清楚如何使它在分支機構中很好地工作。它只能使用HEAD材質順利運行。 總之,您的臨時標籤解決方案工作得很好,即使它有點笨拙(與非CVS解決方案相比)。謝謝。 – Pistos 2009-12-09 15:33:23