2

我们的应用程序中有一个开发设置文件,它需要放在某个位置,但内容因机器而异。

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

谢谢你的帮助!

4

3 回答 3

3

一些解决方案

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

使用提交时忽略更改列表 TSVN 功能(是的,在每个客户端上

  • 锁定文件

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


关于妄想狂言的权利

  • Mercurial 作为 SVN 客户端

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

于 2012-11-23T18:25:58.230 回答
1

我担心这是不可能的。

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

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

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

如果您可以接受这对于单台机器,请查看此问题

于 2012-11-23T17:09:20.657 回答
1

我碰巧有一个预提交钩子,可以完全按照您的意愿行事。您可以对其进行设置,因此只有您才能对此文件进行更改。它还可以确保文件具有正确的属性设置,甚至可以根据文件名称完全禁止新文件。

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

于 2012-11-23T17:42:27.877 回答