2011-11-18 47 views
2

从源代码控制的角度来看,用户对TFS和SVN的真正区别是什么?从源代码控制的角度来看,TFS操作与SVN相比如何?

例如:在SVN我们有基本的命令:

  • 退房
  • 出口
  • 提交
  • 更新
  • 删除
  • 还原

而且每个文件都有自己的修订版本号。

TFS是否也有这些命令?每个文件都有自己的修订号?

请仅从源代码控制角度回答。错误跟踪,ALM和定价在这个问题上没有受到威胁。

+1

在SVN ,版本库有一个版本号,而不是每个文件 –

+0

你的意思是每个文件都有它自己的版本号在SVN中,同一个commit中的所有文件共享同一个版本号 –

+0

@Rob,Albin比我强:提交的每组文件具有相同的修订版本号,如果您提交了一个文件,则会为其分配修订版号 – Machado

回答

2

我认为主要的区别是,Subversion支持(只)一个真正的乐观锁定策略,这意味着你通常彼此并行工作,第二个(和后来的)必须合并他们的变化到其他人。

在TFS中,您必须先结帐,即保留文件以进行更改,以完成任何工作。这导致更加悲观的锁定策略。

是的,一个很大的区别是,脱机工作不是TFS的选项,并且完全受Subversion支持。

TFS在我看来更好地支持分支和合并(至少在这里UI有很大的帮助)。

当提交/签入时,TFS和Subversion具有相似含义的不同术语。(以下内容来自同时使用这两种工具的同事。)

缺省值:修订: 的SVN提交操作发布改变到任何数量的文件和目录,为单一的原子交易 - >http://svnbook.red-bean.com/

缺省值:变更: 变更集是一个逻辑容器其中Team Foundation存储与单个签入操作有关的所有内容,具体为:文件和文件夹修订 - >http://msdn.microsoft.com/en-us/library/ms181408%28v=vs.80%29.aspx

签入期间,每个文件都与CheckIn编号关联(在S中计数ubversion)。如果您浏览文件夹/文件的历史记录,则可以将历史记录看成具有列的表格:changeSet Numbers/date/comment从我的角度来看,一个很好的功能是@Annotate函数。使用此功能,您可以在LOC级别上看到一个文件的更改集(第2-5行由changset 2更改“添加日志记录,第10行由changset 5更改”检查空值“;-))

+0

+1,谢谢,此编辑文件之前的强制检出/保留加上NO离线编辑是我想知道的那种差异,但是这些文件是否也有版本号,比如SVN?我可以通过某种方式查询TFS来确定当前的数量 一份文件 ? – Machado

+0

我已将信息添加到类似的术语修订和更改集。 – mliebelt

+0

“在TFS中,您必须先结帐,即保留文件以进行修改,从而完成任何工作,这会导致更加悲观的锁定策略。” - 这并不妨碍多人编辑相同的文件,除了无法合并的二进制文件 “是的,有一大区别是,离线工作不是TFS的选项,完全支持颠覆。” - 在2008+错误:http://stackoverflow.com/questions/313653/work-offline-in-team-foundation-server –

0

您列出的命令由所有源控制系统支持,因为它们是任何SC必须具有的绝对最小值,甚至可以被视为功能。

其实只有两件事情之间决定时要考虑的,其中大部分被明确排除在你的问题......

的一点是,如果你煮TFS到只是源代码控制系统那么差异可以忽略不计。仅供参考,我已经广泛使用(每年超过5年),目前只使用TFS,因为附加功能被封装在一个包中。

相关问题