Repo 창고 구축

3141 단어

1: 원격 Manifest 웨어하우스 만들기

ssh -p 29418 gerrit2 gerrit create-project -n mtk/manifest

2: 로컬 웨어하우스 Manifest 웨어하우스 초기화

git clone ssh://[email protected]:29418/mtk/manifest default 만들기xml 서버에 제출

3: 서버에서 프로젝트 초기화

repo init -u ssh://gerrit2/mtk/manifest --repo-url=git://codeaurora.org/tools/repo.git --repo-branch=caf-stable

4: 빈 항목에 맞게 Repo 수정


.repo/repo/command.py


command.py의 GetProjects는 로컬에 이 항목이 있는지 검사합니다. 결과 집합에 항목을 추가하지 않으면 논리적 설명을 해야 합니다.
      all_projects_list.extend(derived_projects.values())
      for project in all_projects_list:
        #if ((missing_ok or project.Exists) and
        #    project.MatchesGroups(groups)):
          result.append(project)

.repo/repo/subcmds/forall.py


이 파일도 로컬 창고를 읽을 것입니다. 없으면 오류를 보고하고 종료합니다.
      p = subprocess.Popen(cmd,
                           #cwd = cwd,
                           shell = shell,
                           env = env,
                           stdin = stdin,
                           stdout = stdout,
                           stderr = stderr)
      #if not os.path.exists(cwd):
      #  if (opt.project_header and opt.verbose) \
      #  or not opt.project_header:
      #    print('skipping %s/' % project.relpath, file=sys.stderr)
      #  continue
      setenv('REPO_PROJECT', project.name)
      setenv('REPO_PATH', project.relpath)
      setenv('REPO_REMOTE', project.remote.name)
      #setenv('REPO_LREV', project.GetRevisionId())
      setenv('REPO_RREV', project.revisionExpr)
      setenv('REPO_I', str(cnt + 1))

5: 로컬 창고 구축, 로컬 창고 제출


init-commit.sh

#!/bin/bash
#set -e
#0: init
git init ${REPO_PATH}
GERRIT=mtk
ROOT_PATH=`pwd`
cd ${REPO_PATH}

#1: Commit Local
LOCAL_PATH=`pwd`
TMP_PATH=${ROOT_PATH}/tmp/${REPO_PATH}
count=0
for i in `find . -name  .gitignore`
do
  count=$(($count+1))
  TMP=${i}
  SOURCE=${LOCAL_PATH}${TMP:1}
  DEST=${TMP_PATH}${TMP:1}
  DEST_PATH=`dirname ${DEST}`
  echo mkdir -p $DEST_PATH
  mkdir -p $DEST_PATH
  echo cp ${SOURCE} $DEST
  cp ${SOURCE} $DEST
  rm -f $i
done

if [ ${count} != 0 ]; then
  echo Inner git add
  git add .
  cp ${TMP_PATH}/.gitignore ./
  cp ${TMP_PATH}/\* ./
fi

echo Outter git add
git add .
git commit -m "Init"

echo git commit
#2: Process Local None Project
git log
if [ $? != 0 ]; then
  echo empty so git commit
  git commit --allow-empty -m "init"
fi

#3: Create Remote Project
ssh gerrit2 gerrit create-project --name ${GERRIT}/${REPO_PROJECT}

#4: Push Remote
git remote add orgin ssh://gerrit2/${GERRIT}/${REPO_PROJECT}.git
git push orgin master:master
cd -
repo forall -c ./init-project.sh

PS:특히 주의하세요.gitnore, 전체 공사에 미친 영향


사고방식을 먼저 한 곳에 두었다가 다시 추가하다
#!/bin/bash
for i in `find . -name  .gitignore`
do
    echo $i
    rm -f $i
done

칠:


팔:

좋은 웹페이지 즐겨찾기