我想知道是否有一些技巧可以保存存储库中的文件,该文件将由任何签出存储库的人提取,但除非执行某种显式操作,否则永远不会将其提交到存储库。
基本上,我正在寻找的方法是让文件具有默认值,可以在本地修改而不影响存储库。
我知道有两种方法可以做到这一点,但我正在寻找更好的方法:
这两个解决方案都需要开发人员的额外操作,我担心我不能相信每个人都会遵循正确的程序......有没有办法让开发人员对流程透明?
答案 0 :(得分:3)
不幸的是,我从来没有见过“简单易用的”方式。
我通常使用您的2)解决方案,基于具有某种.default
扩展名的文件。
但是,可能的解决方案是使用一些预提交的SVN挂钩,即:
并且,作为安全预防措施,有一天,您需要修改其中一个“不可修改”的文件,您可能希望在commit-comment上添加一个测试:
我从未测试过这种精确的情况,但我已经看到预先提交的钩子用于确保某些条件,例如“每次提交必须有超过X个字符的注释” - 所以它应该是可能的......
有关更多信息,您可以查看Implementing Repository Hooks和pre-commit。
我希望您能够获取受当前提交影响的文件列表...查看this article,似乎可以使用svnlook
。
答案 1 :(得分:2)
我会使用您的方法#2,然后向应用程序添加防御性代码,检查开发人员是否正确创建本地文件,并在他们弄错时提醒他们。
如果您的项目与我所做过的其他项目一样,那么新的开发人员在拥有有效的工作树之前可能需要检查清单。将其添加到该列表中,并使应用程序尽可能地检查其正确性。
答案 2 :(得分:1)
我正在使用预构建操作跟踪您的第二个方法,该操作将文件复制到正确的位置,根据所选的构建配置更改扩展并根据需要进行修改。在此方法中,不存在意外提交的风险项目开箱即用。