2010-02-19 74 views
5

我想一個特定的字符串中的特定文件,每次我更改提交到該文件的時間被隱藏。隱藏在文件中的字符串混帳之前提交

其實,我有一個文件的URL,不應該遠程倉庫中是公開的。無論如何用pre-commit和post-commit鉤子或類似的東西隱藏它?

目前,我有一個Git倉庫工作,但它會很高興知道如何使用svn做到這一點。

感謝, 西芒

回答

4

如果你真的必須有版本控制之下的文件,使用git attribute filter driver(見GitPro book)。

過濾器驅動程序由一個clean命令和命令smudge,其中任一個可以不指定的。
一旦checkout,指定的smudge命令時,該命令被送到從它的標準輸入團塊對象,並且其標準輸出用來更新worktree文件。
類似地,clean命令用於在入住時到worktree文件的內容進行轉換。

這樣,腳本(的私人版本,只有在你的回購,而不是混帳管理)通過塗抹引用可以更換編碼URL,而乾淨的腳本將其內容還原到編碼的URL 。
同一個腳本的公共版本,由git管理並推送到任何地方都會......沒有任何操作,並保持URL被混淆。

alt text

+0

謝謝。這就是我一直在尋找的。 – simao 2010-02-19 19:00:14

7

你可以保持在一個單獨的文件的字符串(如資源文件,如果你的環境支持),而不是把該文件版本控制之下。

+0

我會這樣做的。無論使用git掛鉤還是存儲敏感信息的中心位置,它都更加清爽。 – 2010-02-19 01:00:22

+0

+1。這對於源代碼管理系統和維護特定於安裝的設置都是最簡單的方法。但至少在git中,應該有一種方法來使原始計劃有效,因爲git(與svn不同)允許部分文件提交。 – Thilo 2010-02-19 01:00:53

+0

是的,實際上這樣一個簡單的解決方案將工作。謝謝:) – simao 2010-02-19 19:00:46