首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Subversion和mixed-revisions:破坏构建的秘诀?

Subversion和mixed-revisions:破坏构建的秘诀?
EN

Stack Overflow用户
提问于 2009-08-14 22:59:29
回答 5查看 1.9K关注 0票数 3

在使用TFS一段时间后,我刚刚回到subversion,总的来说,我非常兴奋:)

有一件事我记得不一样。我不记得能够从过期的工作副本中提交。或者,也许我只是记不住“过时”的定义。我认为“过期”意味着自从我上次更新我的工作副本以来,任何文件都被修改过,而不仅仅是我在本地修改过的文件(我称之为冲突)。

我认为这是一个问题的原因是,如果我可以提交我的更改,而不首先与其他人所做的更改集成,那么它使得“破坏构建”变得非常容易。

那么,这个混合版本的东西是最近才添加的,还是只有我一个人这样做?

EN

回答 5

Stack Overflow用户

发布于 2009-08-15 06:49:04

是你,因为它一直都是这样的;-)

如果您尝试提交的任何项目都已过期,并且存储库有一个“通用”修订号,那么您的提交将失败,但只要您要提交的所有内容都是最新的,您就可以提交。当然,这并不意味着这是一种最佳实践。

请记住,svn不仅仅用于软件开发。一般来说,拥有这种能力可能是件好事。

此外,AFAIK TFS在这方面的工作非常相似,对吧?

票数 3
EN

Stack Overflow用户

发布于 2009-08-14 23:38:46

简而言之:通常情况下,从一个新签出的标签进行构建是一个很好的实践,它意味着要离开开发人员的办公桌。如果可能,在单独的机器上。

如果你遵循这个规则,你就能睡得更好。

稍微长一点的回答:这意味着,在发布之前,你必须更新你的工作副本,构建它,运行所有的测试,当你满意时,从它制作一个副本(标签)。然后指示构建机器从该标记的新签出进行构建。将构建的结果交给测试部门。

如果您以后需要检索特定版本,则始终需要签出该标记。如果该版本标记为"tags/release_4.2.0“,而您需要进行修复,请将该标记复制到某个分支(”branch /release_4.2.1“)并将其修复。当您确定它可以正常工作时,将分支移动到"tags/release_4.2.1“。同样,让构建机器签出该标记,构建代码,并将其交给测试。

票数 1
EN

Stack Overflow用户

发布于 2009-08-15 00:05:23

我并不认为这种“混合”版本的能力本质上是不安全的。即使您使用的VCS要求所有文件在执行提交之前都是完全最新的,VCS也无法验证您是否实际编译了代码或运行了所有单元测试。这类事情应该由开发人员的信徒和持续集成系统来涵盖。

Subversion对世界的看法非常以文件为中心,就像它的CVS祖先一样。您可以检出特定文件的特定修订,而无需接触其周围的任何文件。这与其他系统不同,比如Git (我不熟悉TFS的细节),在这些系统中,不会跟踪单个文件的特定签出版本。相反,整个签出是存储库在其历史上的特定时间点的视图,任何偏离该视图的情况都被视为新的更改。当然,您仍然可以根据自己的喜好随意提交多项或少项新更改,如果您没有选择正确的组合,则可能会破坏构建。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1280588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档