我考虑过在网络服务器上进行一些高级的A / B测试,我希望我可以使用git轻松实现这一点。
让我用一个简单的例子进一步解释自己,让我说我有以下3个分支:
这些分支包含所有HTML文件,不同之处在于按钮颜色。
通常主分支机构会被提供给访问者,但是我想测试其他分支机构的10%访问者,看看哪个分支机构提供了最佳转换率(点击按钮)。
这将需要一些脚本,它将用户分组,然后为该用户提供正确的分支。
我正在进行的项目:
任何实验都必须能够在git分支中包含任何替代文件。在这种情况下,A / B测试不仅限于用户界面,但它应该(除其他外)也支持不同:
其中一些要点需要更改底层框架,使用方式或其他文件。因此,必须可以更改分支中的任何文件。
现在我想知道让服务器同时访问所有分支的选项。
我想到的选项:
我希望有一个更强大的解决方案来解决这个问题:
如何实现这一目标?
答案 0 :(得分:1)
您可以使用智能部署系统实施架构。您需要以下步骤:
您可以使用capistrano和Ruby语言的自定义任务实现此类部署策略。
更新的算法
这种方法比较复杂,但我们不克隆3个分支:
git diff --name-status blue..master
假设我们得到diff命令的输出
A test_added.txt
D test_deleted.txt
M text_modified.txt
D test/test.txt
A
或M
个字母(例如test_added.txt
,text_modified.txt
),我们应该git cat-file blob blue:test_added.txt > test_added.txt
D
(例如test_deleted.txt
),我们应该忽略此文件test/
)我们需要递归地继续执行上述步骤