在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. 如何临时应用(或存档)Tortoise SVN的PATCH/DIFF更改?
- 6. 如何让svn diff看起来像diff?
- 7. 'git format-patch和'git diff'有什么区别?
- 8. git diff(git patch)和git push之间的区别
- 9. 通过diff和patch添加完整的目录
- 10. git diff/format-patch输出包含^ M(回车)字符(Linux)
- 11. `git diff HEAD ^`的反义词是什么?
- 12. 是否有一个针对htmlstring的JS diff库,就像纯文本上的google-diff-match-patch一样?
- 13. Git diff with textutil
- 14. Diff MIDI文件
- 15. Git diff忽略
- 16. postgres diff工具
- 17. jhipster liquibase diff heroku
- 18. xml diff in ruby?
- 19. DataFrameGroupBy DIFF()条件
- 20. PHP - Mutidimensional array diff
- 21. Diff算法
- 22. JavaBeans Comparator/Diff
- 23. diff-utility和ftp
- 24. Diff git fork
- 25. perforce diff to git
- 26. TortoiseHg with TortoiseSvn Diff
- 27. diff 2 rpms? - linux
- 28. diff if语句
- 29. Diff,未赋值
- 30. F#Seq diff
我们正在使用viewvc,但我们无法真正弄清楚如何使它在分支机构中很好地工作。它只能使用HEAD材质顺利运行。 总之,您的临时标签解决方案工作得很好,即使它有点笨拙(与非CVS解决方案相比)。谢谢。 – Pistos 2009-12-09 15:33:23