2009-09-12 72 views
19

如何爲您的個人文件夾中的代碼項目組織您的個人工作區?你如何保持工作空間有效地同時處理多個項目?如何組織您的代碼工作區和主文件夾?


我的問題的最重要的方面是上文。除非要解決該主題的特定子部分,否則可以停止閱讀。以下是關於工作區組織的各種相關問題。無需解決所有這些問題。有興趣聽到部分以下相關問題的部分答案。

這個問題主要是在UNIX和OS X的環境中。基於Windows的用戶可以提供建議,但我最感興趣的是通常在UNIX中找不到的主文件夾和命令行約定(除非使用cygwin)。

特別是什麼樣的文件夾結構的同時維護多個代碼項目時,你覺得有用嗎?當您下載各種開源代碼項目時,如何保持所有各種源代碼樹組織得當,而不會讓工作區過於混亂?

我特別想知道可能有什麼竅門或建議,讓這些項目很容易通過命令行和易於訪問通過瀏覽而失控的方式,當你需要把重點放在一個特定的項目。

你放在手邊,以保持各種源庫有序有有用的約定?特別是在git中,你如何保持不同的分支機構和相關存儲庫的組織?你是否經常吹走工作副本,並經常從源代碼管理中完全刷新?你周圍什麼?爲什麼?如果一個特定的項目有很多路徑依賴關係,你必須映射到你自己的home文件夾結構,你如何處理命名空間和路徑?

bin文件夾和公共庫怎麼樣?如果您需要爲各種項目(可能是PHP,Ruby,Perl,Web服務器,編譯器等的不同版本)創建大量潛在的開發環境,那麼您如何管理它。

對於經驗豐富的系統管理者那裏從經驗中什麼行得通,什麼行不通?

你如何儘量簡單但不太簡單?

什麼給你最靈活的一次在多個項目上工作?

你經常移動伸出您的工作空間,並從源頭控制重新導入。在減少重建項目環境的頻繁需求的同時,如何防止垃圾堆積?

你如何清理或吹走你的整個工作區,因此您可以從一張白紙開始,又不失獲取有價值的源代碼,並從過去的項目中獲得組織效率?

+1

幾乎你寫的每個句子都以問號結尾。我建議你將你的帖子壓縮成一個可管理的問題:) – 2009-09-12 01:18:36

+2

這篇文章可能是社區wiki的一個很好的候選人。 – Amber 2009-09-12 01:31:26

+0

聊天室中的問題是「你有沒有使用Git」,答案是否定的,所以如果像我一樣,你認爲「吹掉你的回購?清理構建樹?」那就是爲什麼。只是想我會爲他澄清。 – jcolebrand 2010-11-04 23:59:34

回答

12

我把我自己寫的軟件放在一個特殊的目錄中,以我的主網站命名 - 爲了爭辯起見,我們稱之爲'玩雜耍'。我有〜/ juggle/software /裏面是我寫的每個項目的子目錄(通常由git管理)和〜/ juggle /網站/下我有一個每個網站域的子目錄,無論是原始的HTML或東西像webgen或靜態。

爲了幫助我在它們之間跳躍,我使用了'apparix',它很好地與bash相關聯。

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

所以現在從任何地方我能做到這一點

$ to wolfsbaen 

對於我下載的軟件,我有〜/軟件/和內部的:

  • 檔案館 - 保持下載源代碼tarballs
  • 文檔 - 用於下載的HTML文檔和PDF書籍
  • hack -f或一次性項目嘗試新的想法或軟件庫
  • 項目 - 爲我的合作項目,但沒有啓動自己
  • 簡單 - 對於可他們的解壓目錄
  • 顛覆內運行慶典/蟒蛇/紅寶石計劃 - 適用於所有版本控制檢出:CVS,SVN,GIT中,汞等
  • 解壓 - 用於解壓壓縮包之前,我把它們編譯

我也有一個有用的腳本我寫的〜/ bin和使用發現自己每時每刻。我將它添加到〜/ .bashrc中的PATH中。我不認爲其餘的問題真的適用於我。除了使用git之外,我幾乎從不需要突出任何工作空間。我在工作目錄中創建新的分支,並且如果必須突然切換分支,則隱藏最近的更改。我還留着都是我自己的軟件和網站源的純倉庫克隆:

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

我「混帳推」到這個在每個工作階段的結束。這使/ srv/git成爲備份的明顯選擇。

+0

謝謝Cathal。我正在挖掘混帳。你的工作流程對我來說很有意義。並感謝「apparix」提示。我想知道如何在命令行中做書籤。這回答了我一直想問我的系統管理員朋友的問題。 – 2009-09-12 03:03:07

+0

Cathal,我在OS X上設置Apparix時遇到了麻煩。谷歌搜索引導我回答您的問題。你介意寫一個快速指南嗎? – 2010-06-25 04:52:17

3

我不會回答你所有的問題;但是,我會說,我使用SVN,並遵循其項目的約定。所以我有一個文件夾,名爲:

d:\development 

而且裏面,我的所有項目都作爲子文件夾(也許20左右)。在他們每個人,是

\trunk 
\branches 
\tags 

就是這樣。我在家裏有第二臺機器是我的服務器(也是媒體中心:P),並且我有SVN在Apache下運行,並且還有trac,用於管理每個機器上的任務和錯誤。另外我有CC.net,用於構建。

3

你如何組織你的個人工作空間 在 個人文件夾你的代碼的項目?

至於UNIXy的東西,我把項目文件夾放在〜/ dev下。我通常最終會將Subversion中的某些東西檢出到這些項目文件夾中。

什麼給你最多的靈活性 一次工作多個 項目?

對於Web項目,維護一套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上。但是關於名稱虛擬主機的提示很有意義。 – 2009-09-12 03:04:23

1

我想和大家分享在組織系統我自己的經驗(即使問題是太舊了,我希望這可以幫助別人或者我可能會得到更好的建議)

我不斷變化的Linux發行版,有時使用windows工作。所以我已經將硬盤劃分爲4個驅動器。

  1. 窗口
  2. Linux的
  3. 主要
  4. 額外的一個


我所有的工作進展在第三個驅動器是NTFS,所以它可以在兩個訪問windows以及linux。 (您可能需要一些fstab配置,以免在Linux中安裝此驅動器時混淆文件權限)。現在在這個驅動器中,我放置了以下文件夾。

  • 文獻
    • 我存儲的所有文檔(例如書籍,白皮書等)
  • 圖片
  • 音樂
    • 歌曲
    • 播放列表(目前使用的女妖)
  • 電影
  • 工作
    • OFFIC Ë
      • 寫字樓項目1
      • 寫字樓項目2
    • 個人
      • 公衆(主要是項目,我在GitHub上公佈)
        • 個人項目1
        • 個人項目2
      • 私人
        • 個人項目3
        • 個人項目4
    • 資源
      • 大多回購從GitHub或任何其他源代碼下載,或者相關的東西
    • 基本上一切首先進入這裏的情況下,我不知道放在哪裏或我在趕時間。後來我根據需要對它們進行整理
    • 此外,我還將此目錄中的軟鏈接設置爲經常訪問的各種其他目錄。這樣做的原因是,我設置scratch文件夾Desktop
  • 自卸
    • 事情我已經解決,但甲肝保持周圍的某個時候再取出
    • 我一直在閒暇時間
    • 清理此文件夾
  • Dropbox的
    • 這是我從多獲得幾件事情ple設備存儲在保存箱中。但由於Dropbox隱私問題,我無法將所有內容存儲在其中。而且我仍然在爲此找出理想的解決方案。我試圖在我自己的服務器上運行開源dropbox替代品,但是保持它們不變。(另外,因爲我來自第三世界國家之一,必須多次關閉網格)
    • 目前我推出一個簡單的網絡應用程序來存儲喜歡的引號/書籍等內容。工作時我也會記下很多筆記。現在我將它們存儲在收存箱中,但很快我會將它們移動到我的應用程序中。

當我安裝新的操作系統,首先我更改默認文件夾和桌面一樣,音樂,文檔等,以主驅動器文件夾和設置Dropbox的書籤的位置。我將臨時文件夾設置爲桌面
對於配置文件(編輯器/外殼等),您可以使用主驅動器/ dropbox/dotfiles。
另外,在附註中,我使用zsh/vim/emacs以及一些有趣的插件來提高效率。

相關問題