Я согласен с ответом Т.Э. в том, что я предпочитаю хранить каждый проект в каталоге разработки. Однако, когда я нахожусь в терминале, просматривая список 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, хранящийся на github.com
- gitorious --- Репозиторий Git хранится на gitorious.org
- git --- Git-репо хранится где-то в другом месте
- gitsvn --- Репозиторий Subversion, клонированный с помощью git-svn, хранящийся где-то еще
- hgbit --- Репозиторий Mercurial, хранящийся на bitbucket.org
- hg.gcode --- Mercurial репо хранится в коде Google
- рт.ст. --- Mercurial репо хранится в другом месте
- svn.gcode --- Репозиторий Subversion хранится в коде Google
- svn.sforge --- Репозиторий Subversion, хранящийся на Sourceforge.net
- svn.work ---- Репозиторий Subversion, хранящийся на svn-сервере нашей компании
- svn --- Репозиторий Subversion хранится где-то
Соглашение 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, поэтому этот ответ, скорее всего, наклонен в этом направлении.