Bja*_*sen 5 git android repository android-source git-bare
在Android的源是由管理回购.使用repo进行同步时,.repo/projects/会创建一个名为的目录,其中包含所有直接在当前工作目录中检出的git存储库,只是以裸git格式.
repo维护裸git存储库的目的是什么?这些裸仓库如何被repo使用?
(注意:澄清:当我写"repo"时,我不是在讨论git存储库,我特别谈到repo由/为Android创建的脚本,用于维护包含Android源的所有git存储库.)
在使用Android repo清单系统一段时间之后,我想我现在了解.repo/projects/目录中裸存储库的目的.
正如@Fredrik已经回答的那样,项目中没有另一个存储库副本直接表示在"克隆"中repo.事实上,.git克隆中所有目录的内容只是符号链接,如下所示:
$ ll development/.git/
total 452
drwxr-xr-x 2 bfh bfh 4096 2011-08-15 13:55 ./
drwxr-xr-x 20 bfh bfh 4096 2011-08-15 13:55 ../
lrwxrwxrwx 1 bfh bfh 43 2011-08-15 13:55 config -> ../../.repo/projects/development.git/config
lrwxrwxrwx 1 bfh bfh 48 2011-08-15 13:55 description -> ../../.repo/projects/development.git/description
-rw-r--r-- 1 bfh bfh 41 2011-08-15 13:55 HEAD
lrwxrwxrwx 1 bfh bfh 42 2011-08-15 13:55 hooks -> ../../.repo/projects/development.git/hooks/
-rw-r--r-- 1 bfh bfh 449008 2011-08-15 13:55 index
lrwxrwxrwx 1 bfh bfh 41 2011-08-15 13:55 info -> ../../.repo/projects/development.git/info/
lrwxrwxrwx 1 bfh bfh 41 2011-08-15 13:55 logs -> ../../.repo/projects/development.git/logs/
lrwxrwxrwx 1 bfh bfh 44 2011-08-15 13:55 objects -> ../../.repo/projects/development.git/objects/
lrwxrwxrwx 1 bfh bfh 48 2011-08-15 13:55 packed-refs -> ../../.repo/projects/development.git/packed-refs
lrwxrwxrwx 1 bfh bfh 41 2011-08-15 13:55 refs -> ../../.repo/projects/development.git/refs/
lrwxrwxrwx 1 bfh bfh 45 2011-08-15 13:55 rr-cache -> ../../.repo/projects/development.git/rr-cache/
lrwxrwxrwx 1 bfh bfh 40 2011-08-15 13:55 svn -> ../../.repo/projects/development.git/svn
Run Code Online (Sandbox Code Playgroud)
因此,实际的git存储库仅在克隆中表示一次.
因为清单系统的工作方式,保持裸机和普通git的原因.清单系统是一种指定将被检出的gits集合的方式,以及将在哪个版本中检出它们.清单文件本身是在git中维护的,repo命令允许您根据需要更改该清单git的分支.
因此,为了允许(快速)方式根据清单文件中当前选择的内容删除和添加gits,repo可以保留您在.repo/projects文件夹中克隆的所有gits ,然后仅将它们复制到"正常"克隆如果在清单文件的当前分支中选择它们,则为area.
| 归档时间: |
|
| 查看次数: |
1830 次 |
| 最近记录: |