我似乎記得在另一個版本管理系統中看到,您可能會在代碼中放入一個複雜的魔術字符串,修訂版本管理系統會自動使用版本字符串替換該模式。 關鍵是我想在我的應用程序中顯示當前版本的about對話框。在我看到的關於Git的所有內容中,它並沒有改變你的源代碼。另一個想法是,git創建一個文本文件,源文件可以讀取到 顯示版本。 我不喜歡不得不調用Git並將代碼手動複製到代碼中的想法。我的應用程序可以知道它的Git標籤嗎?
1
A
回答
1
你可以設置一個post-commit鉤子調用一個python腳本像manuelbua/gitver
(從Manuel Bua,也on Stack Overflow)。
目標:
我想要的版本字符串和/或其它有用的信息將被自動嵌入在應用程序代碼,「編入」可以這麼說,沒有我記得做手工每一次。
工作流程:
- 你在你的資料庫的工作,現在你準備推動當前版本到下一個版本
- 創建一個發佈標籤,
git tag -a v0.0.2 -m 'Bump version'
- 定義您的
NEXT
版本,您正在努力通過運行gitver next 0.0.3
- 運行
gitver
,檢查一切正常- 可選:預覽或運行
gitver preview <template name>
或gitver update <template name>
更新項目的版本信息模板,然後重新生成項目,以反映版本更改- 任何其他手動看家的中間版本現在可以進行
- 你現在對下一個版本的工作,重複時發佈時間再次來到
,可幫助您生成正確的元數據信息的文件(如從派生版本pp最後一個標籤),供您在構建過程中使用。
1
- 混帳不支持擴展的「關鍵詞」 - 這是Linus的政策
在一切我所看到的關於Git的,它不會改變你的源代碼的單個位
錯了。它可以做到這一點 - 「文本規範化」的跨平臺使用是很大git的頭痛
重點是,我想在我的應用程序中顯示當前版本的對話框。
引擎蓋下它幾乎總是git describe
輸出,這命令(在構建階段),你可以使用你的工作目錄,存儲和使用後
- 臨:簡單
- 魂鬥羅:在構建過程中添加額外的複雜度
另一種實現是「塗抹|乾淨過濾器」:關鍵字,作爲靜態文本存儲ñ庫,轉換爲在工作目錄動態變化的元素(真 - 與過濾器程序執行此雙向化改造)
- 臨:透明度(你有倉庫都已經內源)
- 魂鬥羅:小可移植性(過濾器的行爲必須在每個工作場所可用),轉換規則的可能的複雜性
0
我只是問OS/Git的標籤信息。這是我的版本視圖(PHP):
<?php
$output = [];
exec("git tag", $output);
$version = end($output);
?>
{{$version}}
這樣我只將版本存儲在一個地方。
相關問題
- 1. ContentProvider可以知道查詢它的應用程序的任何內容嗎?
- 2. 我可以知道用戶何時刪除我的應用程序嗎?
- 3. 我們可以結合git標籤嗎?
- 4. Java程序可以知道它的當前目錄嗎?
- 5. Git集成應用程序如何知道我可以推送到主分支?
- 6. 我可以推動修補程序到git中的標籤
- 7. 我可以更改我的iPhone應用程序大圖標嗎?
- 8. 我可以使用IE8編寫單一標籤的Web應用程序嗎?
- 9. Facebook - 誰可以使用我的頁面標籤應用程序?
- 10. 我可以讓模型知道它的ModelForm嗎?
- 11. 我可以知道應用程序進入後臺時按了哪個鍵嗎?
- 12. iOS:UIView可以知道它的佈局過程已完成嗎?
- 13. Android - 我可以在給定的標籤上打開Instagram應用程序嗎?
- 14. 我可以處理iPhone應用程序的移動圖標嗎
- 15. 我可以編輯標準的SAP應用程序嗎?
- 16. 我可以將標籤推送到當前推送的git嗎?
- 17. 我可以在android中收集應用程序通知嗎?
- 18. 我可以知道算法類型嗎?
- 19. 函數可以知道它是如何被調用的嗎?
- 20. 我可以知道應用權限何時更改嗎?
- 21. UITableViewCell可以知道它應該是分組模式嗎?
- 22. 如何讓用戶選擇他們的城鎮,所以我的應用程序可以知道座標
- 23. 綁定我的NFC標籤,以我的應用程序
- 24. 我可以在body標籤內添加javascript到ADF應用程序嗎?
- 25. 我可以用css輸入標籤嗎?
- 26. 我可以通過編程的方式知道哪個應用程序將打開給定的URL嗎?
- 27. 我可以使用Git維護一個應用程序的兩個版本嗎?
- 28. 想要通過我的應用程序以編程方式知道應用程序的通知狀態
- 29. 我可以在我的應用程序中列出iPhone應用程序嗎?
- 30. 我可以從我的應用程序打開設置應用程序嗎?
感謝傳播我的工作! – Manuel
@曼努埃爾沒問題,並感謝你的腳本。我編輯了答案,以便更好地顯示正確的歸屬。 – VonC