zoukankan      html  css  js  c++  java
  • Git Gerrit Repo User Manual

     

     

     

     

     

     

     

     

     

    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.3cht000CHT200CHT210CHT211Trainning

    COS_AndroidGit&Repoin

    $ 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

  • 相关阅读:
    Nosql database
    NoSQL
    nodejs and db
    Nodejs and json
    Nodejs异步
    HTTP-304 NOT Modified
    Origin null is not allowed by Access-Control-Allow-Origin
    nodejs MVC
    solr 亿万级数据查询性能測试
    iOS8 对开发人员来说意味着什么?
  • 原文地址:https://www.cnblogs.com/deman/p/4036653.html
Copyright © 2011-2022 走看看