我需要合并一个分叉项目.不幸的是,CVS $ Id行不同,所以我尝试的合并工具报告所有文件都不同(其中95%只有这行不同)
是否有可以配置为基于模式忽略行比较结果的合并工具?
[编辑]我发现WinMerge有行过滤器 - 正确设置它们确实有效.
弗朗切斯科
我在结帐时收到此错误:
cvs checkout: warning: new-born file.java has disappeared
cvs [checkout aborted]: cannot make directory : No such file or directory
cvs status: cannot rewrite CVS/Entries.Backup: Permission denied
Run Code Online (Sandbox Code Playgroud)
我确信我对此文件夹拥有适当的权限,即使我尝试签出新文件夹也会发生这种情况.我也确定这些文件存在于cvs ..
我的结帐命令是:
cvs co -d dir -N -r(num) -r(num)... file file... and so on
Run Code Online (Sandbox Code Playgroud)
这个新生儿的意思是什么?
所以,我今天通过检查配置文件杀死了构建.它知道服务器的位置(想想SQL服务器等),而且我一直在反对在我的盒子上运行的服务器.通常,或者更确切地说,在其他情况下,我们会针对中央服务器运行.当然,每日构建没有找到"我的"服务器,因此破损.然后,再次编辑配置文件以在签入之前指向"正常"服务器,并在签入之后再次编辑它.
我一直想让VC忽略配置文件,这样就不会意外地检查它.另一方面,存储库应包含一个干净,可用的文件版本.我不可能忽略它,同时检查它,现在,我可以吗?
所以,我正在寻找的是一种方法,有一个文件,错误,检查,但永远不会检入.至少在最常见的情况下 - 如果配置文件发生重大变化,一些特殊的程序,以获得进入存储库的新版本是可行的.
如果您以前遇到过这个问题,我会对您找到的任何解决方案感兴趣.只要它们不打破构建,那就是;)
我在CVS存储库上有大量项目,我正在寻找提高其性能的方法.CVS压缩会有帮助吗?那么加密呢,它会降低速度吗?
谢谢!
我一直在阅读关于版本控制主题的所有问题,但我认为我没有找到一个看起来像我自己的场景.
场景是:
我们有一个中型/大型Web应用程序,它(至少应该有)一个部署到所有客户端的核心.当我们向客户端演示应用程序时,几乎所有应用程序都要求更改布局,列表中的数据或数据输入表单中的字段等等......几乎所有这些更改都需要更改剩余的"应用程序的"层".
在我们目前的情况下,我们使用CVS(使用tortoiseCVS)并且我们不使用分支,我们使用标签来区分代码更改与应用程序(是的,我知道它非常糟糕).当我们想要发布给特定客户端,签入更改等时,这会带来很多问题....准备发布版本总是需要大约1-2天的工作,有时它仍然会中断.
有时,来自客户端的请求也会包含在核心中,以便分发给所有客户端.
所以我的问题是:分支机构是将更改隔离到应用程序的自定义客户端版本的最佳方法吗?每当新客户要求定制时我们应该分支吗?或者我们应该将它视为一个完全不同的项目,具有不同的存储库?
所有不同的版本都必须保留,因为我听说分支是"临时的"我怀疑分支是否是最好的解决方案.
感谢您的答复.
安东尼奥迪亚斯
我很难让maven-release-plugin与我们的CVS存储库一起工作.希望我遗漏了一些明显的东西,或者再也没有人使用CVS/pserver和Maven2/3了?
第一个问题是scm URL:
maven CVS提供程序声明有效的scm URL如下所示:
scm:cvs<delimiter>pserver<delimiter>[username[<delimiter>password]@]servername[<delimiter>port]<delimiter>path_to_repository<delimiter>module_name
Run Code Online (Sandbox Code Playgroud)
所以,我正在努力
<scm>
<connection>scm:cvs:pserver:cvssserver:/home/cvs/repository/projecta:ejbprojectA</connection>
</scm>
Run Code Online (Sandbox Code Playgroud)
这应该是一个有效的cvs scm url.对于release-plugin,我将直接在relase插件配置中将用户名设置在本地settings.xml中.发布插件可以正常工作,但这会导致构建maven站点时出错:
[INFO] Username isn't defined.
[INFO] ------------------------------------------------------------------------
[INFO] Trace
java.lang.IllegalArgumentException: Username isn't defined.
at org.apache.maven.scm.provider.cvslib.repository.CvsScmProviderRepository.getCvsRootForCvsPass(CvsScmProviderRepository.java:113)
Run Code Online (Sandbox Code Playgroud)
这似乎是scm插件中的一个三岁的bug:http://jira.codehaus.org/browse/SCM-350
添加用户名变量以满足网站插件也不起作用,因为这会触发maven-release-plugin中的另一个(4岁)错误:http://jira.codehaus.org/browse/MRELEASE-128
如果我使用固定的用户名,我可以得到它以某种方式工作,但这不是真的令人满意.
第二个问题是平面项目结构,maven发布插件似乎无法与它们一起使用CVS,似乎有一些SVN的修复,但这些更改完全打破了平坦的cvs结构(项目模块旁边的主pom模块)
所以,最大的问题是,是否有其他人使用带有cvs的maven-release-plugin?你的设置如何?你是如何处理这些问题的?你是否使用平面项目结构(在eclipse中使用它更方便......)?
使用cvs remove <dir>和删除目录后cvs commit,是否有一种简单的方法来撤消更改 - 恢复工作副本和存储库中的目录?到目前为止,我只能找到一些建议,如果我还没有完成提交,或者它是一个文件而不是一个目录.如果可能,我想保留目录内容的历史记录.
我想将cvs和svn存储库组合成一个新的git仓库,当然不会丢失历史记录.捕获的是svn repo是历史上cvs repo的直接延续.有人刚刚创建了svn repo并且笨拙地从cvs添加了最后一个状态而没有保留任何历史记录.最近的消息来源是svn.我不想保留旧的回购.
图形历史:
CVS: A - B - C
SVN: D - E - F - G
Run Code Online (Sandbox Code Playgroud)
我想要的是:
GIT: A - B - C - D - E - F - G
Run Code Online (Sandbox Code Playgroud)
我用cvs2git用cvs制作了一个git repo,用svn制作了另一个git repo,git svn clone如http://john.albin.net/git/convert-subversion-to-git所述,但是无法弄清楚如何组合二.我这样做了:
git clone cvs.git
cd cvs
git remote add svn ../../svn.git
git fetch svn
Run Code Online (Sandbox Code Playgroud)
怎么办?git merge -s ours svn/master似乎做我想要的但不创建线性历史:
A - B - C - - - H'
/
D - E - F - G …Run Code Online (Sandbox Code Playgroud) 我在代码库CVS中的代码.我已将代码下载到我的eclipse中.当我在eclipse中提交更改时,在我编写CVS更新命令之前,它不会影响CVS中的代码.我认为在CVSROOT/loginfo中需要将一些代码添加到此文件中.你能帮忙吗?