2011-12-21 39 views
5

我是SVN的新手,我想使用TortoiseSVN將代碼提交給SVN。我有C++頭文件和源代碼,但我不知道如何在將版本上傳到SVN之前以高效的方式組織文件夾。關於人們通常如何做的任何建議?不同語言的代碼結構有沒有區別,例如C++或java。我應該遵循任何特定的規則嗎?如何爲C++代碼組織SVN存儲庫

更新

因此,在檢查答案後,我做了一些更清晰的事情。一個通常的文件夾結構是一個proyect如下:

/trunk 
/branches 
/tags 

但我也發現了類似的結構,我非常喜歡的,那就是:

/trunk     #Keep it to developement mode always. 
    /samples   #samples of use 
    /modules   #software modules 
     /project_modName 
      /include  # .hpp files 
      /src   # .cpp files 
    /test    #unitary tests 
/branches    #experimental developements (copies of trunk at various stages) 
/tags     #estable versions 
/extras 
    /3rdparty   #libs 
    /data    #necessary data for developement 
    /doc    #documentation 
    /resources   #for window applications 

至少我喜歡它的多媒體應用代碼。

UPDATE 2

此更新僅解釋我如何創建我的存儲庫。我創建了一個名爲structure_svn的文件夾。在裏面我創建了上面顯示的結構。我右鍵單擊父文件夾並選擇導入。在URL中,我自動寫入文件夾路徑(file:/// c:/ svn_repos),結構將在svn_repos,下創建,不包含文件夾structure_svn

我想說這個,因爲你右鍵點擊導入的文件夾永遠不會出現。我剛剛意識到,當我嘗試它,也是toturials解釋。

下一步是成功地將我的代碼劃分到創建的結構中。

+0

從我的經驗來看,最常見的事情是注意包括自動生成的文件和IDE用戶文件。在共享項目上工作之前,你並沒有注意到這些事情。 – 2011-12-21 12:04:01

+1

你的意思是錯誤日誌,例如?其實我主要是在考慮文件夾結構和兒子,如何命名它們以及如何組織它們。 – 2011-12-21 12:18:04

+1

我的意思是從.resx文件生成的* .designer.cs文件。另外我知道你想要一個項目佈局/命名,但我仍然在5年後自己努力,所以我可以建議環顧四周,大多數開源項目讓你看看他們的源代碼控制,找到你喜歡的東西並從那裏。 – 2011-12-21 12:22:54

回答

9

這裏是我如何構造我的樹在編程項目(主要是從C/C++的角度):我自己

  • 分機—外部書面

    • /
      • SRC —源文件和頭文件依賴;包含第三方庫
        • LIBNAME-1.2.8
          • 包括 —頭
          • LIB —編譯LIB文件
          • Donwload。TXT —包含鏈接下載使用
      • IDE —我存儲項目文件的版本在這裏
        • VC10 —我通過IDE
      • 斌安排項目文件 —編譯的二進制文件去這裏
      • OBJ —編譯器的編譯文件
        • GCC —如果你的項目規模證明它,做一個單獨的文件夾爲每個編譯器的文件
      • DOC任何
      • 自述的—文檔
      • INSTALL
      • COPYING
      • makefile —自動生成IDE項目文件的東西。我更喜歡CMake。

    的幾個注意事項:

    1. 如果我正在寫一個庫(我使用C/C++),我會先安排在兩個文件夾我的源文件稱爲「src/include」和「src/source」,然後通過模塊。如果它是一個應用程序,那麼我將僅僅通過模塊來組織它們(標題和源將放在同一個文件夾中)。

    2. 上面列出的斜體文件和目錄我不會添加到代碼存儲庫。

    編輯:請注意,我使用的水銀,沒有SVN,所以結構上它專爲該版本控制系統。無論如何,我從你的更新中看到你已經找到了你喜歡的一個。

  • +0

    謝謝,非常有用。 – 2011-12-21 12:23:10

    +0

    沒有IDE的src似乎並不特別有用。如何在沒有任何項目文件的情況下構建大型項目(無論是Makefile/CMakeFile/cvproj)。 – stijn 2011-12-21 12:26:54

    +0

    @stijn當然,您應該有一些makefile(我個人比較喜歡CMake)。我會將其添加到列表中,以避免混淆。 :) – 2011-12-21 12:28:36

    4

    向前邁出的一大步是確保您的所有項目都做外部構建,即將臨時文件放在$ TEMP中,並將所有輸出文件放在專用的bin/lib目錄中。如果正確完成,這將使源代碼僅包含源代碼。名稱中的內容除了「純」源文件外,還要確保構建源文件所需的所有內容都位於存儲庫中:項目文件/生成器和資源。

    一旦你找到了正確的位置,很有可能你只需要將一些典型的項目生成文件(比如Visual Studio的* .suo)放到SVN的忽略列表中,然後就可以進行提交了。

    4

    基本上,你可以放在svn只是你想要的。您可能會考慮遵循的唯一標準是標準存儲庫佈局:請參見here

    在項目中,您說得對,存在多個最佳做法。它們對於每種語言都是不同的。例如,一個Java包由命名空間組織。在C++的世界裏我看到了兩種主要方式如何組織它:

    • 每個類別插入頁眉(.h)中,並在同一目錄
    • 頁眉和源內部的源文件(的.cpp)是分開的(所以你有一個文件夾,特別是頭文件)這對於庫是有用的,因此這個路徑可以被上層項目使用。

    然後你需要一個第三方庫的文件夾,另一個用於目標文件和其他文件,如構建文件或文檔。

    +0

    有用。我會嘗試不同的方法,然後決定我最喜歡的東西。 – 2011-12-21 12:27:29

    4

    如果你是svn noob,你在下一個Link有一個很好的解釋!

    +0

    非常感謝,我很感激 – 2011-12-21 16:18:54