Version control 当使用包或框架时,是否有标准的方法来使用版本控制?

Version control 当使用包或框架时,是否有标准的方法来使用版本控制?,version-control,frameworks,packages,Version Control,Frameworks,Packages,i、 e.您是将整个软件包放在VCS下,还是仅将您正在编程的组件放在VCS下?从本质上来说,软件包将得到升级,并且需要将代码添加到VCS中,另外还有很多代码是静态的 具体来说,我将致力于Joomla,添加和构建模块,定制模块和外观。起初,这将只是我,但可能会扩大到两个以上的开发人员作为项目的坡道。我的反应只是对风投们说,这意味着我知道一切都在那里,通过CI部署更容易(?) 另一种方法是排除大部分未被修改的代码,这可能是容易出错和费力的 由于没有一个具体的答案,我正在寻找经验或最佳实践建议,我在i

i、 e.您是将整个软件包放在VCS下,还是仅将您正在编程的组件放在VCS下?从本质上来说,软件包将得到升级,并且需要将代码添加到VCS中,另外还有很多代码是静态的

具体来说,我将致力于Joomla,添加和构建模块,定制模块和外观。起初,这将只是我,但可能会扩大到两个以上的开发人员作为项目的坡道。我的反应只是对风投们说,这意味着我知道一切都在那里,通过CI部署更容易(?)

另一种方法是排除大部分未被修改的代码,这可能是容易出错和费力的


由于没有一个具体的答案,我正在寻找经验或最佳实践建议,我在it社区维基上做了标记。

我通常做两件事中的一件(我使用SVN):

  • 将库/框架的发布版本(无SCM元数据)放在我的SVN存储库中的单独文件夹中。这样我就知道代码是稳定的,如果有什么东西停止工作,那不是因为对框架的更改,而是我自己的错误(我可以很容易地修复)
  • 使用
    svn:externals
    从库/框架的官方svn自动更新。这不太安全,但有时很好,特别是当您是库/框架的贡献者并且可以自己修复可能出现的bug时
如果您正在使用SVN,并且希望使用externals,请执行以下操作:

svn propset svn:externals "foldername http://libdomain.com/svn/trunk" libs

…其中
libs
是您的库文件夹(此SVN属性将被设置到其中),
foldername
是此特定库应放置在其中的子文件夹的名称。

您还可以使用
-r
选项将
svn:externals
设置为库/框架的特定版本,以避免更改外部依赖项时出现问题。@Juri,说得好!虽然在实践中,导出该修订版并定期检查(如我上面的第一个建议)的区别很小,但Juri的建议在理论上肯定更“漂亮”。)我可能会使用SVN,但如果我使用Mercurial呢?大概差不多吧?在我看来,.hgignore似乎比svn中排除要简单得多。我想我没有在Mercurial tho中遇到:externals选项。