2010-12-03 69 views
3

我是一個相當大的組織的一部分,開發人員分佈在各個地區,使用Windows,OSX和Linux開發環境。GIT - 跨平臺塗抹/清潔過濾器?

我問過先前的問題,導致我想使用清潔/黑灰過濾器: Mark a file in the GIT repo as temporarily ignored

但是......什麼是做跨平臺腳本過濾器的最佳方式?我不希望開發人員安裝額外的腳本環境。有沒有關於此的最佳實踐?任何方式使過濾器運行在服務器端(我們使用github)?

回答

1

這取決於默認安裝的內容。

在我們的Solaris/Linux/Windows環境中,我們使用perl腳本,但不是每個操作系統都有一個腳本:只有一個腳本能夠識別在其中執行的操作系統並根據平臺運行相應的代碼。

這允許在處理Os專用子例程中的路徑和其他特定命令時,在腳本的平臺無關部分中分離通用函數,所有這些都在同一個腳本中,版本只有一次。一些信息(Os)與版本化數據無關(在「測試」或「修復」分支中),因此可能會導致一些「元數據泄露」或......)將在特殊分支中共存。
這是不實際的:什麼是分支修復你需要這些腳本的特殊版本?
然後你會爲他們製作一個「fix-Windows」和「fix-Unix」分支嗎,還是隻是簡單地修改「修復」分支中的腳本,提交它並完成它?

+0

換句話說,沒有一個好方法? :) – 2010-12-03 20:36:38

+0

@Marc:我已經擴展了我的回答,並提供了關於如何管理這些腳本的一些評論。 – VonC 2010-12-04 00:04:02

0

如果您需要在服務器上運行塗抹/乾淨腳本,則存在問題。只有在有工作文件夾的地方纔能使用塗抹/清潔。根據您所在的平臺,您可以擁有不同的版本。

做到這一點的最佳方式是最多隻能爲每個平臺創建1個腳本版本。有些可以重用 - 比如說你有msysgit。然後,如果使用相同版本的bash,則可以使用與Linux上相同的腳本。