码迷,mamicode.com
首页 > 其他好文 > 详细

Git Gerrit Repo User Manual

时间:2014-10-20 11:22:51      阅读:361      评论:0      收藏:0      [点我收藏+]

标签:des   android   style   http   color   io   os   ar   for   

 

 

 

 

 

 

 

 

 

Git Repo Gerrit User Manual
Revision History

 

Revision #

Description

Date

Author

0.1

Initial this document

2014/09/05

Deman Lu

0.2

Add First time push Code to Gerrit

2014/09/09

Deman Lu

0.21

Add FAQ

2014/09/09

Deman Lu

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Contents

Preparation....................................................................................................................... 4

Install............................................................................................................................... 4

Git Setup:.................................................................................................................. 4

Git Config:................................................................................................................ 4

Set Commit Template:................................................................................................. 4

Set git ignore............................................................................................................. 4

Install Repo................................................................................................................ 5

Gerrit Config:............................................................................................................ 5

Get First Project................................................................................................................ 7

FAQ................................................................................................................................. 8

No Branch Ready For Upload Error.......................................................................... 8

CONFLICT Error..................................................................................................... 8

Upload Merges Error................................................................................................ 9

Repo init Error......................................................................................................... 9

Repo syntax error near unexpected token `newline‘................................................... 9

Repo init Connect Error:.......................................................................................... 9

Everything up-to-date........................................................................................... 9

 

 

 

Preparation

OS: Linux or Ubuntu

Software: Git, SSH, Repo

Install

Git Setup:

$ sudo apt-get install git

$ sudo apt-get install git-core

$ git version // version >= 1.6

 

Git Config:

$ git config --global user.name "deman_lu" 

将user name为你gerrit系统的账号(邮箱地址(全小写的前缀))

$ git config --global user.email "deman_lu@htc.com"     

将user email设置成你htc的邮箱(邮箱地址全小写)

$ git config --global core.editor vim

$ git config --global merge.tool vimdiff

$ git config --global color.ui "auto"

 

Set Commit Template:

$ vim ~/.git-template

Symptom:

Bug ID:

Root Cause:

Solution:

Note:

$ git config --global commit.template ~/.git-template

 

Set git ignore

$ vim ~/.gitignore

$ git config --global core.excludesfile ~/.gitignore

 

Install Repo

$ cd

$ mkdir bin

$ cd bin

$ PATH=~/bin:$PATH

$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo

If you can’t connect google, you can copy repo from:

\\10.33.8.3\cht000\CHT200\CHT210\CHT211\Trainning\

COS_Android\Git&Repo\bin

$ chmod a+x ~/bin/repo

 

Gerrit Config:

 

Gerrit Web: http://10.33.137.230/project/

Add public Key:

$ ssh-keygen -t rsa

If you have  ssh key, you can use it directly。

$ cat ~/.ssh/id_ras.pub

 

Select [Setting] ==> [SSH Public Key] Press Add key, and paste your id_rsa.pub content into edit text then added.

 

 

Add Server host key to known_hosts:

 

$ vim ~/.ssh/known_hosts

Paste the host key from below image showing to known_hosts.

$ vim ~/.ssh/config

host gerrit

user deman_lu

hostname 10.33.137.230

port 29418

identityfile ~/.ssh/id_rsa

 

$ ssh gerrit

  ****    Welcome to Gerrit Code Review    ****

  Hi Deman_Lu, you have successfully connected over SSH.

  Unfortunately, interactive shells are disabled.

  To clone a hosted Git repository, use:

  git clone ssh://deman_lu@10.33.137.230:29418/REPOSITORY_NAME.git

Connection to 10.33.137.230 closed.

 

If you want to see more detail:

http://10.116.121.47/mediawiki/index.php/Git_Repo_Gerrit_User_Manual

Get First Project

Using following command to get repository.

$ repo init -u ssh://deman_lu@10.33.137.230:29418/manifest.git -m team1.xml

The highlight is the manifest.xml,please connect Administrator to get your manifest.xml

If you just want to do some practices, you can ignore it and it will download default project.

$ repo sync

 

$repo forall -c "git checkout -b master origin/master"

This will create branch master and connect origin branch origin/master.

Thus, you can push your code to origin/master

$ repo upload --re=bill_tan,deman_lu 

 

FAQ

No Branch Ready For Upload Error

Check if it is in some branch

$ git branch

If no branch, change to master branch.

$ git checkout master

Modify some files and commit

$ repo upload --re=<User Name>

After doing below thing, you also meet these error:

Clean the repo and delete ~/.repoconfig

Please according to “Git First Project” step by step.

 

CONFLICT Error

 

hailong@hailong-Lenovo:~/test/localhost/gerrit/repo/test$ repo sync

remote: Counting objects: 5, done

remote: Finding sources: 100% (3/3)

remote: Total 3 (delta 2), reused 3 (delta 2)

Unpacking objects: 100% (3/3), done.

From ssh://localgerrit:29418/new/test

   fdcfcac..5f7a5f9  master     -> origin/master

project test/

First, rewinding head to replay your work on top of it...

Applying: m_cm_6.2

Using index info to reconstruct a base tree...

Falling back to patching base and 3-way merge...

Auto-merging readme.txt

CONFLICT (content): Merge conflict in readme.txt

Recorded preimage for ‘readme.txt‘

Failed to merge in the changes.

Patch failed at 0001 m_cm_6.2

 

You should manual merge file when repo sync.

$ git add readme.txt

$ git rebase --continue

 

Upload Merges Error

 

When repo upload: ![remote rejected] master -> refs/for/master (you are not allowed to upload merges)

Reason: you have doing some merge but gerrit not allow.

Solution: reset your merge and using git rebase to commit.

$ git reset --hard <commit id>

$ git fetch

$ git rebase origin/master

$ repo upload --re=<User Name>

Repo init Error

Repo int: fatal: Cannot get https://code.google.com/p/git-repo/clone.bundle

fatal: error [Errno 104] Connection reset by peer

Solution: $ vim ~/bin/repo  modify  REPO_URL=‘http://android.googlesource.com/tools/repo‘

Repo syntax error near unexpected token `newline‘

/root/bin/repo: line 1: syntax error near unexpected token `newline‘
/root/bin/repo: line 1: `<!DOCTYPE html>‘This problem is that repo’s version is too old, using a new one.

$ curl http://git-repo.googlecode.com/files/repo-1.12> ~/bin/repo

Or copy repo file form other members.

 

Repo init Connect Error:

fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle
fatal: HTTP error 403

When repo init, repo will download code from google, so, the reason is you known.

Please try more times or do it later.

 

Everything up-to-date

$ git push showing :every thing up to date, but you also have not push anthing!

$ git push origin master : this will be denied by gerrit, you can’t push code to git repository directly.

We must push to review repository:

$git push origin HEAD:refs/for/master

 

Git Gerrit Repo User Manual

标签:des   android   style   http   color   io   os   ar   for   

原文地址:http://www.cnblogs.com/deman/p/4036653.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!