2012.01.28, b0d017e Staging: android: Remove pmem driver - v3.3 (v3.3-rc4) M drivers/staging/android/Kconfig M drivers/staging/android/Makefile D drivers/staging/android/android_pmem.h D drivers/staging/android/pmem.c
I want to say these.
- Like normal git, default.xml can set up several remote Repo and set one of them as default.
- each git can be retrieved from different remote Repo and either follows a branch or can be stuck on a specific commit.
android source 를 좀 보려고 repo init 을 했는데 아래와 같이 안 되었다.
$ repo init -u git://android.git.kernel.org/platform/manifest.git
Getting repo ...
from git://android.git.kernel.org/tools/repo.git
fatal: Unable to look up android.git.kernel.org (port 9418) (Name or service not known)
DNS 혹은 Port 문제인가 싶어서 이것 저것 다 확인하고 바꿔봤는데,
결론은 Android repo 의 git server 가 hacking 당해서 동작 안 한다는 것... 덜덜;;
http://php.webtutor.pl/en/2011/09/05/kernel-org-hacked-how-to-get-android-repo/
위 URL 에서 관련 사실을 확인했고 방법도 참고했는데, 9/5 날짜이니 나름 최근인가 보다.
사족인데 혹시나 해서 받은 repo 를 봤더니 역시 repo 의 default git URL 을 수정해 놓은 repo 였다. 위에서 받은 repo 를 사용하면 되는데, 굳이 이전에 받은 repo 를 사용하고자 한다면 --repo-url 옵션을 통해 repo 에 repo git URL 을 argument 로 전달하면 된다.
그리고 android platform 의 git server 도 hacking 당했는지 안 되는데 위 URL 에서 알려주듯이 아래와 같이 변경해서 받을 수 있다.
알겠지만 repo init 끝에 -b gingerbread 는 gingerbread branch 를 받는 것으로 원하면 생략하거나 다른 branch 값을 쓰면 된다.
참고적으로 android kernel 을 받으려면 repo project 를 통해서 받을 수도 있지만,
android kernel 의 git server 에서 다음과 같이 바로 git clone 할 수 있다.
$ git clone git://android.git.kernel.org/kernel/common.git kernel
그런데 현재 kernel 또한 server 에 문제가 있어 위의 대체 URL 을 이용해서 받을 수 있다.
$ git clone git://codeaurora.org/kernel/common.git kernel
위 과정을 진행하고,
repo init 한 것과 비교해 봤는데
repo init 에서 파이썬 스크립트가 더 있기는 했지만
Git 관련 파일은 거의 같다고 할 수 있었다.
myrepo_local$ repo init -u ../myrepo_remote
myrepo_local$ ./mimic_repo_init.sh
myrepo_local$ diff -qr .repo .repo_testOnly in .repo/repo: color.pyc
Only in .repo/repo: command.pyc
Only in .repo/repo: editor.pyc
Only in .repo/repo: error.pyc
Files .repo/repo/.git/index and .repo_test/repo/.git/index differ
Files .repo/repo/.git/logs/refs/heads/default and .repo_test/repo/.git/logs/refs/heads/default differ
Files .repo/repo/.git/logs/refs/remotes/origin/maint and .repo_test/repo/.git/logs/refs/remotes/origin/maint differ
Files .repo/repo/.git/logs/refs/remotes/origin/master and .repo_test/repo/.git/logs/refs/remotes/origin/master differ
Files .repo/repo/.git/logs/refs/remotes/origin/stable and .repo_test/repo/.git/logs/refs/remotes/origin/stable differ
Only in .repo/repo: git_command.pyc
Only in .repo/repo: git_config.pyc
Only in .repo/repo: git_refs.pyc
(생략)
끝으로 repo 를 다 분석하지는 못 했는데,
위 Git command 를 알아내는데 확인했던 부분 코드를 분석 없이 덧붙인다.