不同版本控制工具是否适用于不同语言?

时间:2010-07-17 14:57:17

标签: version-control

我想知道,有没有哪种方式特定语言(C ++,Java,Python,Haskell等)特别适合一个VCS而不是其他语言?可能是由于语法或其他因素?

或者选择VCS 总是不受此类问题的影响?

4 个答案:

答案 0 :(得分:3)

我知道的所有VCS都是内容不可知的,您可以存储二进制或文本(ASCII / UTF-8)文件。选择VCS的一个可能因素是开发操作系统支持(例如:git具有糟糕的Windows支持)和IDE集成,这可能是特定于语言的。

至于VCS是否应该不受这些问题的影响,我真的相信。同时它应该足够灵活,让其他工具可以完成语言和项目特定的事情(大多数VCS通过钩子来完成)。

答案 1 :(得分:2)

您放入VCS的内容可能非常重要:

  • 存储:存储增量的方式可能因简单文本,Microsoft Word文档,UML模型(Rational .rose文件),html页面,...而不同 例如,请参阅 ClearCase type manager ,作为VCS根据元素内容管理存储的示例。

  • 合并:合并可以通过以下方式根据版本化文件的内容以不同方式完成:

    • 内部算法(如果VCS具有类型管理器)
    • 外部第三方合并工具,可根据文件的扩展名和内容推断出一些“智能”合并策略。

关于你的问题,根据我的知识,版本化文件中的编程语言永远不是存储或合并的标准:它们(文件)只是文本。
如果区别对待它们,则仅在合并过程中,并且仅当外部合并工具足够智能以基于文件内容执行某种类型的“智能”合并时。 /> 但是VCS本身通常不参与特殊合并(对于被视为文本的源文件)。

答案 2 :(得分:1)

VCS对你的内容无关紧要(你甚至可能没有代码),但你使用它的方式确实如此。大多数IDE可以与某些但不是所有版本控制系统集成。选择一个VCS,您的IDE可以集成(无论是本地还是插件),并提供显着的优势。

话虽如此,如果选择在没有IDE支持的VCS或根本没有VCS的情况下,总是始终使用VCS。

答案 3 :(得分:0)

倾向于使源文件的平均大小产生差异的事情。一些语言和编码样式往往导致10000多行代码文件。在这种情况下,您绝对需要基于合并的分支工具。使用较小的代码文件,其他人在同一文件中进行无关更改的可能性要小得多,因此主要通过锁定工作的工具/策略(仅偶尔进行合并)效果很好。