2010-12-19 103 views
6

我只需要Chrome的指定版本的代碼,如r69297,它是Chrome的最新開發版本。 我使用git,所以我按照這裏的說明: http://code.google.com/p/chromium/wiki/UsingGit 但是,我同步所有的代碼,並檢查提交日誌後,我找不到此修訂! 然後我想到了標籤,並在這裏搜索。 How to use git to checkout a specified version of Webkit? 在這裏我發現了,但在按照所有步驟,並等待相當長的時間後,我仍然沒有得到任何東西。 鉻的git倉庫是否保留標籤信息?我怎麼能得到他們? THX如何從git獲取指定標籤版本的Chromium代碼?

+0

你是什麼意思,「我還是什麼都沒有」?你能展示運行這些命令的結果嗎? – 2010-12-19 10:53:14

+0

@Jean Hominal:沒有輸出。在git樹中不存在版本69297,只有r69298。 – ayanamist 2010-12-19 14:47:35

+0

嘗試使用gitk查看Git存儲庫的歷史記錄 - 您可以通過其散列引用精確提交 – 2010-12-19 15:40:34

回答

12

當有人問,鉻使用SVN。現在,git是主要的VC系統,所以我將使用git標籤/散列而不是r ####修訂版。

在這個答案中,我假設您已經設置了構建Chromium的前提條件(包括初始結賬)。如果你沒有那個,請繼續閱讀教程http://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html。您可以跳過步驟gclient sync,因爲您將在下面的步驟中替換依賴項。

場景:我想在最新的穩定Chromium版本上應用補丁。要了解最新的穩定版本,請訪問https://omahaproxy.appspot.com/。根據該頁面,最新版本是38.0.2125.104。如果您想查看上一個/下一個版本,請訪問http://blink.lc/chromium/refs/瞭解標籤概述。這個標籤列表包括未發佈的版本,例如, 38.0.2125.106(當基於第三個標識符的基線上應用了新修補程序時,最後的內部版本號會增加)。

# Inside chromium/src/ 
git fetch origin 38.0.2125.106 

# Create a new branch "my_stable_branch" that is based on the just-fetched HEAD. 
git checkout -b my_stable_branch FETCH_HEAD 

# ... apply the patch ... 
# (e.g. by editing the files) 
# (e.g. by using git cherry-pick [commit id]) 
# (e.g. by using git checkout [commit id] [file path]) 

# Commit changes (assuming that you want to keep track of your changes) 
git commit -va 

# Now synchronize the dependencies to the current branch 
gclient sync --with_branch_heads # --jobs 16 if you wish to use parallelism 

# Now compile the release build. The output will be stored in src/out/Release. 
ninja -C out/Release chrome chrome_sandbox 
1

分行

如果你不能找到一個特定的承諾,我會檢查它是否比「大師」以外的分支。當你第一次克隆版本庫時,你只能得到「主」分支。您可以運行下面的檢出一個分支可在遠程鉻庫:

git branch new-local-branch origin/some-remote-branch 
git checkout new-local-branch 

顯然使用了正確的名稱爲遠程分支並命名當地分行的東西邏輯。

標籤

當你克隆一個Git回購,你應該在默認情況下得到的所有的標籤。您可以通過運行git taggit tag -l來獲取所有已定義標籤的列表。

如果你沒有看到任何標記,可以明確地獲取他們:

git fetch --tags

一旦你有你想要的標籤,檢查它開始使用該版本的代碼庫:

git checkout <name of tag>

相關問題