qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問 http://qaseven.github.io/

          版本控制常見問題列表——版本控制心得(三)

          這里列出了若干在使用版本控制的過程中容易出現(xiàn)的常見問題,這些問題來自實(shí)際工作中的切身體會(huì)。但是,這個(gè)問題列表未必全面,并且對(duì)于具體個(gè)人而言,其情形也不盡相同。每個(gè)使用版本控制的開發(fā)人員的心里可能都有一個(gè)類似這樣的列表,并且在實(shí)際開發(fā)中,或許這個(gè)列表還會(huì)得到擴(kuò)充,不斷完善。

            Item 1. 項(xiàng)目的邏輯結(jié)構(gòu)混亂(這里的“項(xiàng)目”是版本控制中的術(shù)語,見A.1)

             這是在實(shí)施版本控制過程中一個(gè)容易出現(xiàn)的問題,尤其是對(duì)于項(xiàng)目開發(fā)(此處非術(shù)語)。其原因有很多,比如:開始時(shí)對(duì)需求不明確,導(dǎo)致軟件本身結(jié)構(gòu)混亂,使 在定義軟件的邏輯結(jié)構(gòu)時(shí),時(shí)常變化。又如:一個(gè)團(tuán)隊(duì)中,大家各自都之關(guān)心自己負(fù)責(zé)的模塊,每個(gè)人各自制定適合自己的邏輯結(jié)構(gòu),導(dǎo)致最終的項(xiàng)目結(jié)構(gòu)是一個(gè)大 雜燴(多個(gè)結(jié)構(gòu)組合而成)。久而久之,就會(huì)導(dǎo)致軟件管理混亂,增加維護(hù)負(fù)擔(dān),反而降低效率。結(jié)構(gòu)中,有的目錄可能是“死角”,永遠(yuǎn)都沒有使用到;有的目錄 可能是重復(fù)的,造成冗余;有的目錄可能大家同時(shí)在用,各自對(duì)代碼的修改彼此影響。自始至終合理安排和規(guī)劃項(xiàng)目的邏輯結(jié)構(gòu),這是一定需要堅(jiān)持的。

            Item 2. 多人修改同一個(gè)文件

             一旦出現(xiàn)這樣的情況,很有可能某人辛勤勞動(dòng)的成果,會(huì)被別人毀于一旦。其解決辦法是:在一般情況下,確保在任何時(shí)刻都只有一個(gè)成員對(duì)某個(gè)特定的文件進(jìn)行 修改,這樣可以防止文件被其他成員的修改意外更新。為了適應(yīng)多人同時(shí)修改同一個(gè)文件的情況,版本控制管理員也可以改變此缺省設(shè)置以允許對(duì)單個(gè)文件同時(shí)有多 個(gè)簽出(checkout),并且仍禁止對(duì)他人的修改進(jìn)行覆蓋。

            Item 3. 本地版本和服務(wù)器版本不一致

             有時(shí)會(huì)碰到這樣的情形,開發(fā)人員在從服務(wù)器那里更新本地版本時(shí),只更新了部分內(nèi)容,導(dǎo)致本地編譯不通過。應(yīng)該時(shí)刻注意保持本地版本和服務(wù)器版本的一致 性,這是一個(gè)認(rèn)識(shí)的問題,因?yàn)榉?wù)器版本才是真正唯一有效的。多個(gè)程序員還必須注意不要為了解決同一個(gè)問題而浪費(fèi)時(shí)間。對(duì)某項(xiàng)功能的實(shí)現(xiàn),由于本地和服務(wù) 器的不一致,導(dǎo)致大家重復(fù)實(shí)現(xiàn)。應(yīng)該對(duì)服務(wù)器端數(shù)據(jù)的全部內(nèi)容,包括所有子文件夾,定期進(jìn)行備份,這是絕對(duì)重要的一項(xiàng)工作。

            Item 4. 用戶權(quán)限混亂

            對(duì)于所有開發(fā)人員和各自負(fù)責(zé)的模塊,根據(jù)實(shí)際情況,制定合理的用戶權(quán)限,哪些人對(duì)哪些目錄只有可讀權(quán)限,哪些人對(duì)哪些目錄有讀寫權(quán)限。不應(yīng)該出現(xiàn)所有人都是管理員這樣的極端情況。

            Item 5. 手工修改文件的只讀標(biāo)記

             為了防止你對(duì)沒有簽出的文件進(jìn)行修改,版本控制管理工具會(huì)將這些文件指定并標(biāo)明為只讀文件。當(dāng)你簽出一個(gè)文件時(shí),只讀標(biāo)記便被刪去。一種經(jīng)常出現(xiàn)的不良 習(xí)慣是,為了圖省事,在沒有簽出文件時(shí)便試圖修改文件,當(dāng)發(fā)現(xiàn)文件不能保存時(shí),便手工修改其只讀標(biāo)記。這是一切混亂的“源頭”,它將導(dǎo)致不一致、有效內(nèi)容 被覆蓋等問題。

            Item 6. 沒有指定工作目錄或存在多個(gè)工作目錄

            每個(gè)開發(fā)人員必須擁有一個(gè)獨(dú)一無二的工作目錄,它不能與任何其他開發(fā)人員共享(這里的“工作目錄”是版本控制中的術(shù)語,見A.2)。

            Item 7. 頻繁的簽入或很少簽入

            掌握好簽入的時(shí)間,比如一天,或者在其他人需要的時(shí)候。并非每次微小的改動(dòng)都需要馬上簽入,也并非每改完一個(gè)文件都將其簽入,但也不要忘記簽入。

            Item 8. 從服務(wù)器上獲取最近版本時(shí)的疏忽

            如果選擇獲取當(dāng)前已經(jīng)簽出并且已經(jīng)修改的文件最新版本,操作時(shí)必須非常小心。如果你選擇取代文件,你將用最近一次簽入的文件版本改寫你做的修改,這可能會(huì)使你所做的工作白費(fèi)。大多數(shù)情況下,最保險(xiǎn)的做法是選定Apply To All Items,并選擇Leave。

            A 軟件版本控制中出現(xiàn)的幾個(gè)主要概念

            參考Visual SourceSafe,這里列出幾個(gè)主要的基本概念。

            A.1 項(xiàng)目(Project)

            版本控制的一個(gè)單位,包含若干不同類型的文件。其下所屬代碼及相關(guān)文檔,以目錄結(jié)構(gòu)分別存放。一個(gè)軟件可以對(duì)應(yīng)一個(gè)或多個(gè)項(xiàng)目,視情況而定。

            A.2 工作目錄(Working Folder)

            開發(fā)人員對(duì)項(xiàng)目文件進(jìn)行調(diào)試修改的地方,一般位于本地機(jī)器上。開發(fā)人員簽出(checkout)項(xiàng)目中的文件時(shí),將被拷貝到工作目錄下,當(dāng)修改完文件后,開發(fā)人員再將文件從工作目錄簽入(checkin)服務(wù)器。

          相關(guān)鏈接:

          沒有使用版本控制的黑暗時(shí)代——版本控制心得(一)

          版本控制之我見——版本控制心得(二)

          posted on 2013-06-07 10:36 順其自然EVO 閱讀(559) 評(píng)論(0)  編輯  收藏 所屬分類: 管理方向

          <2013年6月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 阜南县| 仁寿县| 炎陵县| 前郭尔| 邹平县| 赤峰市| 浦城县| 湖南省| 汝城县| 泸水县| 五家渠市| 启东市| 清徐县| 呼伦贝尔市| 礼泉县| 资中县| 绥宁县| 盐城市| 依兰县| 永济市| 杭锦后旗| 宁都县| 黄大仙区| 武功县| 华安县| 永寿县| 泰兴市| 梅州市| 锦州市| 光山县| 紫阳县| 长岭县| 仙游县| 娄底市| 西安市| 阿克| 安泽县| 濉溪县| 勃利县| 仙居县| 肇东市|