提问人:user2125853 提问时间:5/18/2023 更新时间:5/18/2023 访问量:77
如何找到 2 个 CVS 分支之间的差异?
How to find differences between 2 CVS branches?
答:
3赞
Marcus Müller
5/18/2023
#1
老实说,CVS 项目已经有 15 年没有更新了。因此,花时间学习使用它可能是一个坏主意。
我会忘记直接与 CVS 争吵;相反,我会将 CVS 存储库导入 git, git cvsimport
。 -d CVSROOT
一旦你有了那个 git 存储库,
git diff branch1 branch2
会很漂亮。
所以,总而言之,
git cvsimport -C baz-module -d :pserver:[email protected]:/cvs/reallyoldsoftware foo/bar/baz-module
cd baz-module
git diff branch1 branch2
评论
0赞
user2125853
5/18/2023
我根本不想学习 CVS。不幸的是,我所在的项目直到使用 CVS。因此,有时需要完成这样的任务。
0赞
Marcus Müller
5/18/2023
是的,如前所述,通过导入 git 来执行它们。CVS 不是很先进,我认为您的另一个选择实际上是将两个分支签出到不同的本地目录中,并比较目录内容。你知道我会怎么做吗?右。我会将其中一个作为 git 存储库,提交其状态,签出一个新的 git 分支,删除所有文件并复制到另一个签出上,提交它,然后在两个 git 分支上做一个......git diff
0赞
Marcus Müller
5/18/2023
但要好得多。您可以比较文件内容,但也可以确定谁在同一环境中的哪个时间点更改了哪些内容。git cvsimport
0赞
user2125853
5/18/2023
我最终导出了一个项目的两个分支,并使用了 BeyondCompare。但是,我今后会牢记你所说的话。谢谢。
2赞
user2125853
5/18/2023
#2
需要快速做一些事情,并且对 CVS 和 GIT 的了解非常有限,并且必须处理包含数百个项目的 repo,做了如下操作:
export CVSROOT=:pserver:[email protected]:/path/to/cvsrep
cvs login
cvs export -r HEAD project-name
cvs export -r Branch project-name
导出两个分支后,使用 BeyondCompare 比较 2 个文件夹。这似乎是给了我我需要的东西。
评论
0赞
Marcus Müller
5/18/2023
git cvsimport -C project-name -d :pserver:user@cvsserver.com:/path/to/cvsrep; git diff HEAD Branch
:(不起作用?
0赞
user2125853
5/18/2023
当我这样做时,我收到“AuthReply:E PAM 身份验证错误:权限被拒绝”错误。需要一些额外的设置吗?
0赞
Marcus Müller
5/18/2023
啊,在这种情况下,你需要运行 和 之前export…
cvs login
git cvsimport…
0赞
user2125853
5/18/2023
在运行命令之前,我确实运行了 [export] 和 [cvs login]。但仍然收到身份验证错误
0赞
Marcus Müller
5/18/2023
哼!好吧,我从来没有让 PAM 参与进来,所以我必须承认我有点不知所措,也必须承认你的方法更好——它有效。
评论
May 8, 2008; 15 years ago