我们公司一直在使用git分支策略,这使得长期运行的sprint工作分支看起来像这样:
function updateProfilePage(val, field) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
type: 'POST',
url: '/userprofilepage',
data: {
val: val,
field: field
}
}).done(function () {
$('.alert').find('ul').append('<li>Profile page has been updated:' + data + '</li>');
}).fail(function () {
$('.alert').find('ul').append('<li>Profile page has not been updated:' + data + '</li>');
}).always(function (e) {
console.log(e);
});
}
通过当前的sprint,我们切换到为每个sprint创建一个新名称的新分支:
master
\
Sprint
\
Feature1
Feature2
随着这种变化,出现了一些痛点:
我已经通过了VSTS文档,但我觉得我已经错过了如何设置每个sprint的新分支(这与VSTS分支策略文档一致)。
所以,问题是:
我们的期望是触发构建的分支是构建的分支。这可能吗?
每次从master创建新分支时,建议设置分支策略的建议是什么?我们是否应该期望每次都必须手动配置所有设置?
答案 0 :(得分:3)
我们已发布guidance on Git branch strategy。指向TFVC的兄弟答案是不正确的。
我们不建议大多数团队长期运行的开发分支机构。相反,保持一个干净的主人并使用短期主题分支。然后,您不再需要继续创建和删除策略,构建定义等。
如果由于某种原因必须继续使用长寿分支,请考虑在分支的名称中使用斜杠,例如sprints/s100
。我们已经有一个REST API(很快就是管理员用户界面)来设置prefix-matching basis上的策略,停留在/
。因此,您可以在sprints/
上设置分支政策,它会自动应用于sprints/s100
,sprints/s101
等。
答案 1 :(得分:1)
建议的分支策略始终使用相同的分支,即使是新的sprint 。作为this article,您可以始终使用development
分支进行不同的冲刺。
原因是,如果两个冲刺之间的代码差别很大,则可以使用分支策略。但缺点为:
sprint*
,很容易跟踪整个项目版本。最后,针对您的问题(如果您仍需要当前的策略):
Sprint*
,然后您新创建的分支Sprint ###也适用于CI构建。获取构建定义的源步骤不会影响您的CI构建,repo和branch仅选择手动构建队列。