你能强制subversion创建一个文件,但然后忽略内容吗?

时间:2012-11-23 16:38:27

标签: svn

我们的应用程序中有一个开发设置文件,需要在某个位置,但在机器之间的内容各不相同。

我们要做的是提交存储文件的“基本”版本,任何人都可以检出,但是subversion会忽略对文件的更改以防止其他人重新检入。这样的事情可能吗?

感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

一些解决方案

  • 仅限Windows的TortoiseSVN解决方案(您没有提及您的客户端工具)

使用ignore-on-commit更改列表TSVN功能(是的,每个客户端

  • 锁定文件

虽然没有广泛使用,但Subversion中仍然存在锁模型(而不是分支合并)。您可以提交并锁定(并且永不解锁)您的文件。如果锁定将在特殊的“储物柜”用户下执行,则任何人都无法错误地解锁


关于妄想狂欢的权利

  • Mercurial as SVN-client

hg ci -X filename将从提交的变更集中排除版本化文件名,即使文件名已更改,ci -X也可能被定义为ususal ci的替换别名

答案 1 :(得分:1)

我担心这是不可能的。

通常,该过程是创建具有不同扩展名的文件的“分发”版本,并且svn ignore是正常文件。在新的结帐时,您必须手动将“dist”文件复制到其最终名称。

我经常将它用于我的makefile配置:

  • makefile.conf.dist - 已提交的基本版本
  • makefile.conf - 构建系统读取的实际文件,未提交

如果您可以接受这个,请查看this question

答案 2 :(得分:1)

我碰巧有一个pre-commit hook,可以完全按照自己的意愿行事。你可以设置它,所以只有你能够对这个文件进行更改。它还可以确保文件在其上设置了正确的属性,甚至根据其名称完全禁止新文件。

它需要Perl,它包含所有Unix和Linux发行版以及Mac。你也可以获得Windows的Perl。钩子不需要非标准的Perl模块。但是,它可以使用Net :: LDAP(可选模块),因此您可以根据LDAP组设置权限(如果使用Windows Active Directory)。