2008-09-11 76 views
8

ReSharper代碼清理功能(啓用「reorder members」和「reformat code」)非常棒。您可以使用XML定義佈局模板,然後根據您在模板中設置的規則,一個簡單的組合鍵就可以重組整個源文件(或文件夾/項目/解決方案)。ReSharper代碼清理/重新格式化代碼功能與版本控制系統

無論如何,你認爲這可能是像顛覆,CVS,GIT等VCS的問題?有沒有可能導致許多不需要的衝突?

謝謝。

回答

16

是的,這肯定會導致問題。除了創建必須手動解決的衝突之外,當您簽入已重新格式化的文件時,VCS幾乎將每行都記錄爲已更改。這會讓你或隊友難以回顧歷史,看看什麼時候變了。也就是說,如果每個人都以相同的方式自動生成他們的代碼(即,將該XML模板分發給團隊),那麼它可能會工作得很好。只有當不是每個人都在做同樣的事情時,問題纔會出現。

+10

我在這些情況下推薦的做法分兩部分。在一次掃描中,您清理了代碼,然後在第二次進行更改。兩個不同的提交消息。通過這種方式,很容易就可以撤消所做的操作*並*知道如何修改您的修補程序。在我看來,在多次提交中承諾過多的事情是一種很好的做法。讓其他人知道什麼和爲什麼*更容易。 – 2009-07-19 03:42:45

2

它肯定會導致衝突,因此如果有人在並行處理它們,我會確保您不會重新格式化整個文件。

0

這肯定會導致衝突。

如果你想在多用戶環境中使用它,那麼Resharper的配置需要將你的代碼格式化爲一組在你的組織中實施的標準,而不管用戶是否使用了Resharper。

通過這種方式,您正在使用該工具來確保您自己的代碼符合標準,而不是將您的首選項應用於整個代碼庫。

0

我同意以前的答案,說衝突是可能的,甚至可能。

如果您計劃重新格式化代碼,那麼要確保你不與那些改變的實際代碼的功能混合格式化簽入。這樣,人們可以跳過通過簡單重新格式化的檢查。確保每個人都知道正在進行重新格式化也是一個不錯的主意,以便他們可以反對他們是否在該領域持續開展工作。

7

我在等待一個IDE或使用一些基線格式規則總是將源代碼編輯器,但允許每個個體開發者表示和自己喜歡的格式編輯代碼。這樣我就可以在下一行的開頭放置我的開放式大括號,而不是在當前行的末尾,那裏所有異教徒都似乎認爲它行進了。

我的猜測是我會等很長時間。

2

您可以使用StyleCop實施一套全面的標準,幾乎每個人的力量使用相同的佈局樣式其中。然後,您需要做的就是開發一個與此匹配的ReSharper代碼風格規範,並將其分發給團隊。

我仍然在等待someone else to do this,並且JetBrains清除了所有不完全支持的細節,以便讓ReSharper基本保證完全符合StyleCop。

7
  • 只是格式化整個解決方案 一次
  • ,並確保每個開發人員 使用ReSharper的
  • ,並確保該格式 選項共享和版本 (代碼風格共享選項)
0

我們正在開發一些與源代碼級別的重構相關的工作。我們稱之爲Xmerge,它現在是Plastic的一部分。這只是第一種方法,因爲我們正在研究更高級的解決方案。檢查它here

0

編寫腳本檢查源代碼管理歷史記錄中的每個版本,應用代碼清理,然後將其檢入到新的存儲庫中可能是一個好主意。然後將這個存儲庫用於將來的所有工作。