保护svn提交中的文件

时间:2010-05-06 07:38:21

标签: svn version-control subclipse svnignore

嘿,想象一个带有log4j.properties的简单webapp,它受版本控制。我无法将其添加到svn:ignore,因为它是必填文件。如果我为开发进行自定义更改并且我不想提交它们,我必须注意意外提交。对于一个文件,它很容易处理,有3个或更多文件,它变得令人毛骨悚然。

有没有办法从svn提交中暂时禁用这些文件?它的简单提交?我正在使用svnsubclipse

3 个答案:

答案 0 :(得分:10)

处理这种情况的典型方法是执行以下操作:

  1. 使用表明该模板的名称
  2. 制作该文件的副本
  3. 将模板提交到存储库
  4. 忽略原始文件
  5. 通过这种方式,您将获得一个新的副本,在部署期间,您可以将文件从模板复制回真实文件。

    这样你就不会冒这个文件提交错误更改的风险,至少对于其他版本控制系统,你不会冒险检查文件并忘记锁定。

    Subversion中没有办法表明文件只是提交第一次的事物类型,所以当你将它添加到你的存储库时,你告诉Subversion跟踪该文件中的变化。除非您手动确保(或编写工具或更改工具)永不提交对此文件的更改,否则Subversion将无法帮助您。

答案 1 :(得分:7)

我解决这个问题的方法是在我们的svn服务器上创建一个新的(有点虚拟)用户并将他添加到所有项目中,让我们称他为Locker。 所以我在配置文件上设置一个锁,作为用户Locker,不应该在代码库中修改。

Etvoilà!这些文件不再被错误提交,但是如果生产系统需要对配置文件进行更新,则任何团队成员都可以强制执行锁定,或者知道Lockers凭据的人员可以更新和重新锁定文件!

也许这不是每个人的解决方案,一些公司法规可能禁止使用代理用户。

答案 2 :(得分:1)

我这样做的方法是让文件名为log4j.properties.server,然后我设置了我的部署脚本来复制.server文件而不是普通文件。