由於編譯性的檔案(包括obj資料夾和bin資料夾)並不是原始檔,它完全可以通過儲存的原始檔生成,一次提交的話會造成兩方面的影響:1. 浪費伺服器儲存空間 2. 由於每個團隊成員編譯的結果可能並不一樣,大大增加了版本衝突的機率。
obj目錄是用來儲存每個模組的編譯結果,在.net中,編譯是分模組進行的,編譯整個完成後會合併為乙個.dll或.exe儲存到bin目錄下。因為每次編譯時預設都是採用增量編譯,即只重新編譯改變了的模組,obj儲存每個模組的編譯結果,用來加快編譯速度。是否採用增量編譯,可以通過:專案屬性—>配置屬性—>高階—>增量編譯來設定。
bin目錄用來儲存專案生成後程式集,後置**類和其他非頁面類編譯後的dll。它有debug和release兩個版本,分別對應的資料夾為bin/debug和bin/release,這個資料夾是預設的輸出路徑,我們可以通過:專案屬性—>配置屬性—>輸出路徑來修改。
.csproj.user檔案是乙個xml檔案,用於儲存當前專案的使用者配置,可以使用記事本開啟。例如:開啟asp.net專案的.csproj.user檔案後會看到一項:currentpage,它表示當按f5開始除錯,或者ctrl+f5開始執行時,首先開啟的是vs的當前頁。
在伺服器上直接將以上的檔案或者資料夾直接刪除,同時要求各個團隊成員自己在客戶端將它們排除掉:
右擊解決方案資料夾→tortoisesvn→settings→general,如下圖:
在「subversion下的」「globalignore pattern 」中新增要排除在提交之外的檔案型別(以空格分隔)「bin obj *.suo*.user *.csproj.user」即可。
也可右擊目標→tortoisesvn→unversion and add toignore list→檔案型別,逐個排除。
排除後以後再提交整個解決方案,被排除的檔案型別都不會被提交:
為減少衝突產生的機率,我們可以做雙保險:在向伺服器上傳全新的解決方案之前將以上的5種型別全部刪除,然後讓團隊成員再排除。以後大家在提交的時候按照下面的幾個原則基本上就不會出什麼問題了。
團隊成員可能會修改解決方案中的多個檔案,所以更新的時候我們沒有必要(也不建議這麼做)去單個專案或者檔案去更新,否則可能更新下來的**由於只是部分導致生成的時候出現錯誤。
這個是提交之前最為重要的一步,一旦某個成員提交上了這種型別的**,那麼團隊中的其他人都將無法進行除錯。
只提交自己修改的類或者其他檔案,避免因為誤操作別人的類導致解決方案中的出錯。其實可以通過svn的許可權控制各個成員負責的部分,可以精確到單個類(但這種方法也有不少侷限性),這樣就可以大大減少由於誤操作引起的不必要的麻煩。
對於新新增的類、檔案或者資料夾等我們應該將他們所在的層進行提交(當然也可以對整個解決方案進行提交,但為了減少出錯的機率採用此方法),提交的時候勾選上*.csproj檔案(預設是勾選的)和自己修改過的:
而對於新新增的專案,則應該提交整個解決方案,方法跟上面類似。
每實現乙個小功能或者幾段**,生成沒有錯誤之後就直接提交,也叫「儲存提交」。這樣可以通過svn的版本控制,最大程度的減少因為後來的錯誤導致解決方案大範圍修改情況的發生。
就是對檔案或者資料夾進行「鎖定」的功能。只有對於特別重要的,屬於只有自己能夠修改的並且經過組長統一的才能夠使用。否則其他人無法提交該檔案或者資料夾。
有了這個資訊之後我們如果某個版本出現了錯誤就可以清晰的看到是因為誰修改了哪些部分導致的,很方便除錯還原。如:我們規定的格式是:姓名—修改內容
**在提交入svn之後,你的**將被專案成員所分享。如果提交了你不明白的**,你看不懂,別人也看不懂,如果在以後出現了問題將會成為專案質量的隱患。因此在引入任何第三方**之前,確保你對這個**有乙個很清晰的了解。
--解決方法之一:將需要引用第三方dll放到其他的資料夾公用即可,不要放到bin資料夾中了。
以上幾點做到之後,以後出現的問題只要是關於版本提交的基本上就能解決了。在實踐的過程中可能還會有以上問題的出現,但只要我們能夠清楚這些問題的**,就能夠比較快速、正確的處理掉。當然,還是需要大家去養成乙個良好的提交習慣才能避免給大家帶來麻煩。
SVN 提交小結
在我們用vs進行專案合作開發的過程中,svn的提交控制是至關重要的,由於版本衝突造成的各種麻煩咱們已經遇到的夠多了。所以,總結他們的經驗教訓,給我們也給其他人做個提醒。下面的第一部分是需要在正式開發之前需要做的,第二部分是開發的過程中需要注意的。由於編譯性的檔案 包括obj資料夾和bin資料夾 並不...
SVN提交小結
目錄 一排除不必要的提交 1將編譯性的檔案排除在提交之外 11 obj資料夾 12 bin資料夾 2 將屬於每個使用者的檔案排除在提交之外 21 csprojuser 22 suo 3 排除方法 二提交的幾個原則 1先更新再生成解決方案最後提交 11 先update整個解決方案 12 然後保證在提交...
SVN提交 a檔案
使用命令列新增檔案 1.開啟終端,輸入cd,空格,然後將需要上傳的.a檔案所在的資料夾 不是.a檔案 拖拽到終端 此辦法無需輸入繁瑣的路徑,快捷方便 回車 2.之後再輸入如下命令 svn add libocmock.a,回車 3.之後會出現 a bin libocmock.a 表示新增成功,開啟ve...