2012-09-18 22 views
4

可能重複:
what is the git equivalent for revision number?svnversion,如果混帳的相當於

我已經使用了同時顛覆現在,想切換到飯桶。閱讀手冊我只有一個保留,我使用svnversion來獲得一個參考號碼:唯一的,簡短的,關於時間的單調(總是增加)。

  • 它必須是唯一的,所以我可以用它來重現文章。
  • 它必須很短,所以它是可讀的,可用於文件名,頁腳,版本號顯示。
  • 它只能增加(相對於時間單調),所以任何人都可以比較兩篇文章的年齡,而不知道年齡(日期)。

約束:如果我們可以得到比上述要求更多的分支標識符,只需要滿足同一分支上的文章。 (分支ID可以是任何可以比較身份的東西,「這是發佈分支嗎?」)

[這裏使用的word文章代表計算機程序,文檔或其他內容該版本控制系統]

回答

5

由於fork0說沒有這樣的等價的非線性歷史,你可以無論如何執行這個來獲得當前分支的提交數:

git log --oneline | wc -l 

這是我的一個隊友用來生成構建腳本中使用的構建號。

+0

你只是得到我的注意力「非線性歷史」,我剛剛意識到,這3個標準[我認爲]與非線性歷史的svnversion相遇。但我從來沒有依賴這個,因爲比較一篇文章,兩個獨立的分支是沒有用的。如果我爲所有文章在同一個分支上的問題添加一個約束,那麼現在這個答案是正確的嗎? –

+0

是的。我並沒有完全明白你的意思,而是以我們使用它的方式,通過保持我們的構建僅來自特定的分支,它爲我們完成了工作。 – rgngl

+0

我加了一篇關於我的文章是什麼意思的說明,有時候是這樣,有時候是這樣。如果它處於修訂控制之下,那麼它是修訂控制的文章。 –

3

沒有,是非線性的歷史上還沒有這樣的事情,但你可能看git describe,其輸出將至少滿足兩個第一準則。

1

構建編號的目的是爲了簡化一個過程以獲得給定構建的源代碼。您可以使用git show -s --pretty=format:%h來獲取唯一標識版本的sha1號碼,以便任何開發人員都可以在其存儲庫中檢出它。

但是,sha1不是增量編號,在大多數情況下甚至不能使用其他VCS。如果你想擁有它,那麼最好引入一個持續集成系統(例如詹金斯),它將增量編號編號併爲這些編號創建標籤。在這種情況下,它會更溫和地增長,因爲CI通常不會構建每個提交。

另外,提到的git describe做了很棒的工作來生成好的版本名稱。

0

Smudge|clean filters將允許你建立任何 ID,YYYYMMDD-N(N爲提交反此日期)可能是不錯的選擇