我同意 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 --- 存储在 github.com 上的 Git 存储库
- gitorious --- 存储在 gitorious.org 上的 Git 存储库
- git --- Git repo 存储在别处
- gitsvn --- Subversion repo 使用存储在其他地方的 git-svn 克隆
- hgbit --- 存储在 bitbucket.org 上的 Mercurial 存储库
- hg.gcode --- 存储在 Google 代码上的 Mercurial 存储库
- hg --- 存储在其他地方的 Mercurial 回购
- svn.gcode --- 存储在 Google 代码上的 Subversion 存储库
- svn.sforge --- Subversion 存储在 Sourceforge.net 上
- svn.work ---- Subversion repo存储在我们公司的svn服务器上
- 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,所以这个答案很可能倾向于那个方向。