怎么处理非常大的work directory

69 views
Skip to first unread message

tanner

unread,
Nov 8, 2011, 5:31:57 AM11/8/11
to GotGit
【背景】
1)要为TFS配置一个本地缓冲GIT服务器供本地开发组使用。
2)TFS内的code line管理得比较乱,除了trunk,branch和tag分散在不同的几个目录(不同tfs管理员的杰作)。
3)TFS中的project已经通过git-tfs迁移到了Git repository中,大概300M,tfs所有changesets都存在
master branch中。
4)以后GIT和TFS需要双向同步(打算用git-tfs项目结合"定时同步script"+"异常人工干预"搞定)。

【问题】
本地开发时,执行git clone 后,work directory中由于历年来的branch和tag都在,高达10G之多。
有没有办法限制git clone取出的内容,只clone master下面的某一部分子目录?

如果将master中的闲杂目录都删掉,那么git-tfs同步的时候,这些删除也会被同步回去(不希望的),
而且最近的tfs branch可能还有pull要处理。
有点头疼,git新入门,不知道有没有什么好办法。


祝好,

Jiang Xin

unread,
Nov 8, 2011, 6:48:25 AM11/8/11
to GotGit
对TFS不了解。看到一个好的博客,现在我没有时间仔细读:

http://litemedia.info/git-productive-in-tfs

> 3)TFS中的project已经通过git-tfs迁移到了Git repository中,大概300M,tfs所有changesets都存在

版本库看来并不大。

> 本地开发时,执行git clone 后,work directory中由于历年来的branch和tag都在,高达10G之多。

是不是没有把 TFS 的主线、分支、里程碑 转换为Git中对应的分支和里程碑,而是当做一个一个独立的目录了。

> 有没有办法限制git clone取出的内容,只clone master下面的某一部分子目录?
Git不能部分克隆。浅克隆也不是你需要的。

ts

unread,
Nov 8, 2011, 8:35:40 AM11/8/11
to got...@googlegroups.com
好,谢谢回复,我也正在用git-tfs,这篇一些地方可以参考。


2011/11/8 Jiang Xin <worldhe...@gmail.com>:

> --
> 您收到这封邮件是因为您订阅了 Google Groups "GotGit" 邮件组。
> 向邮件组发言很简单,发送邮件到: got...@googlegroups.com 即可。
> 如果不想继续收到相关邮件,发送退订邮件到 gotgit+un...@googlegroups.com
> 您也可以通过 Web 界面访问和配置本邮件列表:
> http://groups.google.com/group/gotgit?hl=en?hl=en
>

ts

unread,
Nov 8, 2011, 10:42:45 AM11/8/11
to got...@googlegroups.com
http://stackoverflow.com/questions/2336580/sparse-checkout-in-git-1-7-0
刚发现一个回复,Sparse checkout能近似达到我要的效果,供参考。

2011/11/8 Jiang Xin <worldhe...@gmail.com>

Git不能部分克隆。浅克隆也不是你需要的。

Jiang Xin

unread,
Nov 8, 2011, 12:08:23 PM11/8/11
to GotGit

《Git权威指南》书中 P563 介绍了稀疏检出和浅克隆。稀疏检出实际上也要克隆整个版本库(克隆必须是完整的),
不过可以通过修改文件在暂存区中的特殊标志位,实现不在工作区中检出的功能。

On Nov 8, 11:42 pm, ts <tanner.se...@gmail.com> wrote:
> http://stackoverflow.com/questions/2336580/sparse-checkout-in-git-1-7-0
> 刚发现一个回复,Sparse checkout能近似达到我要的效果,供参考。
>

> 2011/11/8 Jiang Xin <worldhello....@gmail.com>
>
>
>
>
>
>
>
>
>
> > Git不能部分克隆。浅克隆也不是你需要的。

ts

unread,
Nov 8, 2011, 9:09:52 PM11/8/11
to got...@googlegroups.com
确实是这样。git-tfs项目目前还没办法处理branch和tag,项目作者建议先只处理trunk分支。git-svn似乎有参数可指定,我还没弄明白怎么设置branches/tags 之间的对应关系。

2011/11/8 Jiang Xin <worldhe...@gmail.com>

> 本地开发时,执行git clone 后,work directory中由于历年来的branch和tag都在,高达10G之多。
是不是没有把 TFS 的主线、分支、里程碑 转换为Git中对应的分支和里程碑,而是当做一个一个独立的目录了。

谢谢回复,打算在一台机器上做出directory-tree,然后别的机器read-tree,还没试,但如果能成功就基本能达到我要的效果了。
 2011/11/9 Jiang Xin <worldhe...@gmail.com>
Reply all
Reply to author
Forward
0 new messages