2010-04-06 84 views
4

我目前是組織內部實施新版本控制系統(Subversion)的一員。關於如何處理代碼格式有一些爭議,我希望得到其他人對這個主題的意見和經驗。版本控制和編碼格式

我們目前擁有約10位開發人員,每個開發人員使用不同的工具(由於許可和偏好)。其中一些工具具有自動代碼格式化程序,而另一些則不具備。

如果我們允許「盲注」簽入,每次有人進行簽入時代碼都會顯得截然不同。這會使差異和合並變得複雜。

我接觸過的幾個人,他們已經提到了以下解決方案:

  1. 與使用相同的代碼格式相同的開發者計劃(不是真的由於許可選項)
  2. 有一個掛鉤(客戶端或服務器端),它將在進入存儲庫之前自動格式化代碼
  3. 手動格式化代碼。

關於第三點,概念是從不自動格式化代碼並且有一些標準。現在,這似乎是我們所傾向的。我對這種方法有點猶豫,因爲它可能會導致開發人員花費大量時間手動格式化代碼。

如果任何人都可以請提供一些他們的想法和經驗,這將是偉大的。

謝謝

馬丁

+0

這就是我討厭的WinForm設計器。您沒有機會合並您與設計師聯繫的文件。 – 2010-04-14 20:59:38

回答

3

如果#1是不是一種可行的選擇,#3可能是您的最佳選擇。 #2會讓個體開發人員在檢查完工作副本和現有文件之間進行差異並在其上至少運行一次它們自己的格式化程序,這相當困難。選項#3主要是讓人們進入習慣 - 如果每個人都可以進入相同的習慣,那麼代碼格式化並不是那麼麻煩。您必須格式化的唯一代碼是您創建/觸摸的代碼;其餘的將從結帳格式化。

1

如果運行支持的格式格式的代碼(有每晚構建,測試該代碼每個夜晚),那麼你可以有SVN籤,可以強制執行該標準的一個pre-commit鉤子腳本。

但是選項#3是最好的,因爲在開發過程中更容易在IDE中設置格式規則。

9

不要讓工具/開發人員僅出於美學原因自動/手動重新設置代碼格式。修訂之間的差異變成了一場噩夢。有一個編碼標準,並嘗試使用工具集,以獲得新的模塊儘可能符合您的要求。修改現有模塊的人應該遵守該模塊中使用的約定,無論他們是否喜歡。

+1

+10 upvotes如果我可以。擺脫代碼格式化程序。能夠看到/歸咎於從一個轉變到另一個轉變的變化更重要。在編寫看起來很醜陋的舊代碼時,使用編碼標準來處理未來的新代碼,並學會「接受那些我們無法改變的東西」。 – 2010-04-07 19:55:23

0

我不知道這是一個技術問題還是一個文化問題。

即使他們都使用相同的工具,大多數工具允許您更改應用到文本的默認格式規則。

定義一些標準,通過同行評審和文化理解爲什麼它很重要。