1. 程式人生 > >版本控制報告

版本控制報告

處的 問題: 進行 hello 遇到 並且 最新代碼 保持 運行

項目名稱:空天獵
組名:Hello World!
組長:陳建宇
組員:劉淑霞、方銘、黃澤宇、賈男男、劉耀澤、劉成誌
問題
  0. 在吹牛之前,先回答這個問題: 如果你的團隊來了一個新隊員,有一臺全新的機器, 你們是否有一個文檔,只要設置了相應的權限,她就可以根據文檔,從頭開始搭建環境,並成功地把最新、最穩定版本的軟件編譯出來,並運行必要的單元測試?
  我們有項目的文檔,關於遊戲框架,我們組內用統一的遊戲框架(前期在項目設計初期搭建的框架),進入新成員後,會給他拷貝遊戲框架,然後給他分配相應的功能模塊。然後他就可以根據該項目目前的版本進行單元測試。
  1、你的團隊的源代碼控制在哪裏?用的是什麽系統?如何處理文件的鎖定問題?


  coding.net托管,采用git的方式進行控制。項目單元由組長在本地進行合並後上傳git。
  2、如何看到這個文件和之前版本的差異? 如何看到代碼修改和工作項 (work item),缺陷修復 (bug fix) 的關系。

  根據最新commit的文件和之前的進行對比。

  3、如果某個文件在你簽出之後已經被別人修改,並且簽入了,那麽你在簽入你的修改的時候, 如何合並不同的修改(merge)? 你用了什麽工具來幫助你?

  coding上的代碼規定只有組長可以進行上傳,其他人只能下載。基本不會遇到有修改,即使有,按組長的版本為準,組長會進行備份項目。

  4、你有20個文件都是關於同一個功能的修改,你要如何保證這些文件都同時簽入成功(修改的原子性),或者同時簽入不成功?

   場景: 程序員果凍要簽入 20 個文件,他一個一個地簽入, 在簽入完5 個 .h 文件之後, 他發現一些 .cpp 文件和最新的版本有沖突,他正在花時間琢磨如何合並... 這時候, 程序員小飛從客戶端同步了所有最新代碼, 開始編譯, 但是編譯不成功 - 因為有不同步的 .h 文件和 .cpp 文件! 這時候, 別的程序員也來抱怨同樣的問題,果凍應該怎麽辦?

  沒有出現過這種情況

  5、你的PC 上有關於三個功能的修改, 但是都沒有完成,有很多文件處於半完工的狀態,這時你要緊急修改一個新的 bug,如何把本地修改放一邊,保證在幹凈的環境中修改這個 bug, 並成功地簽入你的修改 --- changelist management。

  新建一個項目,修改該功能。

  6、規範操作和自動化 你的團隊規定開發者簽入的時候要做這些事情: - 運行單元測試,相關的代碼質量測試。 - 代碼復審 (要有別的員工的名字) - 和這次簽入相關的issue 編號, 任務/task, 缺陷/bug 編號,等等, 以備查詢。 請問你的團隊有這樣的自動化工具讓開發者方便地一次性填入所有信息然後提交麽? (高級功能, 代碼提交之後, 相關bug 的狀態會改動為 “fixed”, 並且有鏈接指向這次簽入。)   回答:沒有。   7、如何給你的源代碼建立分支? 場景:你們需要做一個演示,所以在演示版本的分支中對各處的代碼做了一個臨時的修改, 同時,主要的分支還保持原來的計劃開發。 你們怎麽做到的? 在演示之後,演示版本的有些修改應該合並到主分支中,有些則不用,你們是怎麽做到的? 場景: 你們的軟件發布了,有很多用戶,一天,一個用戶報告了一個問題,但是他們是用某個老版本,而且沒有條件更新到最新版本。 這時候,你如何在本地構建一個老版本的軟件,並試圖重現那個問題?    項目開發人員根據現實情況進行決定。    找歷史commit,將其下載到本地,重新部署。   8、一個源文件,如何知道它的每一行都是什麽時候簽入的,為了什麽目的簽入的 (解決了哪個任務,或者哪個bug)?   根據在coding上提交代碼的時間。   9、如何給一個系統的所有源文件都打上標簽,這樣別人可以同步所有有這個標簽的文件版本?  代碼每天都在變, 有時質量變好,有時變差,我們需要一個 Last Known Good (最後穩定的好版本) 版本, 這樣新員工就可以同步這個版本, 我們如果需要發布,也是從這個版本開始。 那麽如何標記這個 Last Known Good 版本呢?   以開發人員最終調試的穩定版本為準。   10、你的項目的源代碼和測試這些代碼的單元測試,以及其他測試腳本都是放在一起的麽? 修改源代碼會確保相應的測試也更新麽?你的團隊是否能部署自動構建的任務?   沒有做相關系統的測試,只有前期開發的調試。   11、分析比較各種軟件構建環境:   空天獵僅使用了JAVA環境,實現了當時所述功能。

版本控制報告