Skip to content
coursemdetw edited this page May 21, 2014 · 9 revisions

協同程式開發

雲端同步網站: https://2014c2-mdenfu.rhcloud.com

自 W15 起導入機器人模擬 (動態繪圖): http://2014c2-mdenfu.rhcloud.com/static/reeborg/

W11 程式 (靜態繪圖)

寫程式時要儘量使用函式與變數交叉使用, 以取得程式變化的彈性, 對於經常使用的程式功能, 還要利用物件導向模式, 可進一步增進程式內容的重用度.

例如: 畫五芒星

# 直接採用外部五點座標不是好方法
# 應該要寫成函式, 用圓心座標與半徑來控制
# 而且要計算內五點, 因為空的五芒星不能有交叉線

draw_line(400, 500, 458.7785, 319.0983)
draw_line(400,  500, 342.2215, 319.0983)
draw_line(342.2215, 319.0983, 495.0565, 430.9016)
draw_line(458.7785, 319.0983, 305.9535, 430.9016)
draw_line(495.05, 430.916, 305.9535, 430.9016)

產生衝突的原因

Git 版次管理系統是一個採用資料版本快照來進行內容添加的依據, 由於在協同程式開發過程, 多人團隊 分別在不同時間點更新協同倉儲中的資料庫, 這就如同許多人一起使用公開的置物櫃, 當某人 clone 協同專案 資料庫時, 就如同將整個置物櫃帶回近端, 其中有些置物櫃裡已經有資料, 有些置物櫃則是空的, 這時 近端的協同者可以在置物櫃中的內容物加以更新, 也可以建立更多的置物空間, 但是若要將更動過的置物櫃 推送回遠端的資料倉儲, 就會面臨遠端資料庫是否已經被其他協同人員更動, 若是, 則必須將最新的遠端置物櫃 拉回近端進行內容物必較, 假如兩個版本沒有衝突, 則 git pull 會自動進行合併, 但是若無法自動 合併, 則使用者就必須處理完衝突後, 才能提交版本並且將置物櫃推送到遠端倉儲.

處理協同程式開發衝突

因為本協同程式專案採用 .leo 作為 IDE, application 程式碼與協同文件都是從 .leo 專案檔案 產生, 因此若因為衝突發生在 .leo 檔案, 各協同人員就必須以 SciTE 開啟 .leo 以便檢查衝突點 並且解決產生衝突的資料內容後, 確定 .leo 與 application 都能如預期開啟與執行後, 才能將資料推 送到遠端倉儲 (初學者建議採用手動解決倉儲, 等熟悉流程且充分深入協同架構後, 就可以使用各種圖形介面 的衝突解決方案).

假如近端的 .leo 已經無法輕易修改回正確的版本, 這時也可以從遠端倉儲中取上一個正確的 .leo 版本 , 蓋掉目前的 .leo 然後再配合與其他目錄或 application 程式進行配合, 確定 .leo 可以正確開啟 並產生正確的 application 與協同文書處理 pdf 與 html 資料後再推送回遠端倉儲.

協同期末專案報告編寫

各組任務日誌

問題版次

https://github.com/coursemdetw/2014c2/commit/e768b3c1c9046c6c79f84712066b0648520f064c

所犯錯誤: git config 未能使用 c2g23 分組代號, 未解決衝突就將無法開啟的 .leo 檔案提交並 push 至倉儲.

為何提交的版本連結到錯誤的帳號

https://help.github.com/articles/why-are-my-commits-linked-to-the-wrong-user

Why are my commits linked to the wrong user?

為何提交的版本連結到錯誤的帳號

GitHub uses the email saved in a commit's header to link the commit to a GitHub user.

Github 透過存在提交標頭所存的電子郵箱來連結 GitHub 用戶帳號 (因為只有電子郵箱有唯一性, 而帳號則可能不具唯一性)

If you find your commits are being blamed on another user, or not linked to a user at all, you should check your settings.

假如您發現提交被誤認為其他使用者, 或者根本沒有連結到用戶名稱, 就應該查一下(近端的)設定.

Tip: Commit blame does not grant access to a repository.

提示: 提交誤植不會允許此帳號進入該倉儲.

If you are seeing commits blamed on a user you do not know, don't worry.

所以假如誤將提交設為不知名的用戶名稱, 無需擔心.

The user does not have access to your repository unless you've explicitly added them as a collaborator on that repository or to a team that has access to the repository.

這個誤植的用戶並無法進入您擁有權限的倉儲區, 除非您明確將此帳號加入該倉儲的協同用戶名單中, 或者該帳號屬於倉儲擷取者的團隊中.

Make them match

讓提交正確與帳號對應

In order for GitHub to properly blame you for your commits, make sure your git email setting is correct and matches an email attached to your account.

為了讓 Github 中的提交與帳號對應, 必須確認 git 的電子郵箱設定是正確的, 而且與 Github 帳號中所填的電子郵箱相同.

Configuring git

設定 git

To check your git setting, run this command:

查詢 git 的設定, 執行以下指令:

git config user.email

If this email is not correct, you can change the global setting:

假如所顯示的電子郵箱不正確, 則可以利用下列全域設定更改:

git config --global user.email me@here.com

Tip: If you work on multiple machines, you will need to check this setting on each one.

提示: 假如同時在多台機器上工作, 則需要逐一查驗設定.

Attach the email to your GitHub account

讓電子郵箱與 Github 帳號對應

If your email is not attached to your GitHub account you will need to add it for your future commits to be blamed correctly.

假如目前 Github 帳號與電子郵箱並不對應, 則所進行的修改只會在隨後的推送終正確顯示出來.

Account settings button

帳號設定鈕

In the user bar in the top-right corner of any page, click Account Settings.

在頁面左上方的使用者功能表上, 按下帳號設定.

Emails menu optionClick "Emails".

電子郵箱選單中選 "Emails".