标签: cvs

获取特定用户的CVS历史记录

如何获取特定用户对存储库的提交历史记录?

我可以通过命令行或TortioseCVS访问CVS,因此使用任一方法的解决方案就足够了.

cvs tortoisecvs

9
推荐指数
2
解决办法
9153
查看次数

在Hudson或其他CI工具中使用Ant自动检出和编译Eclipse项目的最佳方法?

我们有几个产品有很多共享代码,必须保留几个版本.

为了解决这个问题,我们使用了很多Eclipse项目,其中一些包含库jar,还有一些包含共享源代码(在几个项目中,为了避免获得具有大量依赖关系的巨大堆,同时能够从头开始编译所有内容以确保源和二进制文件是一致).我们使用projectSet.psf管理那些,因为这些可以直接从CVS中拉出所有项目并留下完全准备好的工作区.我们不直接进行ant构建或使用maven.

我们现在希望能够将所有这些项目及其各种版本放在一个连续集成工具中 - 我喜欢Hudson但这只是一个品味问题 - 这实际上意味着我们需要一种自动方式来检查项目到一个新的工作区,并按照每个项目中的项目文件中的描述编译源文件夹.Hudson没有提供这样的方法来构建项目,所以我一直在考虑采用这种方法的最佳方法.

想法已经存在

  • 查找或编写一个了解projectSet.psf并映射到cvs-checkout和编译标签的ant插件/转换器.
  • 从Eclipse中创建build.xml文件并使用它们.我试过这个,发现结果很冗长,绝对位置不好用自动工具把文件放在他们想要的地方.
  • 编写一个了解projectSet.psf的Hudson插件来派生配置并构建它.
  • 只要咬紧牙关,手动创建和更新CI配置,只要东西坏了 - 我不喜欢这个:)

我真的很想听听别人的经历,所以我可以决定如何解决这个问题.


编辑:另一个选项可能是使用CI,它更了解Eclipse项目和/或项目集.我们没有宗教信仰 - 这只是让自己无需自己动手就可以运行的问题.巡航控制可能是一个更好的选择吗?其他?


编辑:发现ant4eclipse有一个"团队项目集"工具. http://ant4eclipse.sourceforge.net/


编辑:使用ant4eclipse和ant-contrib ant扩展来构建一个完整的工作空间,作为一个类似于Eclipse 3.5M6中的Runnable Jar工具的sjgned runnable jar文件.我仍然依赖于Eclipse来创建初始的空工作空间,并提取ProjectSet,这是下一个障碍.


编辑:使用双配置结束,即Hudson从CVS中提取与ProjectSet.pdf文件中列出的相同的模块集(需要具有相同的标记),使它们彼此相邻.然后ant4eclipse与嵌入在主模块中的projectSet.psf文件很好地配合.警告:Hudson中的模块列表必须手动更新,之后需要手动工作区清理才能让Hudson"发现"现在有比以前更多的项目.这对我们来说已经好几个月了,但是让一切都在ant文件中运行是相当繁琐的.


编辑:使用ant4eclipse的"使用团队项目"和项目面板中的Ctrl-A,Ctrl-C和Hudson的CVS项目中的Ctrl-V已经证明可以很好地适应我们(对于成熟的项目很少改变).我正在等待ant4eclipse 1.0的发布 - http://www.ant4eclipse.org/,目前在里程碑2中 - 看看有多少本土功能可以被ant4eclipse的东西取代.

编辑:ant4eclipse是在M4的20100609,因此http://www.ant4eclipse.org/node?page=1的时间表有些滑落.


编辑:使用我们的ant4eclipse方法更长时间后的结论是构建脚本变得非常粗糙并且难以维护.团队ProjectSet工具(ant4eclipse用于定位项目)适用于基于CVS的存储库,但不是在我们迁移到git之后(这本身就是一件大事).新项目很可能基于maven,因为这在Jenkins中有很好的支持.

java eclipse cvs continuous-integration hudson

9
推荐指数
1
解决办法
4964
查看次数

如何以编程方式获取CVS结帐时的最新提交日期

对于我正在使用CVS实现二分法的脚本,我想弄清楚当前结账的"时间戳"是什么.换句话说,如果我在分支/标签上,我想知道最后一个时间戳被提交到该分支/标签.如果我在头上,我想知道头上的最后一个时间戳.

我知道这不是100%保证,因为cvs checkout可以在不同的时间戳/修订/ ...有不同的文件,但是大多数情况下正确的解决方案对我来说都很好.

天真的,我想到了

cvs log -N | grep ^date: | sort | tail -n 1 | cut -d\; -f1
Run Code Online (Sandbox Code Playgroud)

将要做到这一点,但事实证明它贯穿整个提交历史,对于所有分支/标签.

cvs

9
推荐指数
1
解决办法
6495
查看次数

cvs,"文件应该删除并且仍然存在(或者再次返回)"

我正在尝试提交一个文件已经"cvs remove"d的项目,但实际上需要在那里.内容已完全重写,但需要保留相同的名称.

我无法提交项目或重新添加文件而不会收到这个恼人的错误消息.如何在CVS中"取消删除"文件?

cvs version-control

9
推荐指数
1
解决办法
3215
查看次数

将包含Eclipse项目的CVS存储库转换为git的最强大的方法?

我有一个情况,我有一个老年人的CVS存储库,我们希望一次性转换为git,同时保持完整的历史记录等.

存储库根目录下的所有文件夹都包含Eclipse项目(普通或动态Web项目),包括.classpath和.project.我们使用Team ProjectSet来检查给定任务所需的项目(项目集位于包含main的项目中,其余是库项目).

签出Team ProjectSet后,工作区将完全填充.

多年来这种方法运作良好(除了3.5附带的项目设置部分),如果可能的话,我们希望以类似的方式使用git,但我们不确定如何.

我玩过一段时间git cvs import但失败了 - 可能是因为我们没有使用模块.

您如何建议我们这样做,以及我们应该如何使用git来允许我们当前使用共享库项目?我们将HAVE介绍Maven和创造我们的图书馆项目的Maven模块?或者只是蚂蚁常春藤?


编辑:我现在设法通过合适的cvs2svn调用将我们的CVS存储库转换为Subversion,并发现Eclipse很好地识别了生成的Subversion存储库.不幸的是在克隆http: //github.com/iteman/svn2git`并尝试运行bin/svn2git之后我得到了

tra@Sandbox:~/cvsgit/svn2git/svn2git$ bin/svn2git
bin/svn2git:35:in `initialize': wrong number of arguments (2 for 1) (ArgumentError)
        from bin/svn2git:35:in `new'
        from bin/svn2git:35
Run Code Online (Sandbox Code Playgroud)

这是与Ubuntu 10.04.1 LTS服务器,我尝试了各种sudo与Ruby及其宝石的东西,但没有完全理解我做了什么,因为我不是一个Ruby程序员,所以我可能搞砸了一些东西.我很感激建议 - 如果最简单的是安装另一个Linux变种来进行转换,那很好.


编辑:

https://help.ubuntu.com/community/Git http://css.dzone.com/articles/subversion-git-morning


编辑:我第一次尝试使用默认的svn2git成功完成(一段时间后),我得到一个很好的存储库,其中git branch -a大致报告

tra@Sandbox:~/gitroot/svnroot$ git branch -a
* master
  remotes/XX64_DEPLOYED_CODE
  remotes/Beta1
  remotes/Beta2
  remotes/SV46
  ... lots more
Run Code Online (Sandbox Code Playgroud)

我们有兴趣能够检查SV46分支并使用它(我们基本上不关心标签,只关心实际的分支).我已经设置了gitosis并将此存储库推送到gitosis,并将其克隆到另一台计算机,以了解如何使用Eclipse进行"使用SV46"位. THAT库不知道所有的分支:

tra@TRA ~/git/git00 (master)
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

我是否需要按照svn2git的原始结果来获取gitosis存储库中的信息?我需要用参数克隆吗?我应该使用建议的版本而不是Ubuntu附带的版本重做svn2git步骤吗?

编辑:事实证明,使用"git …

java eclipse git cvs

9
推荐指数
1
解决办法
2293
查看次数

将cvs转换为mercurial

我正在尝试将CVS存储库转换为mercurial但无法使其工作.

我从一个干净的结账开始:

cvs -d :sspi;username=xxx;hostname=yyy.local:/cvsrepos checkout repo
Run Code Online (Sandbox Code Playgroud)

哪个工作正常

然后我做:

hg convert .
Run Code Online (Sandbox Code Playgroud)

但它失败了:

assuming destination .-hg
initializing destination .-hg repository
connecting to :sspi;username=xxx;hostname=yyy.local:/cvsrepos
abort: unexpected response from CVS server (expected "Valid-requests", but got 'E cvs [server aborted]: Root :sspi;username=xxx;hostname=yyy.local:/cvsrepos must be an absolute pathname\n')
Run Code Online (Sandbox Code Playgroud)

我在Windows 7上运行cvsnt

编辑:
调查此更多,似乎mercurial启动本地服务器cvs server,然后与该实例而不是远程服务器进行通信.

我基于以下观察:

  1. 我创建了一个cvs.bat文件,用于将命令行参数发送到文件.该文件显示参数"server".
  2. 进程监视器显示hg.exe尝试打开C:\cvstest\:sspi;username=xxx;hostname=yyy.local:\cvsrepos当然失败的文件 .

是不是hg不理解sspi连接字符串?

编辑2:

不是解决方案,但我找到了一种解决方法:将完整的远程存储库复制到我的机器上,并且:

cvs -d :local:\localcopyofrepo checkout repo
hg convert repo
Run Code Online (Sandbox Code Playgroud)

一切都很好

cvs mercurial

9
推荐指数
1
解决办法
3123
查看次数

为什么eclipse没有捆绑的svn客户端

默认情况下,Eclipse使用CVS客户端插件进行部署.为什么默认情况下没有捆绑的svn源控制客户端?

eclipse subclipse svn cvs subversive

9
推荐指数
1
解决办法
375
查看次数

偏好SVS或Git的原因

我刚刚发现了一个仍然使用CVS的开源项目.我想知道现在还有什么理由比CVN或Git更喜欢CVS.(我不认为懒得迁移作为答案!;-))

CVS有其他两个缺乏的东西吗?比如说,支持$ OS或$ fancy_tool?

在" 使用SVN而不是CVS有什么好处?"有详细解释为什么不使用CVS.但我想反过来问问.CVS不可能都是坏事.或者是吗?

language-agnostic svn git cvs version-control

9
推荐指数
2
解决办法
4163
查看次数

如何从命令行CVS提交二进制文件?

我需要从命令行以二进制模式提交jar文件.

我应该使用什么命令?以下不起作用:

$ cvs commit -kb -m "Committing v2.5.7" myJar.jar
Usage: cvs commit [-Rlf] [-m msg | -F logfile] [-r rev] files...
-R          Process directories recursively.
-l          Local directory only (not recursive).
-f          Force the file to be committed; disables recursion.
-F logfile  Read the log message from file.
-m msg      Log message.
-r rev      Commit to this branch or trunk revision.
Run Code Online (Sandbox Code Playgroud)

cvs binaryfiles

9
推荐指数
2
解决办法
1万
查看次数

是否有将.cvsignore文件转换为.gitignore文件的规定?

我正在使用cvs2svn-2.4.0进行CVS到Git的迁移.这不包括.cvsignore到.gitignore转换.我怎么能把.cvsignore文件转换成.gitignore文件?

git cvs ignore cvs2git

9
推荐指数
2
解决办法
1820
查看次数