我决定在存储库-tree中默认限制可见性范围,以便为优化的东西创建public -folder。现在因为有很多子存储库,我得到一个痛苦的承诺或一些聪明的想法。我不确定最好的方法 - 我考虑过使用find遍历repos然后只是对每个repo执行一致的-dummy提交,例如"default perms lower and polished public things to public dir in the root to get the quality up"
但我可能正在重新发明轮子。我不能选择限制子存储库和子模块的数量,因此提交必须从最低的repo开始,然后一点一点地遍历,如果使用find。
如何处理这种深度Git repo-repo -tree更新?
也许是相关的
答案 0 :(得分:0)
使用更好的工具!
避免诸如$ find . -exec git checkout '{}' \;
之类的黑客攻击,然后递归/手动修复权限。有一个名为Gitslave的工具可以更轻松地管理扩展的投资组合。有价值的文章here。我还建议你阅读这篇帖子here,再一次是SethRobertson的文章出现 - 非常好的阅读。
你为什么需要Gitslave?
假设您在结构中对repo
Happy.git
进行了更改,例如"Works.git > Project.git > Pictures.git > Happy.git"
。然后有人 试图从你的裸机库中取出Project.git
。因为 你是一个混蛋,你只在Happy.git
承诺。现在你的 朋友会得到一些令人讨厌的错误。懒惰的git会使用gitslave
- 工具。$ mkdir t1; cd t1; mkdir t2; cd t2; mkdir t3; git init; echo "t3" >t3; git add .; git commit -m "t3"; cd ..; git init; echo "t2" >t2; git add .; git commit -m "t2"; git init; echo "t1" >t1; git add .; git commit -m "t1"; cd ..; cd t1/t2/t3; echo "only here">only; git add .; git commit -m "only"; cd ../..; git status # On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # t2/ $ Look you need to do repetitive work because you did not use Gitslave!
演练以安装Gitslave
不幸的是,Gitslave尚未进入Apt-get下载 here。
看起来有点像Maven,更多 here。 您可以通过它管理您的项目。首先,指定super -repo 然后你附上奴隶-repos。
$ git clone http://someGitRepoHere.com/xyz.git super $ cd super; gits prepare $ gits attach http://someBareRepo.git yourDirHere
更多关于153这样的界限 here
当Gitslave进入apt-get等软件包管理软件时,我会继续这个答案,这对人们来说更有用。