我们内部编写的工具之一是提供了以下形式的cvs提交跟踪:
Checking in src/com/package/AFile.java;
/home/cvs/src/com/package/AFile.java,v <-- Afile.java
new revision: 1.1.2.56; previous revision: 1.1.2.55
done
Run Code Online (Sandbox Code Playgroud)
然后,该工具通过cvs update -r 1.1.2.56在已经签出特定代码分支的工作目录中发出命令从cvs获取文件.
如果工作目录中存在现有版本的AFile.java,则此命令可正常工作.但是当我们获得工作目录中没有版本的文件的跟踪时,该命令无法获取该文件.
有办法吗?
这显然要求源文件受源代码控制.理想情况下,我喜欢在IDE(Eclipse,Visual Studio等)下工作的工具 - 但外部工具也会很好.显然,可以手动浏览文件的先前版本,并比较各种版本,但我正在寻找一种能够快速查看谁负责代码部分的方法.
我正在使用CVS,但该工具应该理想地适用于不同的源控制系统.
可以在CVS中使用不同的diff程序吗?我想使用像meld这样的东西给我一个关于存储库和我的更改的并排图形视图.使用不同的CMS不能控制我.什么是理想的是一些无证的命令行参数,可以像这样工作:
cvs diff -prog /usr/bin/meld foo.cc
Run Code Online (Sandbox Code Playgroud)
这将给我一个与我的签出,修改版本的foo.cc与存储库版本的差异,但使用diff程序融合.
我意识到一个无证的命令行参数是不太可能的,所以如果你必须一起破解它,那对我有用.
曾经有人向我展示了一个很酷的IntelliJ Idea插件,可以在Java源代码编辑器中显示来自CVS的所有用户提交信息.
它在窗口右侧有一个垂直条,用户更改/提交的每个代码块都以不同颜色突出显示,鼠标悬停将显示有关用户和版本等的详细信息.
我渴望在Eclipse中有类似的东西.
有什么指针吗?
我公司的UNIX部门目前使用CVS作为源版本控制系统.他们以一种非常奇怪的方式使用它:开发/测试/生产代码的不同存储库(对于同一个项目),没有人标记任何东西,奇怪的目录架构等等.
该系统已经设置了很长时间,但现在,我有机会组织一次会议,我必须建议更改.我想让他们从CVS更改为SVN(Mercurial或者Git可能会更好,但我真的不推荐使用我不熟悉的系统,切换到SVN已经是一个很大的进步) .
我对CVS没有多少经验,所以我无法有效地比较它们:我只知道它不支持原子操作并且它已被弃用.
你会用什么杀手锏来说服我的同事做转换?
非常感谢你.
我们正在从CVS转换为Mercurial hg.
我们的基础架构是Windows 2003/IIS6
这是我到目前为止所做的:
在我的机器上,开发服务器上和登台服务器上安装Mercurial.
对于过去的发展,我们总是分享一个分支,不理想,但合并是一种痛苦,我们从不打扰和处理它.
现在,如果我理解正确,我们应该这样做:
本地:
需要紧急修复错误,使用影响SAME文件作为我们的功能
DEV
暂存(QA需要在测试feature1之前签署该重要的错误修正
我想获得cvs中模块的所有提交列表,而不检查该模块.这可能吗?如果是这样的话?
我可以像这样使用cvs log命令:
cvs log > commitlog.txt
Run Code Online (Sandbox Code Playgroud)
但这似乎只适用于我正在运行命令的已检出模块.我希望能够获取模块的日志而无需检查它.
我已经在我的独立开发工作中达到了一个目的,我想开始使用Subversion技术.
到目前为止,我一直只是通过导出当前数据库进行备份,并将它们与我的PHP项目文件一起压缩.
我在线阅读了一些文章并观看了Linus Torvalds的一个视频 - 一般判决似乎是Git已经进入并且旧的CVS技术已经出局.
我目前没有在Linux下运行,我用Windows完成所有PHP工作 - > Eclipse.由于Eclipse在JVM上运行,因此跳入Linux - > Eclipse将或多或少透明 - 文件系统不在话下.
我想要完成的是能够保持不变的修订历史 - 但我希望这几乎完全透明.此外,我在MVC框架中工作,我希望能够向设计师发布我的观点,并让他们在修订控制系统内工作.
Egit会完成我需要的吗?或者单人劳动力的开销是多少?我建议你使用什么,以便我可以保留修订历史记录?
我还要求免费服务!
我正在使用TortoiseCVS来访问CVS服务器.我收到以下错误:
In D:\source\foo: "C:\Program Files\CVSNT\cvs.exe" -q update -P -d
CVSROOT=:ssh:annan@foo-bar.co.uk:/home/cvsroot
cvs update: failed to create lock directory for `/home/cvsroot/foo' (/var/lock/cvs/foo/#cvs.lock): Permission denied
cvs update: failed to obtain dir lock in repository `/home/cvsroot/foo'
cvs [update aborted]: read lock failed - giving up
Error, CVS operation failed
Run Code Online (Sandbox Code Playgroud)
我之前遇到过这个问题,并设法解决了这个问题,但是这次我还没弄清楚.我相信这与不同的人提交拥有自己所有权的文件有关.
在线阅读了几篇文章之后,我尝试将/ home/cvsroot和/ home/cvsroot/foo更改为777权限,并递归地将/ home/cvsroot /的所有权更改为cvs:cvs(我是其中的成员).
我想file1从CVS存储库签出到当前目录.
File1的路径是: /opt/application/CVS_REPOSITORY/project/lib/source/file1
我该怎么做?
首先我设置:
setenv CVSROOT /opt/application/CVS_REPOSITORY
Run Code Online (Sandbox Code Playgroud)
那我该怎么办?
cvs co -r . /lib/source/file1 ??
Run Code Online (Sandbox Code Playgroud)
要么
cvs co -r . project/lib/source/file1 ??
Run Code Online (Sandbox Code Playgroud) cvs ×10
eclipse ×3
svn ×2
command-line ×1
diff ×1
file ×1
git ×1
history ×1
linux ×1
meld ×1
mercurial ×1
permissions ×1
tortoisecvs ×1
vcs-checkout ×1