2009-09-12 4 views
19

Как вы организуете свое личное рабочее пространство для проектов кода в своей домашней папке? И как вы сохраняете рабочую область для одновременной обработки нескольких проектов?Как организовать рабочее пространство и домашнюю папку?


Самый важный аспект моего вопроса выше. Вы можете прекратить чтение, если не хотите обращаться к конкретным подчастим темы. Ниже приведены различные связанные вопросы об организации рабочих пространств. Не нужно обращаться ко всем из них. Заинтересованы в том, чтобы услышать даже частичные ответы на некоторые из следующих связанных вопросов.

Этот вопрос в основном относится к UNIX и OS X. Пользователи на базе Windows могут предлагать предложения, но меня больше всего интересуют домашняя папка и соглашения с командной строкой, которые обычно встречаются в UNIX, а не в окнах (если вы не используете cygwin).

В частности, какую структуру папок вы сочтете полезной при одновременном выполнении нескольких проектов кода? И когда вы загружаете множество проектов с открытым исходным кодом, как сохранить все различные исходные деревья, организованные, не слишком много загромождая ваше рабочее пространство?

В частности, мне интересно, какие уловки или советы могут иметь для облегчения доступа к проектам через командную строку и их легко просматривать, когда вы должны быть в стороне, когда вам нужно сосредоточиться на конкретном проекте.

Есть ли полезные соглашения, которые вам удобны для хранения различных исходных хранилищ? В частности, с git, как вы поддерживаете разные ветви и связанные репозитории? Часто ли вы удаляете рабочие копии и регулярно обновляете исходный контроль? Что ты держишь и почему? И как вы имеете дело с пространствами имен и путями, если в конкретном проекте много зависимостей пути, которые вы должны сопоставить с собственной структурой домашних папок?

Что относительно папок с папками и общих библиотек? Как вам это удается, если вам нужно создать множество потенциальных сред разработки для различных проектов (возможно, разные версии PHP, Ruby, Perl, веб-серверов, компиляторов и т. Д.).

Для опытных администраторов системы, где работает опыт и что не работает?

Как вы храните его как можно проще, но не слишком просто?

И что дает вам максимальную гибкость при работе с несколькими проектами одновременно?

Вы регулярно перемещаете проекты из своего рабочего пространства и реимпортируете из источника управления. Как предотвратить нарастание крутизны, одновременно уменьшая необходимость слишком часто воссоздавать среду проекта?

Как вы очищаете или удаляете всю рабочую область, чтобы начать с чистого листа, не теряя доступ к ценному исходному коду и эффективности организации, полученной из прошлых проектов?

+1

Почти каждое предложение, которое вы написали, заканчивается вопросительным знаком. Я бы посоветовал вам сконденсировать сообщение в один управляемый вопрос :) –

+2

Это сообщение может быть хорошим кандидатом для вики сообщества. – Amber

+0

вопрос в чате был «вы когда-либо использовали git», и ответ был «нет», поэтому, если я, как и я, вы подумали «сдуть свое репо? Очистить дерево сборки»? то вот почему. Просто подумал, что я уточню для него. – jcolebrand

ответ

12

Я сохраняю программное обеспечение Я написал себя в специальном каталоге, названном в честь моего основного сайта - назовем его «жонглировать» ради аргумента. У меня будет ~/juggle/software/внутри которого находится подкаталог для каждого проекта, который я пишу (обычно управляемый с помощью git) и ~/juggle/websites/под которым у меня есть подкаталог для каждого домена веб-сайта, будь то raw html или что-то как webgen или staticmatic.

Чтобы помочь мне перепрыгнуть между ними, я использую «phenix», который очень хорошо связан с bash.

$ cd ~/juggle/software/wolfsbaen 
$ bm # bookmarks this with apparix 

Так что теперь из любого места, я могу это сделать

$ to wolfsbaen 

Для программного обеспечения я скачал, у меня есть ~/программное обеспечение/и внутри, что:

  • архивы - сохранить загруженных исходные tarballs
  • документация - для скачанных HTML-документов и книг PDF
  • hack-f или холостые проекты, чтобы попробовать новые идеи или программные библиотеки
  • проекты - для проектов я сотрудничаю в, но не начать себя
  • простых - для Баша/Python/рубин программ, которые могут работать в их распакованных каталогах
  • диверсий - для всех пересмотр контроля извлечений: CVS, SVN, Git, Hg и т.д.
  • распакованы - для неупакованных тарболлов, прежде чем я скомпилировать их

у меня также есть ~/мусорное ведро для полезных скриптов, которые я пишу, и найти себя, используя все время. Я добавляю это в PATH в ~/.bashrc

Я не думаю, что остальная часть ваших вопросов действительно так хорошо подходит для меня; за исключением того, что с git я почти никогда не должен бить ни одно из моего рабочего пространства.Я делаю новые ветви в рабочем каталоге и прикладываю последние изменения, если мне приходится внезапно переключаться на ветку. Я также держать голый репозиторий клон всего моего программного обеспечения и веб-источник:

$ git clone --bare . /srv/git/wolfsbaen.git 

I «GIT толчок» к этому в конце каждой рабочей фазы. Это делает/srv/git очевидным выбором для резервного копирования.

+0

Спасибо, Cathal. Я копаю git. И ваш рабочий процесс здесь имеет для меня большой смысл. И спасибо за подсказку «phenix». Мне было интересно, как делать закладки в командной строке. Это отвечает на вопрос, который я имел в виду, чтобы спросить моих друзей администратора sys. –

+0

Cathal, у меня возникли проблемы с настройкой Apparix на OS X. Googling привел меня к вашему ответу. Не могли бы вы написать краткое руководство? –

3

Я не буду отвечать на все ваши вопросы; Я скажу, однако, что я использую SVN, и я следую их соглашениям для проектов. Поэтому у меня есть папка под названием:

d:\development 

И в этом все мои проекты являются подпапками (может быть, около 20). В каждом из них находится

\trunk 
\branches 
\tags 

И все.У меня есть вторая машина здесь, на моем сервере (а также медиа-центр: P), и на ней у меня есть SVN, работающий под apache, а также trac, для управления задачами и ошибками в каждом из них. Также у меня CC.net, для сборки.

3

Как организовать свою личную рабочее пространство для кода проектов в вашей домашней папке?

Что касается UNIXy, я размещаю папки проекта под ~/dev. Обычно я должен проверить что-то из Subversion в этих папках проекта.

А что дает вам гибкость наиболее для работы над несколькими проектами одновременно?

Для веб-проектов обслуживание набора Apache name-based virtual hosts чрезвычайно удобно для работы с несколькими проектами одновременно. http://foo.localhost/ может указывать на ~/dev/foo/public, http://bar.localhost/ -> ~/dev/bar/public и т. Д.

GNU Screen также является ключевым для моего рабочего процесса разработки. Если мне нужно переключить передачи на другой проект, я просто Ctrl-a, c и буду использовать новый изолированный терминал.

+0

Я использую MAMP в основном на OS X. Но ваш отзыв о имени виртуальных хостов имеет большой смысл. –

1

Я хотел бы поделиться своим опытом в организации системы (Даже если вопрос слишком стар, я надеюсь, что это может помочь кому-то, или я мог бы получить лучшие предложения)

Я постоянно менять Linux дистрибутивов и иногда использует окно для работы. Таким образом, я разделил HDD на 4 диска.

  1. окна
  2. Linux
  3. главный
  4. экстра один


Вся моя работа идет на 3-й диск, который является NTFS, поэтому она может быть доступна в обоих Windows, а также Linux. (Возможно, вам понадобится некоторая конфигурация fstab, чтобы не испортить права доступа к файлам при установке этого диска в Linux). Теперь в этом диске я помещаю следующие папки.

  • Документы
    • все документы, хранящиеся я (например,книги, официальные документы и т.д.)
  • Картинки
  • Музыка
    • песни
    • плейлистов (в настоящее время с помощью Banshee)
  • Фильмы
  • Работа
    • офиц е
      • офис проект 1
      • офис проект 2
    • личных
      • общественных (в основном проекты, которые я опубликован на GitHub)
        • личного проект 1
        • личного проект-
      • частный
        • личный проект 3
        • личный проект 4
    • ресурсы
      • основном РЕПО, загруженные из GitHub или любого другого исходного кода или связанные вещи
  • Царапины
    • В основном все здесь идет первым в случае, если я не знаю, куда ставить или я в спешке. Позже я разобрал их по необходимости
    • Также я установил ссылки в этом каталоге в различные другие каталоги, к которым я часто обращаюсь. Причиной этого является то, я поставил scratch папку в Desktop
  • Dump
    • вещи, которые я уже обратился, но ВГА держать вокруг на некоторое время, то удалить
    • Я держу очистки этой папки в свободное время
  • Dropbox
    • несколько вещей, которые я доступ из нескольких устройства хранятся в Dropbox. Но из-за проблем с безопасностью Dropbox я не могу хранить все в нем. И я до сих пор разрабатываю идеальное решение для этого. Я попытался запустить альтернативные варианты dropbox на своих серверах, но поддерживаю их в hassel.(Также, как я из одной из стран третьего мира, приходится много раз сходить с сетки)
    • В настоящее время я развертываю одно простое веб-приложение для хранения таких вещей, как кавычки/книги, которые мне нравятся. Также я занимаюсь записью во время работы. На данный момент я храню их в Dropbox, но вскоре я перевешу их в свое приложение.

Когда я устанавливаю новую ОС, сначала я изменить стандартные папки и закладки мест, как рабочий стол, музыка, документы и т.д. для главных привода папок и установки раздаточных. Я устанавливаю папку с нуля как рабочий стол
Для файлов конфигурации (редактор/оболочка и т. Д.) Вы можете использовать основной диск/dropbox/dotfiles.
Также на стороне примечания, я использую zsh/vim/emacs с несколькими интересными плагинами, чтобы сделать меня более продуктивным.