相关疑难解决方法(0)

使用SVN而不是CVS有什么好处?

我的公司正在使用CVS作为源控制的事实标准.但是,我听说很多人都说SVN更好.

我知道SVN比较新,但除此之外,我对它的好处并不熟悉.

我正在寻找的是两个系统的良好,简洁的比较,注意到Java/Eclipse开发环境中每个系统的优点和缺点.

svn cvs version-control

59
推荐指数
4
解决办法
4万
查看次数

标记和检入文件到cvs(Sticky标签)的问题

我在使用发布标签签出文件时遇到了一些麻烦,希望有人可以提供帮助.

基本上我的存储库是这样构造的

module1
 - src
 - jsp
 - conf

module2
 - src
 - jsp
 - conf
Run Code Online (Sandbox Code Playgroud)

版本可以包括module1或module2或两者的更改.有几个开发人员可以处理任何模块中的任何文件.

要处理新版本,我们使用以下命令检出最新版本(例如LIVE-REL-2.4)

cvs checkout –r “LIVE-REL-2.4” moduleName
Run Code Online (Sandbox Code Playgroud)

请注意,我们不会从trunc中查看.这样做的原因是,如果您从trunc结帐,则包含其他开发人员已签入但您不想包含在下一版本中的文件.

在我们检查了最新版本之后,我们进行了更改并检查了新文件.对于交付,我们使用特定于错误的标记标记我们签入的所有新文件.

cvs tag BUG434 <file1> 
cvs tag BUG435 <file2>
Run Code Online (Sandbox Code Playgroud)

然后,我们将新标签应用于当前版本中的每个文件.

cvs tag – r “LIVE-REL-2.4” “LIVE-REL-2.5”
Run Code Online (Sandbox Code Playgroud)

然后,我们为我们签入的新文件添加新的发布标记

cvs tag –r “BUG434” “LIVE-REL-2.5”
cvs tag –r “BIG435” “LIVE-REL-2.5”
Run Code Online (Sandbox Code Playgroud)

以上内容确保新版本将包含"最新发布的版本"中的所有文件以及我们希望包含在发行版中的错误修复.要检查新版本,我们就这样做

cvs checkout –r “LIVE-REL-2.5” moduleName
Run Code Online (Sandbox Code Playgroud)

上面的结账是经过测试和交付的.关于这个过程是否真的有效,但是有点混乱.我们突然有人抱怨他们无法检查任何新文件,如果他们通过标签签出.生成的错误如下所示

sticky tag `LIVE-REL-2.5' for file `DatabaseFacade.java' is not a branch
Run Code Online (Sandbox Code Playgroud)

我一直在阅读这个错误,但我还没有找到解决方案.从我从谷歌搜索收集到的,可用的解决方案如下

  • 在这些文件上运行"cvs update -A"以将工作副本还原到头部.

这不适合我,因为我不想释放"头"上的变化.我想要发布的修订版是上一版本的更新版本.'HEAD'上的那个可能是有人更新过的,并且不会在下一个版本中发布.

  • 标签需要成为一个分支

我希望我能做到这一点,但我似乎无法说服我的任何老板我们应该支持分支.我们不支持它,因为它显然使事情变得比它们需要的复杂得多.

  • 阻止人们签入未准备好在下一版本中发布的文件.

这可能会起作用,因为每当有新版本时我就可以从'HEAD'结帐.

现在我的问题真的如下,

  • 有没有办法我可以使用上述程序结账而不会遇到"粘性标签不是分支"错误?
  • 有没有更好的方法我可以实现上述相同的步骤,而无需使用分支? …

svn cvs

3
推荐指数
1
解决办法
9493
查看次数

标签 统计

cvs ×2

svn ×2

version-control ×1