2017-08-22 24 views
0

我們使用TFS從Git存儲庫部署PDF文件。我們如何創建自上次部署以來發生更改的文件列表?使用Git

部署綁定到特定分支。

每隔一段時間就會決定該分支包含足夠好的文件進行部署。

我們只想部署自上次部署以來更改過的文件,而不是整個分支。這是巨大的,部署整個事情需要很長的時間。

如何在部署發生時以某種方式標記分支,然後在需要下一次部署時,將當前分支與標記進行比較,然後僅部署更改/差異/增量?

爲了強調,這個分支只包含PDF文件,而不是代碼。它不需要編譯。

澄清:

在構建服務器,我們要避免每次部署過程運行時克隆整個存儲庫。通常,部署的第一步是克隆存儲庫,但這需要很長時間。有沒有辦法只拉下已添加或修改的文件?也許是稀疏結賬?

回答

2

所有的答案就在你的問題:

    要部署每次
  1. ,您創建一個標籤:git tag X.Y.Z ${COMMIT_TO_TAG}
  2. 通過列出與以前的標籤,比較只是文件:git diff --name-status ${PREVIOUS_TAG}..${TAG_TO_DEPLOY}

尋找上一個標籤:

  • 在創建當前標籤之前:git describe --first-parent --tags --abbrev=0 ${COMMIT_TO_TAG}
  • 創建當前標籤後:git describe --first-parent --tags --abbrev=0 ${TAG_TO_DEPLOY}~1
+0

將如何構建腳本知道目前承諾是創建標籤? 構建腳本將如何知道以前的部署標記是什麼? – Infin8Loop

+0

「每隔一段時間就會決定該分支包含足夠好的文件來部署。」 ==>你決定你必須標記。也許可以通過向構建腳本添加一個選項。 – zigarn

+0

澄清,@zigarn, 在構建服務器上,我們希望避免每次部署過程運行時都克隆整個存儲庫。通常,部署的第一步是克隆存儲庫,但這需要很長時間。有沒有辦法只拉下已添加或修改的文件?也許是稀疏結賬? – Infin8Loop

相關問題