gerrit refs相關的一些小研究

2021-08-02 18:42:28 字數 4456 閱讀 4310

gerrit 作為 code review使用不算難,然鵝,總有一些內容知其然不知其所以然,這裡稍作研究和記錄。

1. refs/for 和 refs/heads

向gerrit伺服器提交**命令:

$git push origin head:refs/for/mybranch

refs/for/mybranch需要經過code review之後才可以提交;

refs/heads/mybranch不需要code review。

2.refs/for 和 refs/changes

向refs/for/

命名空間下推送提交並不會在其中建立引用,而是為新的提交分配乙個id,稱為review-id,並為該review-id的訪問建立如下格式的引用refs/changes/nn//m,其中: 

review-id是 gerrit為評審任務順序而分配的全域性唯一的號碼。

nn為review-id的後兩位數,位數不足用零補齊。即nn為review-id除以100的餘數。

m為修訂號,該review-id的首次提交修訂號為1,如果該修訂被打回,重新提交修訂號會自增。

gerrit server上的project 下的refs目錄內容:

$ ls refs/

changes  heads  meta  notes  tags  users

$ ls refs/changes/

02  05  06  07  08  09  10  11  12  13  14  15  16  17  18  19  20  21  22  23  60

檢視review-id

$ cat refs/changes/02/2/1

a29ef399448a1f762506964a52ef5bff7012c39c

這裡review-id為2,其nn為後兩位數,因為不足用0補齊,所以為02,修訂號m為1

$ cat  refs/changes/60/60/1 

28bf746fe8a4e2c2d03380ffa111a42dc4959b2e

這裡review-id為60,其nn為後兩位數,無需補齊,所以為60,修訂號m為1

其中a29ef399448a1f762506964a52ef5bff7012c39c為已經 abandoned提交,28bf746fe8a4e2c2d03380ffa111a42dc4959b2e為最近一次提交,在網頁上都可以查到。

3.refs/tags

這個是打tag用的,當然提交tag之前需要給使用者組配置tag許可權,囉嗦兩句:

1)如果需要推送輕量級標籤(不帶注釋), 給refs/tags/*命名空間賦予create reference許可權, 

輕量級標籤就像

git中的分支一樣;

2)如果需要刪除或者重寫標籤, 

給refs/tags/*命名空間賦予帶force

選項的push許可權,

刪除標籤需要和刪除分支一樣的許可權;

3)標籤的email一定會與提交者的郵箱進行驗證,如果推送其他人的標籤需要同時賦予push annotated tag和forge committer identity許可權.

來個小栗子:

新增乙個tag

$ git tag -a v0.1 -m "0.1版本" //新增乙個帶注釋的tag

$ git tag             //檢視tag

v0.1

$ git push  origin --tags    //將tag提交到遠端

$ git show v0.1     //檢視tag 資訊

tag v0.1

tagger: wang_chunai 

date:   mon jun 19 10:28:50 2017 +0800

0.1版本

伺服器上和本地的tag目錄下檢視commit資訊,資訊相同

伺服器上:

$ cat refs/tags/v0.1

ef64aed96a0a6cfa2bf9d6dcf01de3fee7d5c312

本地倉庫:

$ cat .git/refs/tags/v0.1

ef64aed96a0a6cfa2bf9d6dcf01de3fee7d5c312

本地檢視遠端commit

$ git ls-remote origin

28bf746fe8a4e2c2d03380ffa111a42dc4959b2e        head

a29ef399448a1f762506964a52ef5bff7012c39c        refs/changes/02/2/1

33e87492a8b6bd6733ddbff033dc7cba7277f05a        refs/changes/05/5/1

42aa02e8b390433ae6e905a23128c7c0f3037d9c        refs/changes/06/6/1

ffdbec854e3aa03e9b1144e5832e5f9258f40e05        refs/changes/07/7/1

a84cada069126991a2dacdce8b60de5c029152e2        refs/changes/08/8/1

3e006bdbf60075b8bb2cacb8f46521d0593c9025        refs/changes/09/9/1

7740f34e71ccee8ffe3bc1a56a9301c42c19f80e        refs/changes/10/10/1

47b1bda1c00c8ec0280932efc54096f3a11abeb4        refs/changes/11/11/1

4e4f5e0482c85f46f4a2c6fa4083da26c4b6e571        refs/changes/12/12/1

96a42295059c685bf710bf6fc8e28757fe22b79b        refs/changes/13/13/1

bf06e38e5b0fc2ceaa3ed5a9b3ac8f64a0e78605        refs/changes/14/14/1

59039ea9c6b1223e0b85162ccaa5deb43fe55ce9        refs/changes/15/15/1

14c7051a6eb2b0a670450840191569f0582b374b        refs/changes/16/16/1

64593454f9fd8450c753abc69ffb8268b3c429b7        refs/changes/16/16/2

55e00044539447ed2cb15a50ee92ef054399cbdc        refs/changes/17/17/1

8b0493c94694bf96b944dc95c86201e91129bd97        refs/changes/18/18/1

c8614cad9950244bdfd29f75a3a47dffadbf0709        refs/changes/19/19/1

f443a551b184bc80fc6c45cd6a2edaf4ad042297        refs/changes/20/20/1

cdc97ca1984ca26ab3e99123818612aa72c669a1        refs/changes/21/21/1

7cb096695faed2dfdf7a00366c06f6cc4b2ef690        refs/changes/22/22/1

c31f1afaed312d8c13868823558b5f15aad7f816        refs/changes/23/23/1

28bf746fe8a4e2c2d03380ffa111a42dc4959b2e        refs/changes/60/60/1

28bf746fe8a4e2c2d03380ffa111a42dc4959b2e        refs/heads/dev

33e87492a8b6bd6733ddbff033dc7cba7277f05a        refs/heads/master

7740f34e71ccee8ffe3bc1a56a9301c42c19f80e        refs/heads/release

cdb225b3f3c7f23e2b9cf2f81e19e941ea53ad41        refs/notes/review

ef64aed96a0a6cfa2bf9d6dcf01de3fee7d5c312        refs/tags/v0.1

c31f1afaed312d8c13868823558b5f15aad7f816        refs/tags/v0.1^{}

從最後兩條記錄可以看出,tag v0.1的commit 為ef64aed96a0a6cfa2bf9d6dcf01de3fee7d5c312       ,是基於commitc31f1afaed312d8c13868823558b5f15aad7f816    上所打的tag

相關的一些東西

這幾天一直在看關於http和前端效能優化相關的內容,今天先寫一篇關於http的文章,如果時間允許的話再接著把前端效能優化的寫完。畢竟還要留著時間去看小片嘛?接下來就是正文啦!瀏覽器輸入url後http請求返回的完整過程 就是下圖這個啦 這個可是我從某課網偷來的 從輸入位址到頁面渲染 在http的五層...

一些webrtc gcc相關

1.google congestion control 就是webrtc中用的 webrtc通控制傳送端資料傳送位元速率來達到控制網路擁塞。draft ietf rmcat gcc 02.pdf 較早的草案draft alvestrand rmcat congestion 03.pdf 2.1 從w...

一些stl相關

vector swap ivec 清記憶體,單純的clear或remove是不會把記憶體清掉的 ivec.reserve 100000 預設vector空間大小,避免因為vec分配得不夠,後期還需要重新分配空間 ivec.swap vector ivec or vector ivec swap iv...