Как организовать рабочее пространство и домашнюю папку?
Как вы организовываете свое личное рабочее пространство для проектов кода в своей домашней папке? И как вы сохраняете рабочую область для обработки нескольких проектов одновременно?
Наиболее важный аспект моего вопроса выше. Вы можете прекратить чтение, если не хотите обращаться к конкретным подчастим темы. Ниже приведены различные связанные вопросы об организации рабочих пространств. Не нужно обращаться ко всем из них. Заинтересованы в том, чтобы услышать даже частичные ответы на некоторые из следующих связанных вопросов.
Этот вопрос в основном относится к UNIX и OS X. Пользователи на базе Windows могут предлагать предложения, но меня больше всего интересуют домашняя папка и соглашения с командной строкой, которые обычно встречаются в UNIX, а не в окнах (если вы не используете cygwin).
В частности, какую структуру папок вы сочтете полезной при одновременном обслуживании нескольких проектов кода? И когда вы загружаете множество проектов с открытым исходным кодом, как сохранить все деревья исходных текстов, не слишком сильно засоряя рабочую область?
В частности, мне интересно, какие уловки или советы могут иметь для облегчения доступа к проектам через командную строку и их легко просматривать, когда вы избегаете пути, когда вам нужно сосредоточиться на конкретном проекте.
Существуют ли полезные соглашения, которые вам удобны для упорядочения различных исходных репозиториев? В частности, с git как вы поддерживаете разные ветки и связанные репозитории? Часто ли вы удаляете рабочие копии и регулярно обновляете исходный контроль? Что ты держишь и почему? И как вы имеете дело с пространствами имен и путями, если конкретный проект имеет множество зависимостей пути, которые вы должны сопоставить с собственной структурой домашних папок?
Как насчет папок с папками и общих библиотек? Как вам это удается, если вам нужно создать множество потенциальных сред разработки для различных проектов (возможно, разные версии PHP, Ruby, Perl, веб-серверов, компиляторов и т.д.).
Для опытных системных администраторов там, что работает из опыта и что не работает?
Как вы храните его как можно проще, но не слишком просто?
И что дает вам максимальную гибкость для работы над несколькими проектами одновременно?
Вы регулярно перемещаете проекты из своего рабочего пространства и reimport из исходного элемента управления. Как предотвратить нарастание крутизны, одновременно уменьшая необходимость слишком часто воссоздавать среду проекта?
Как вы очищаете или удаляете всю рабочую область, чтобы начать с чистого листа, не теряя при этом доступ к ценному исходному коду и эффективности организации, полученной из прошлых проектов?
Ответы
Ответ 1
Я сохраняю программное обеспечение, которое я написал в специальном каталоге, названном в честь моего основного сайта, - позвольте ему "жонглировать" ради аргумента. У меня будет ~/жонглирование/программное обеспечение/внутри которого находится подкаталог для каждого проекта, который я пишу (обычно управляемый с помощью git) и ~/juggle/websites/под которым у меня есть подкаталог для каждого домена веб-сайта, будь то raw html или что-то вроде webgen или staticmatic.
Чтобы помочь мне перепрыгнуть между ними, я использую "phenix", который довольно хорошо связан с bash.
$ cd ~/juggle/software/wolfsbaen
$ bm # bookmarks this with apparix
Итак, теперь из любого места я могу это сделать
$ to wolfsbaen
Для программного обеспечения, которое я загрузил, у меня есть ~/software/и внутри этого:
- архивы - для сохранения загруженных исходных архивов
- - для загруженных HTML-документов и книг в формате PDF.
- hack - для проектов с выбросом, чтобы попробовать новые идеи или библиотеки программного обеспечения.
- проекты - для проектов, в которых я сотрудничаю, но не начал сам.
- simple - для программ bash/python/ruby, которые могут запускаться внутри распакованных каталогов
- subversions - для всех ревизий контроля версий: cvs, svn, git, hg и т.д.
- unpacked - для распакованных архивов перед их компиляцией
У меня также есть ~/bin для полезных скриптов, которые я пишу и использую все время. Я добавляю это в PATH в ~/.bashrc
Я не думаю, что остальные ваши вопросы действительно так хорошо подходят для меня; за исключением того, что с помощью git мне почти никогда не приходится закрывать любую рабочую область. Я делаю новые ветки в рабочем каталоге и прикладываю последние изменения, если мне приходится внезапно переключаться на ветку. Я также сохраняю открытый кэш-хранилище всего моего собственного программного обеспечения и веб-сайта:
$ git clone --bare . /srv/git/wolfsbaen.git
I 'git нажмите' to this в конце каждой рабочей фазы. Это делает /srv/ git очевидным выбором для резервного копирования.
Ответ 2
Я не буду отвечать на все ваши вопросы; Я скажу, однако, что я использую SVN, и я следую их соглашениям для проектов. Поэтому у меня есть папка с именем:
d:\development
И внутри этого все мои проекты - это подпапки (возможно, около 20). В каждом из них есть
\trunk
\branches
\tags
И что это. У меня есть вторая машина у себя дома - это мой сервер (а также медиацентр: P), и на нем у меня есть SVN, работающий под apache, а также trac, чтобы управлять задачами и ошибками в каждом из них. Также у меня CC.net, для сборки.
Ответ 3
Как вы организуете свой личный рабочей области для ваших проектов кода в вашей домашней папке?
Что касается файлов UNIXy, я помещаю папки проекта в ~/dev. Обычно я заканчиваю тем, что проверяю что-то из Subversion в эти папки проекта.
И что дает вам больше всего гибкость для работы с несколькими проекты сразу?
Для веб-проектов поддержка набора Apache основанных на имени виртуальных хостов чрезвычайно удобна для одновременной работы с несколькими проектами. http://foo.localhost/
может указывать на ~/dev/foo/public, http://bar.localhost/
→ ~/dev/bar/public и т.д.
Экран GNU также является ключевым для моего локального рабочего процесса разработки. Если мне нужно переключить передачи на другой проект, я просто Ctrl-a, c и буду использовать новый изолированный терминал.
Ответ 4
Я хотел бы поделиться своим опытом в организации системы (даже если вопрос слишком стар, я надеюсь, что это может помочь кому-то, или я могу получить лучшие предложения)
Я постоянно меняю дистрибутивы Linux и иногда использую окна для работы. Таким образом, я разделил HDD на 4 диска.
- окна
- Linux
- main
- дополнительный
Вся моя работа идет на 3-м диске, который является NTFS, поэтому он может быть доступен как в окнах, так и в Linux. (Возможно, вам понадобится конфигурация fstab
, чтобы не путать с правами на доступ к файлам при установке этого диска в Linux). Теперь в этом диске я помещаю следующие папки.
- Документы
- все документы, которые я сохранил (например, книги, документы и т.д.)
- Фотографии
- Музыка
- песни
- плейлисты (в настоящее время используется банши)
- Фильмы
- Работа
- офис
- офисный проект 1
- офисный проект 2
- персональный
- public (в основном проекты, которые я опубликовал на github)
- персональный проект 1
- персональный проект 2
- частная
- персональный проект 3
- персональный проект 4
- ресурсы
- в основном репозитории, загруженные из github или любого другого исходного кода или связанного с ним материала.
- Царапины
- В принципе, все идет здесь первым, если я не знаю, куда положить или я спешу. Позже я сортирую их по необходимости.
- Также я устанавливаю программные ссылки в этом каталоге для разных других каталогов, к которым я часто обращаюсь. Причина этого заключается в том, что я установил папку
scratch
как Desktop
- Свалка
- Вещи, которые я уже обращал, но которые когда-нибудь будут уходить, а затем удалите
- Я продолжаю чистить эту папку в свободное время
- Dropbox
- В Dropbox хранятся несколько вещей, которые я получаю с нескольких устройств. Но из-за проблем с безопасностью Dropbox я не могу хранить все в нем. И я до сих пор разрабатываю идеальное решение для этого. Я попытался запустить альтернативные варианты dropbox на своих серверах, но поддерживаю их в hassel. (Также, как я из одной из стран третьего мира, приходится много раз сходить с сетки)
- В настоящее время я развертываю одно простое веб-приложение для хранения таких вещей, как кавычки/книги, которые мне нравятся. Также я занимаюсь записью во время работы. На данный момент я храню их в Dropbox, но вскоре я перевешу их в свое приложение.
Когда я устанавливаю новые os, сначала я меняю папки по умолчанию и закладки в таких местах, как "Рабочий стол", "Музыка", "Документы" и т.д., на папки основных дисков и настройку "Dropbox". Я устанавливаю папку с записью как рабочий стол
Для файлов конфигурации (редактор/оболочка и т.д.) Вы можете использовать основной диск /dropbox/dotfiles.
Также на стороне примечание, я использую zsh/vim/emacs с несколькими интересными плагинами, чтобы сделать меня более продуктивным.