<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Merge Trains > 原文:[https://docs.gitlab.com/ee/ci/merge_request_pipelines/pipelines_for_merged_results/merge_trains/](https://docs.gitlab.com/ee/ci/merge_request_pipelines/pipelines_for_merged_results/merge_trains/) * [Merge train example](#merge-train-example) * [Prerequisites](#prerequisites) * [Enable merge trains](#enable-merge-trains) * [Start a merge train](#start-a-merge-train) * [Add a merge request to a merge train](#add-a-merge-request-to-a-merge-train) * [Remove a merge request from a merge train](#remove-a-merge-request-from-a-merge-train) * [View a merge request’s current position on the merge train](#view-a-merge-requests-current-position-on-the-merge-train) * [Immediately merge a merge request with a merge train](#immediately-merge-a-merge-request-with-a-merge-train) * [Troubleshooting](#troubleshooting) * [Merge request dropped from the merge train immediately](#merge-request-dropped-from-the-merge-train-immediately) * [Merge When Pipeline Succeeds cannot be chosen](#merge-when-pipeline-succeeds-cannot-be-chosen) * [Merge Train Pipeline cannot be retried](#merge-train-pipeline-cannot-be-retried) * [Unable to add to merge train with message “The pipeline for this merge request failed.”](#unable-to-add-to-merge-train-with-message-the-pipeline-for-this-merge-request-failed) * [Merge Trains feature flag](#merge-trains-feature-flag-premium-only) # Merge Trains[](#merge-trains-premium "Permalink") 版本歷史 * 在[GitLab Premium](https://about.gitlab.com/pricing/) 12.0 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/9186) . * [GitLab Premium](https://about.gitlab.com/pricing/) 12.6 中[引入了壓](https://gitlab.com/gitlab-org/gitlab/-/issues/13001)入[和合并](../../../../user/project/merge_requests/squash_and_merge.html)支持. 啟用[用于合并結果](../index.html#pipelines-for-merged-results-premium)的管道時,管道作業將運行,就好像源分支中的更改已被合并到目標分支中一樣. 但是,目標分支可能正在快速變化. 準備合并時,如果有一段時間沒有運行管道,則目標分支可能已更改. 現在合并可能會帶來重大變化. *合并列車*可以防止這種情況的發生. 合并列是合并請求的排隊列表,每個請求都等待合并到目標分支中. 可以將許多合并請求添加到火車. 每個合并請求都運行其自己的合并結果管道,該管道包括列車上位于其*前面*的所有其他合并請求的更改. 所有管道并行運行,以節省時間. 如果合并請求的管道失敗,則不會合并重大更改,并且目標分支不受影響. 合并請求已從火車中刪除,并且其后面的所有管道都重新啟動. 如果火車前部用于合并請求的管道成功完成,則更改將合并到目標分支中,其他管道將繼續運行. 要將合并請求添加到合并系列,您需要具有[權限](../../../../user/permissions.html)才能推送到目標分支. **注意:**每個合并列車最多可以并行運行**20 條**管道. 如果將超過二十個合并請求添加到合并列,則合并請求將排隊,直到合并列中的插槽可用為止. 可以排隊的合并請求數量沒有限制. ## Merge train example[](#merge-train-example "Permalink") 將三個合并請求( `A` , `B`和`C` )依次添加到合并序列中,這將創建三個并行運行的合并結果管道: 1. 第一條管道基于`A`與目標分支組合的更改運行. 2. 第二個管道基于`A`和`B`的更改以及目標分支運行. 3. 第三條流水線基于`A` , `B`和`C`的更改以及目標分支. 如果`B`的管道發生故障,則將其從火車上移除. `C`的管道將在`A`和`C`更改的情況下重新啟動,但`B`不會更改. 如果`A`然后成功完成,它將合并到目標分支中,并且`C`繼續運行. 如果將更多合并請求添加到火車,它們現在將包括目標分支中包含的`A`更改,以及來自火車中已經存在的合并請求的`C`更改. 閱讀有關[合并火車如何使您的主人保持綠色的](https://about.gitlab.com/blog/2020/01/30/all-aboard-merge-trains/)更多信息. 觀看此視頻,以獲取有關[并行執行合并訓練如何防止提交破壞默認分支](https://www.youtube.com/watch?v=D4qCqXgZkHQ)的演示. ## Prerequisites[](#prerequisites "Permalink") 要啟用合并火車: * 您必須具有維護者[權限](../../../../user/permissions.html) . * 您必須使用[GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner) 11.9 或更高版本. * 在 GitLab 12.0 和更高版本中,您需要[Redis](https://s0redis0io.icopy.site/) 3.2 或更高版本. ## Enable merge trains[](#enable-merge-trains "Permalink") 為您的項目啟用合并火車: 1. 如果您使用的是自我管理的 GitLab 實例,請確保正確設置了[功能標志](#merge-trains-feature-flag-premium-only) . 2. [配置您的 CI / CD 配置文件,](../../index.html#configuring-pipelines-for-merge-requests)以便為合并請求運行管道或單個作業. 3. 訪問項目的**設置>常規,**然后展開**合并請求** . 4. Check **為合并結果啟用合并訓練和管道**. 5. Click **保存更改**. **警告:**如果選中該復選框,但未將 CI / CD 配置為使用管道處理合并請求,則合并請求可能會停留在未解決的狀態,或者管道可能會被丟棄. ## Start a merge train[](#start-a-merge-train "Permalink") 要開始合并火車: 1. 訪問合并請求. 2. Click the **開始合并火車** button. [![Start merge train](https://img.kancloud.cn/af/12/af12870c91f49e146d22799241fff434_531x58.png)](img/merge_train_start_v12_0.png) 現在可以將其他合并請求添加到列車中. ## Add a merge request to a merge train[](#add-a-merge-request-to-a-merge-train "Permalink") 要將合并請求添加到合并火車: 1. 訪問合并請求. 2. 單擊**添加以合并火車**按鈕. 如果用于合并請求的管道已經在運行,則無法將合并請求添加到列車. 相反,您可以計劃**在最新管道成功時將**合并請求添加到合并**序列中** . [![Add to merge train when pipeline succeeds](https://img.kancloud.cn/0a/7a/0a7a60ec9cf059ee2314e3e1b209c0a4_690x60.png)](img/merge_train_start_when_pipeline_succeeds_v12_0.png) ## Remove a merge request from a merge train[](#remove-a-merge-request-from-a-merge-train "Permalink") 1. 訪問合并請求. 2. 單擊**從合并火車中刪除**按鈕. [![Cancel merge train](https://img.kancloud.cn/bb/80/bb808c1f8eea8611d4c28b9cc15ff13a_966x138.png)](img/merge_train_cancel_v12_0.png) 如果您想稍后再將合并請求添加到合并訓練中,則可以. ## View a merge request’s current position on the merge train[](#view-a-merge-requests-current-position-on-the-merge-train "Permalink") 將合并請求添加到合并列之后,合并請求的當前位置顯示在管道小部件下: [![Merge train position indicator](https://img.kancloud.cn/9f/91/9f91e547c8e3caa194cf4099a24644ef_974x122.png)](img/merge_train_position_v12_0.png) ## Immediately merge a merge request with a merge train[](#immediately-merge-a-merge-request-with-a-merge-train "Permalink") 如果您有必須緊急合并的高優先級合并請求(例如,重要補丁程序),則可以使用" **立即合并"**選項繞過合并程序. 這是將更改合并到目標分支的最快選項. [![Merge Immediately](https://img.kancloud.cn/b8/43/b843ad4683c9bfeffb2149b77dbf4aa6_706x171.png)](img/merge_train_immediate_merge_v12_6.png) **警告:**每次您立即合并一個合并請求時,都會重新創建當前的合并序列,并重新啟動所有管道. ## Troubleshooting[](#troubleshooting "Permalink") ### Merge request dropped from the merge train immediately[](#merge-request-dropped-from-the-merge-train-immediately "Permalink") 如果合并請求不可合并(例如,在制品,存在合并沖突等),則您的合并請求將自動從合并列中刪除. 在這些情況下,刪除合并請求的原因在**系統注釋中** . 檢查原因: 1. 打開從合并序列中刪除的合并請求. 2. 打開**討論**選項卡. 3. 查找包含以下任一內容的系統注釋: * 文本**…從合并列表中刪除了此合并請求,因為…** * **…中止了來自合并序列的合并請求,因為…**原因在" **…"**短語之后的文本中給出. [![Merge Train Failure](https://img.kancloud.cn/2e/11/2e1131354129475baec88cbfa5e7991a_993x415.png)](img/merge_train_failure.png) ### Merge When Pipeline Succeeds cannot be chosen[](#merge-when-pipeline-succeeds-cannot-be-chosen "Permalink") 啟用合并訓練后,當前無法[在管道成功](../../../../user/project/merge_requests/merge_when_pipeline_succeeds.html)時合并. 有關更多信息,請參見[相關問題](https://gitlab.com/gitlab-org/gitlab/-/issues/12267) . ### Merge Train Pipeline cannot be retried[](#merge-train-pipeline-cannot-be-retried "Permalink") 合并火車管道無法重試,因為合并請求在失敗后會從合并火車中刪除. 因此,重試按鈕不會出現在管道圖標旁邊. 如果管道發生故障,則應將合并請求[重新排隊](#add-a-merge-request-to-a-merge-train)到合并[序列中](#add-a-merge-request-to-a-merge-train) ,然后合并[序列](#add-a-merge-request-to-a-merge-train)將啟動新的管道. ### Unable to add to merge train with message “The pipeline for this merge request failed.”[](#unable-to-add-to-merge-train-with-message-the-pipeline-for-this-merge-request-failed "Permalink") 有時" **開始/添加到合并訓練"**按鈕不可用,合并請求顯示"此合并請求的管道失敗. 請重試該作業或推送新的提交以修復故障." 在**"設置">"常規">"合并請求"中**啟用**"** [**管道必須成功"**](../../../../user/project/merge_requests/merge_when_pipeline_succeeds.html#only-allow-merge-requests-to-be-merged-if-the-pipeline-succeeds)時,會發生此問題. 此選項要求您運行新的成功管道,然后才能將合并請求重新添加到合并系列. 合并訓練可確保在合并發生之前每個管道都已成功完成,因此您可以清除" **管道必須成功"**復選框,并保持**啟用"啟用合并訓練和合并結果的管道** (合并訓練)". 如果要與合并訓練一起保持啟用" **管道必須成功"**選項,可以在發生此錯誤時為合并結果創建新管道,方法是轉到" **管道"**選項卡,然后單擊**"運行管道"** . 然后**在管道成功時**單擊" **開始/添加"以合并火車** . 有關更多信息,請參見[相關問題](https://gitlab.com/gitlab-org/gitlab/-/issues/35135) . ### Merge Trains feature flag[](#merge-trains-feature-flag-premium-only "Permalink") 要啟用和禁用合并訓練功能,請使用`:disable_merge_trains`功能標志. 要檢查您的 GitLab 實例上是否啟用了功能標志,請要求管理員執行以下命令: ``` > sudo gitlab-rails console # Login to Rails console of GitLab instance. > Feature.enabled?(:disable_merge_trains) # Check if it's disabled or not. > Feature.enable(:disable_merge_trains) # Disable Merge Trains. > Feature.disable(:disable_merge_trains) # Enable Merge Trains. ``` 禁用此功能后,所有現有的合并訓練都將被取消,并且" **開始/添加到合并訓練"**按鈕不再出現在合并請求中.
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看