Conventional Commits 和 commitlint

Conventional Commits 是一個簡單的 Git commit message 約定,用來規定 commit message 的寫法。Git 本身就沒有規定 commit message 的內容格式,所以不同人會有不同的做法。如果 repository 只是有一個或幾個人用的話,那問題就不大。但如果在開源軟件或者公司這類多人同時參與的 repository 時,不同風格的 commit message 會令人花額外的時間來了解 repository 的變動。如果再加上一部分的 commit message 內容空洞的時候(例如只寫「fix」、「commit」、「修正錯誤」等等),情況就會失控。 ...

August 24, 2020

xUnique

Xcode project 有個特色就是 VCS unfriendly。例子有 project.pbxproj 會有自動產生的 hash 和開啟 xib、storyboard 時不論有沒有修改過內容都好 Xcode 還是自動會將 macOS 和 Xcode 版本寫入。如果是 xib、storyboard 的版本問題就不難解決,因為比較難出現 conflict。但 project.pbxproj 就很容易 conflict。這是因為 Xcode project 和 Java 之類的 project 不同,Xcode 是可以讓 user 自訂 project 檔案排序,還有就是可以讓 user 決定那些檔案是屬於 project 的一部分,不是純綷只定義 file system 的某幾個資料夾就是 project 的一部分。然而這個特色卻容易出現 merge conflict。只要你和另一個組員在 Xcode file tree 同時將檔案排列次序改變,那就會在 merge 時出現 conflict。尤其是在前期開發時因為不時要開新檔案,會令 conflict 更容易出現。而解決 conflict 又特別麻煩,因為 project.pbxproj 的設計是讓 Xcode 讀,不是讓人去閱讀。 ...

September 24, 2016

在 Android app 內顯示 Git commit hash

有些 Android app 除了顯示版本號碼之外,還會有該版本的 Git commit hash。如果有好幾部測試機做測試的話,可能會在開發時先後在不同的機安裝過不同版本的 app。但就沒有每次都更新版本號碼。加了 commit hash 就容易分辨 app 的實際版本。其實要顯示 commit hash 的做法不太難,不需要每次人手更改的。只需要改一下 app 的 build.gradle 就可以了。 ...

August 29, 2016

ConEmu

最近開始用了一些需要用 command 執行的工具(Grunt 和 PHPUnit),發現一個可以支援顏色顯示的 console 會比較方便。ConEmu 是一個在 Windows 上使用而且有分頁功能的 console,和 Mac 的 iTerm 有點相似。它的特色就是可以讓你自由地設定各項細節。由字型、字體大小到啟動時開啟那一個目錄都能設定到。它除了可以調用 Windows 的 Command Prompt (cmd.exe) 之外,還可以調用 PowerShell、Bash 等等的 shell。如果用 Bash 的話可以用 Git 提供的版本,這個版本可以支援基本的 Bash 指令,用來執行 PHP CLI 程式、Grunt、PHPUnit 都有顏色顯示。 ...

December 29, 2013

Bitbucket 免費 Academic License

Bitbucket 和 GitHub 一樣都是有名的 Git repository (repo) hosting 供應商。兩者的免費版差別在於 Github 免費版只可以開到公開的 repo 而 Bitbucket 就可以開到公開和私人的 Git repo,如果不想公開源碼的話可以考慮用 Bitbucket。Bitbucket 最多可以與五個人共用私人的 repo,但它有推薦制度來增加共用名額,最多能與八個人共用同一個私人 repo。 ...

May 27, 2013