Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SVN能做到这一点吗?还是我应该转到Git_Git_Svn - Fatal编程技术网

SVN能做到这一点吗?还是我应该转到Git

SVN能做到这一点吗?还是我应该转到Git,git,svn,Git,Svn,我们有一个内部CMS,目前我们检查了该CMS的基本副本,并作为新的回购协议重新提交,并对其进行更改。如果这些更改是对核心的,我们必须将文件复制到基本副本,或者如果我们复制到核心,我们必须将更改复制到每个项目 我们正在为一个新项目尝试做的是: 签出基础项目的副本 以新回购协议的形式登记 对2进行任何特定于项目的更改 对basecopy进行任何核心更改,并更新我们从中签出的副本 因此,1个基地,基地的多个回购协议,更新基地并将更新推送到回购协议 但我们不希望基地被更新,从我们作出的反应 这可能吗 =

我们有一个内部CMS,目前我们检查了该CMS的基本副本,并作为新的回购协议重新提交,并对其进行更改。如果这些更改是对核心的,我们必须将文件复制到基本副本,或者如果我们复制到核心,我们必须将更改复制到每个项目

我们正在为一个新项目尝试做的是:

签出基础项目的副本 以新回购协议的形式登记 对2进行任何特定于项目的更改 对basecopy进行任何核心更改,并更新我们从中签出的副本 因此,1个基地,基地的多个回购协议,更新基地并将更新推送到回购协议

但我们不希望基地被更新,从我们作出的反应

这可能吗

====更新=====

在做了更多的谷歌搜索之后,我可以使用svn中的分支功能来完成这项工作吗


让每个新项目都从基础中分支出来,这样,如果我们需要将更改从基础推送到所有项目中,我们仍然可以这样做。我们可以对每个分支进行特定于项目的更改

是的,你能做到。它被称为财产


因此,只为核心文件创建单独的存储库,并将其作为外部项目插入到其他项目中。

是的,您可以这样做。它被称为财产


因此,只为核心文件创建单独的存储库,并将其作为外部项目插入到其他项目中。

嗯,听起来像是Git或Mercurial等DVC的工作。并不是说DVCS在这里更好,而是根据我的经验,当前可用的实现比SVN更好地处理分支和合并。使用Git或Mercurial,您可以设置很好的库内合并,而无需强制执行层次结构。但主要是由于您的要求,即不使用副本中的某些更改来更新基础,因此您似乎需要选择性更新

是的,SVN可以做到。也许如果你从未将新回购协议的变更提交给基金会

相反,对于DCV,推送内容、时间和地点的方式非常灵活:


编辑:我对svn:externals知之甚少,检查虫族的答案,看它是否合适。

嗯,听起来像是Git或Mercurial这样的DVC的工作。并不是说DVCS在这里更好,而是根据我的经验,当前可用的实现比SVN更好地处理分支和合并。使用Git或Mercurial,您可以设置很好的库内合并,而无需强制执行层次结构。但主要是由于您的要求,即不使用副本中的某些更改来更新基础,因此您似乎需要选择性更新

是的,SVN可以做到。也许如果你从未将新回购协议的变更提交给基金会

相反,对于DCV,推送内容、时间和地点的方式非常灵活:


编辑:我对svn:externals知之甚少,请检查zerkms的答案,因为它似乎合适。

在这种情况下,集中式和专用SCM之间没有显著差异。git的子模块,mercurial的嵌套存储库和svn的外部存储库。它们的行为方式完全相同。@zerkms:呃。。。不。SVN外部和Git子模块的行为不同:@VonC:它们非常相似。在原始问题的上下文中,我看不出有任何区别,尽管我不否认有区别。@zerkms:true。在这种情况下,没有构成涉及,SVN外部是足够的。我同意后考虑。我的观点是使用Git和Mercurial vs SVN处理分支和合并是多么容易,但这并不是特定于DVCS的,因为它是底层实现。在这种情况下,集中式和专用的SCM之间没有明显的区别。git的子模块,mercurial的嵌套存储库和svn的外部存储库。它们的行为方式完全相同。@zerkms:呃。。。不。SVN外部和Git子模块的行为不同:@VonC:它们非常相似。在原始问题的上下文中,我看不出有任何区别,尽管我不否认有区别。@zerkms:true。在这种情况下,没有构成涉及,SVN外部是足够的。我同意后考虑。我的观点是使用Git和Mercurial vs SVN处理分支和合并是多么容易,但这并不是特定于DVCS的,因为它是底层实现。正如我所回答的,您在这里可以做的最好的事情是使用外部存储库。具体的项目更改应该应用于扩展基类hello OOAD,而不是修补。特定的项目变更应该应用于扩展基类OOAD,而不是修补。