我同意TED的答案,因为我更愿意将每个项目保留在开发目录中.但是,当我在终端查看bash列表时,我喜欢轻松看到三件事:
这是什么类型的回购--Git,Mercurial或Subversion
存储的伪中央仓库在哪里--- Github.com,Bitbucket.org,Google Code等.
谁拥有伪中央回购
我发现通过对我的项目使用以下命名约定,我可以很容易地做到这一点:
~/development/project.whatwhere.who
由于在使用Mercurial克隆本地项目时很常见,因此我在目录结构中添加了一个图层:
~/development/project.whatwhere.who/project/ # Initial clone from remote repo ~/development/project.whatwhere.who/project.local.blah_descriptor/ # Local hg clone
whatwhere
我使用的约定如下:
github --- git repo存储在github.com上
gitorious --- git repo存储在gitorious.org上
git --- Git repo存储在别处的某个地方
gitsvn ---使用git-svn克隆的Subversion repo存储在其他地方
hgbit ---存储在bitbucket.org上的Mercurial repo
hg.gcode ---存储在Google代码上的Mercurial仓库
hg --- Mercurial repo存储在别处
svn.gcode ---存储在Google代码上的Subversion repo
svn.sforge ---存储在Sourceforge.net上的Subversion repo
svn.work ----存储在我们公司的svn服务器上的Subversion repo
svn --- Subversion repo存储在某个地方
该who
公约根本期望的人的用户名.
以下是一些项目示例,全部位于我的~/development/
目录中:
fabric.github.bitprophet # Bitprophet's fabric project cloned from Github fabric.github.myusername # My fork of the fabric project from Github virtualenv.hgbit.ianb # Ianb's virtualenv project cloned from Bitbucket growl.hg.gcode # Growl project cloned from Google code ledgersmb.svn.sforge # LedgerSMB project checked out from Sourceforge coldfire.gitsvn # Coldfire Subversion project at work cloned using git-svn coldfire.svn # Coldfire Subversion project at work checked out with svn
如果您的项目太多,为了帮助组织项目,您可能需要在~/development
目录下方添加一个用于组织的图层.例如,您可以拥有以下目录:
~/development/workprojects/ ~/development/opensrcprojects/ ~/development/personalprojects/
注意:我通常使用Git进行DVCS,因此这个答案很可能倾向于这个方向.
我同意TED的答案,因为我更愿意将每个项目保留在开发目录中.但是,当我在终端查看bash列表时,我喜欢轻松看到三件事:
这是什么类型的回购--Git,Mercurial或Subversion
存储的伪中央仓库在哪里--- Github.com,Bitbucket.org,Google Code等.
谁拥有伪中央回购
我发现通过对我的项目使用以下命名约定,我可以很容易地做到这一点:
~/development/project.whatwhere.who
由于在使用Mercurial克隆本地项目时很常见,因此我在目录结构中添加了一个图层:
~/development/project.whatwhere.who/project/ # Initial clone from remote repo ~/development/project.whatwhere.who/project.local.blah_descriptor/ # Local hg clone
whatwhere
我使用的约定如下:
github --- git repo存储在github.com上
gitorious --- git repo存储在gitorious.org上
git --- Git repo存储在别处的某个地方
gitsvn ---使用git-svn克隆的Subversion repo存储在其他地方
hgbit ---存储在bitbucket.org上的Mercurial repo
hg.gcode ---存储在Google代码上的Mercurial仓库
hg --- Mercurial repo存储在别处
svn.gcode ---存储在Google代码上的Subversion repo
svn.sforge ---存储在Sourceforge.net上的Subversion repo
svn.work ----存储在我们公司的svn服务器上的Subversion repo
svn --- Subversion repo存储在某个地方
该who
公约根本期望的人的用户名.
以下是一些项目示例,全部位于我的~/development/
目录中:
fabric.github.bitprophet # Bitprophet's fabric project cloned from Github fabric.github.myusername # My fork of the fabric project from Github virtualenv.hgbit.ianb # Ianb's virtualenv project cloned from Bitbucket growl.hg.gcode # Growl project cloned from Google code ledgersmb.svn.sforge # LedgerSMB project checked out from Sourceforge coldfire.gitsvn # Coldfire Subversion project at work cloned using git-svn coldfire.svn # Coldfire Subversion project at work checked out with svn
如果您的项目太多,为了帮助组织项目,您可能需要在~/development
目录下方添加一个用于组织的图层.例如,您可以拥有以下目录:
~/development/workprojects/ ~/development/opensrcprojects/ ~/development/personalprojects/
注意:我通常使用Git进行DVCS,因此这个答案很可能倾向于这个方向.
由于Git的工作方式,您实际上不希望将存储库(或分支)的工作目录放在另一个存储库的工作目录下的目录中.它会继续想要将子目录的内容放入父级的存储库中.
如果你把所有分支都作为兄弟目录,那就可以了.
我倾向于做(无论使用Git,cvs还是(ick)SourceSafe)都有一个Development目录,每个项目,分支等都是一个子目录.