有時,當您使用本地副本時,可能會存儲您不希望提交的配置設置,並且忽略文件是不切實際的,因爲它還包含特定於應用程序的設置。如何在做顛覆提交之前清理源代碼?
例如,Django settings.py文件包含數據庫連接詳細信息和項目設置,例如要加載的應用程序。
當提交這些類型的文件時,有沒有辦法消毒這些類型的文件?有沒有辦法在再次結賬時恢復您自己的本地設置?
我現在的環境是Linux和命令行Subversion
有時,當您使用本地副本時,可能會存儲您不希望提交的配置設置,並且忽略文件是不切實際的,因爲它還包含特定於應用程序的設置。如何在做顛覆提交之前清理源代碼?
例如,Django settings.py文件包含數據庫連接詳細信息和項目設置,例如要加載的應用程序。
當提交這些類型的文件時,有沒有辦法消毒這些類型的文件?有沒有辦法在再次結賬時恢復您自己的本地設置?
我現在的環境是Linux和命令行Subversion
解決此問題的一種方法是將「標準」配置文件完全保留在不同的文件中,例如settings.py.example
。在您的工作副本中,您將複製settings.py.example
至settings.py
並使用副本。如果您需要更改標準配置,請更改settings.py.example
並將其簽入。否則,您不需要更改它,並且修改的settings.py
甚至不在版本控制中,因此它不會被注意到(您可以將其包含在svn:ignore
屬性中以使其更加安靜)。
我用忽略-ON-commit的更改。
雖然這似乎是特定於TortoiseSVN。可能無法在命令行上使用。
以下是我如何避免此問題。通常我有開發,UAT(用戶驗收測試)和生產配置。通常它們並排存在於相同的目錄中(或者可能是單獨的dev/UAT/prod目錄)。這些都被檢入並對待源代碼。因此,可以單獨管理dev/UAT/prod數據庫配置(例如)。
開發發生指向開發配置(但你選擇這樣做)。自動測試將跑出開發或UAT CONFIGS(取決於項目等)
此外,我還提供通過設置我的系統來檢查我的主目錄之前來裝載這些CONFIGS覆蓋的手段,我可以提供真正個人化的覆蓋。通常重寫配置只會指定一部分變量,所以dev/UAT/prod配置可以更改和增長,而我的個人配置不需要跟蹤更改。我個人的覆蓋不是通過SVN或類似的控制,因爲它特別針對我在那個特定時間做的事情。
不知道UAT是什麼。看着它 - 用戶驗收測試? – 2009-07-25 13:08:18
謝謝Greg。有時解決方案很明顯,你想知道爲什麼你自己沒有想到它) – 2009-07-25 22:30:02