SVN更新但忽略某些修订

时间:2012-07-19 00:31:48

标签: svn

我想做什么我不认为SVN:ignore命令会按照我的意愿去做。

我有一个SVN存储库,它是为少数单独客户端部署的相同应用程序。我对一组文件进行了更改,但只有一个客户端(我们称之为客户端A)需要进行这些更改(他们希望可以在iframe中访问其Web应用程序,而其他客户端则不需要)。 / p>

我不想忽略其他服务器上的文件,因为将来我会对他们需要的文件进行修改。

基本上对于非客户端A的每个人,我需要更新他们的服务器,但不更新仅针对客户端A的修订版x的任何更改。

我甚至不知道这是否可行,因为将来很容易覆盖那些文件不是吗?我会永远记得忽略那次修改不是吗?

如果无法实现,是否还有其他人使用过的变通方法?我认为的一种方法似乎无法按照我认为理论上的方式工作,将客户端A服务器的这些更改合并到另一个分支中,但是每次客户端需要时我都必须维护一个不同的存储库分支与其他客户不同的东西?

3 个答案:

答案 0 :(得分:2)

在这里有点逆势,我不认为分支或标签是解决问题的正确方法,除非你有无限的时间在开发线之间合并代码。

另一种方法是单一的代码库,您可以为所有客户调整功能的超集。对于每个客户端,您可以打开和关闭功能。 (您的每个客户端的配置都与您的代码库是分开的,对吗?)即使您的代码遵循不同的路径,您也可以获得一次修复常用功能的好处。

此外,当您为每个客户开发各种功能时,您有机会向客户销售可能已构建的功能。您需要做的就是配置它。

当然,如果您的每个客户的需求差异很大,这个解决方案可能无效。但是,由于您将代码库保留在同一个repo中,我将假设它是。

答案 1 :(得分:1)

我认为单独的分支是最合理的解决方案。至少在这种情况下,您可以设置测试系统来运行来自两个分支的测试:对于客户端A和其他人。您要么在某些subversion分支/ trunk中保持更改,要么很容易丢失/忘记它们。您不能完全自动排除修订版X,因为理论上在应用修订版Y的某些更改时可能存在冲突。 X假定存在来自修订版X的更改。

答案 2 :(得分:0)

这里使用的正确方法是为客户端A创建一个分支.SVN忽略是完全不同的东西。