2010-02-19 69 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

相关问题