gitmerge 공식 소스 코드를 로컬 서버로

2337 단어 framework
장면 사용:
수중에 RK의android SDK 패키지가 있습니다. 그 안에 상세한git 수정 기록이 있고 이 SDK 패키지를 로컬 서버로 보냈습니다. git의 코드 경로는 RK 공식과 일치합니다. 물론 RK의 SDK 패키지도 구글 공식과 일치합니다.
현재 RK의 SDK 패키지가 업데이트되었습니다. 로컬 서버로 merge를 보내고 수정 기록을 보존해야 합니다.
1. 새 폴더의 경우, 예를 들어 이번 RK 업데이트는 external/bluetooth_rtk/bluedroid 이 경로
우선 외부/bluetooth_rtk/bluedroid scp를 로컬 서버에 대응하는 경로로 이동한 다음 로컬에 external/bluetooth_rtk 폴더, 명령:
     git clone ssh://venus/home/git/android/lollipop/platform/external/bluetooth_rtk/bluedroid.git로컬로 복제하여 로컬 서버와 같은 지점gitbranchll-rk3288-5.1 새로 만들기;
이어git checkout ll-rk3288-5.1;gitpush origin HEAD:ll-rk3288-5.1 코드를 제출하고 마지막으로 수정할 수 있습니다.repo/manifest.xml 파일에 이 지점을 추가하면 됩니다.bluetooth_rtk 원래 수정 기록
2. 코드를 통합하는 경우 external/sepolicy/디렉터리에 코드 업데이트가 있습니다. 그러면 먼저 RK 공식 소스 패키지 경로인 external/sepolicy에서gitremote-v로 원격 경로를 보십시오.
 
lsc@lsc:~/newDisk3/RKSDK/rk3288-box/external/sepolicy$ git remote -v
rk	ssh://[email protected]/repo/platform/external/sepolicy (fetch)
rk	ssh://[email protected]/repo/platform/external/sepolicy (push)

그리고 로컬 창고git remote add testssh://[email protected]/repo/platform/external/sepolicy에 원격 지점을 추가합니다. 제가 지은 이름은test입니다.
다음gitfetch 테스트에서 모든 지점을 가져와서 통합해야 할 지점을 선택하십시오. 예를 들어 제가 있는 지점은remotes/rk/rk32/mid/5.1/develop입니다.
gitmergeremotes/rk/rk32/mid/5.1/develop로 통합할 수 있습니다. 마지막으로gitpushorigin HEAD:ll-rk3288-5.1로 코드를 제출하면 됩니다.
3. 문제점:
나는 이런 방법의 효율이 너무 낮다고 생각한다. 예를 들어 안드로이드 코드는 몇 백 개의git지점이 있는데 그 지점 코드가 업데이트된 줄은 몰랐다. 지금은 도구와 자주 사용하는 코드 경로를 비교하여 업데이트한다.
나중에 Repo forall로 업데이트하려고 했습니다. 예를 들어 Repo forall -c'$REPO_PROJECT'는 모든git 경로를 얻을 수 있습니다. 조금만 수정하면 요구에 부합되지만 통합해야 하는 RK SDK 패키지의git 지점은 같지 않습니다. 일부 디렉터리 지점은 다릅니다.
다시 한 번은 온라인 업데이트가 필요합니다. 원래 제 로컬에는 최신 SDK 패키지가 있습니다. 하지만gitremoteaddtest 로컬경로를 사용하면 안 됩니다. 아래의 몇 가지 변수를 결합하면 효과를 얻을 수 있지만 시도하기가 귀찮습니다.
Options:
l-c: 뒤에 있는 매개 변수는 셸 명령입니다.
l -p: 셸 명령 출력 앞에서 항목 이름 내보내기
l -v: 셸 명령 출력을 실행하는 오류 정보를 표시합니다.
 additional environment variables:
l         REPO_PROJECT: 항목 이름 지정
l         REPO_PATH: 작업공간에 항목의 상대 경로 지정하기
l         REPO_REMOTE: 프로젝트 원격 웨어하우스 이름 지정
l         REPO_LREV: 프로젝트 마지막 제출 서버 창고에 대한 해시 값 지정
l         REPO_RREV: 복제 시 지정된 항목, manifest의 revision 속성 지정
더 좋은 방법이 있을 것 같습니다. 단지 제가 찾지 못했을 뿐입니다. 그렇지 않으면 RK 원본 공장은 어떻게 구글 공식 원본 코드를 합병합니까?

좋은 웹페이지 즐겨찾기