0

我想做的我不认为 SVN:ignore 命令会做我想做的事。

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

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

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

我什至不知道这是否可能,因为将来很容易覆盖这些文件,不是吗?我将永远必须记住忽略该修订,不是吗?

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

4

3 回答 3

2

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

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

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

诚然,如果您的每个客户的需求大不相同,则此解决方案可能行不通。但是,由于您将代码库保存在同一个存储库中,我将假设它是。

于 2012-07-19T01:27:23.627 回答
1

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

于 2012-07-19T01:17:04.920 回答
0

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

于 2012-07-19T01:08:39.400 回答