2014-10-11 56 views
0

我正在爲我的一個項目創建一個makefile。我想要做的一件事就是在合適的時候從git倉庫中取出。但是,我打算在的回購庫中具有生成文件,以便我可以編輯它並推送更改。當makefile編輯自己時會發生什麼?

如果此代碼已運行並且存儲庫中的遠程服務器上的makefile發生更改,會發生什麼情況?

# ... More code before here 

git: 
    git pull 

(假裝那些標籤,因爲我不能在編輯器中鍵入一個選項卡)

請問:

  • 混帳不拉?
  • 它好嗎? (生成文件是否存儲在RAM中/在運行之前移動到另一個位置?)
+0

我認爲你會更好地查詢遠程存儲庫並進行SHA比較,然後中止並使用用戶執行更新,而不是嘗試從Makefile中處理事情 – 2014-10-11 19:18:27

回答

0

正如G. Blake Meike所說,我認爲當你運行make時,它會執行原始makefile的副本。然後,如果您的遠程回購更新本地產品,使用git pull,新更改不會影響當前進程。

只給你一個可能的解決方法,你可以嘗試以下方法:

當地現有運行make

default: 
    git clone remote_repo to_tmp_dir 
    cd to_tmp_dir && make app 
    # rm tmp_app 
app: 
    # compile your app 

隨着你應該永遠與你的應用程序的最後一個版本中運行這個僞代碼。

缺點是,即使您沒有對遠程回購進行更改,您也可以每次都克隆(即時鬆動)。

1

Make使您的makefile的副本保持打開狀態。如果git替換項目目錄中的makefile,該副本不會被替換。

這就是說,這似乎是一件非常奇怪的事情。

相關問題