git何时检测到拉取请求的更新?

时间:2016-02-03 11:28:53

标签: git pull-request bitbucket-server

环境:

  1. Atlassian Stash v3.11.2(https://hub.docker.com/r/atlassian/stash/
  2. Git client(1.9.1)
  3. 和git新手(我)
  4. 在对分支b1上的文件test.txt进行更改时,我看到了创建拉取请求的提示,我做了(id 1)。然后,在另一个VM上:

    git fetch origin +refs/pull-requests/1/merge:my_pr_branch_01
    git checkout my_pr_branch_01
    

    文件test.txt显示我的更改,没问题。

    在早期的VM上,对test.txt进行了更多更改(并推送到origin b1)。拉请求现在有2个提交。这就是出现混乱的地方:

    当我在VM2上运行时:

    git checkout master
    git fetch origin +refs/pull-requests/1/merge:my_pr_branch_01
    git checkout my_pr_branch_01
    

    预计也会看到第二次提交的变化。没找到他们。

    然后跑了:

    git fetch origin +refs/pull-requests/1/merge:my_pr_branch_02
    git checkout my_pr_branch_02
    

    第二次提交的更改仍然没有出现在test.txt中。

    然后点击stash UI,查看pull请求的diff选项卡。第二次提交的更改确实显示出来。然后在VM2上:

    git fetch origin +refs/pull-requests/1/merge:my_pr_branch_03
    git checkout my_pr_branch_03
    

    现在我确实看到test.txt带有第二次提交的更改。

    以下是问题:

    1. 什么时候检测到更新的提交(除了访问拉取请求URL)?
    2. 如何让git知道拉取请求的新提交?
    3. 如何使它(当然)忽略拉取请求的新提交?
    4. 我的最终目的是在Jenkins上使用Stash Pull Request构建器插件执行大量工作(通过构建流程启动)。为此,我试图找到一种让所有工作都使用相同代码的有保证的方法。

1 个答案:

答案 0 :(得分:3)

Atlassian Stash的开发人员post确认refs/pull-requests/*/fromrefs/pull-requests/*/merge已更新"懒惰"以便提供更好的缩放。触发更新的事件之一是通过Web UI访问pull-request。因此,上述行为符合实施。