SVN忽略情况

时间:2011-09-25 16:44:55

标签: svn

我有这样的设置。

  1. SVN存储库
  2. 直播网站
  3. 开发网站
  4. 本地副本
  5. SVN存储库与Live网站完全相同。 每个不同的站点都有不同的配置文件local.xml。 有些客户端是windows / toitoise,有些客户端是Linux服务器,我有SSH访问权限。

    我的要求是。

    1. 我不希望在更新时也不会在A. Repository上更改local.xml,也不希望在更新时更改B.客户端。

    2. 我希望local.xml成为每个新结帐的一部分。

    3. 我不希望客户端上的local.xml文件在修改后留下“修改”的问号标记。

    4. 我不想在每次提交时手动“取消选中”local.xml,因为还有一些文件夹,如缓存和图像文件也被“忽略”。

    5. 我试过了, - 在Repo上锁定文件。提交时会抛出一个丑陋的错误。我担心它会破坏其余的提交。 - SVN:忽略local.xml。但似乎它仍在继续。

      感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

我想我知道你想要什么。通过构建过程来实现这一目标的正确方法。

在您的存储库中,您将拥有local.template.xml文件和local.properties.template文件。没有local.xml个文件或local.properties个文件。

您的开发人员将使用local.properties.template并制作符合其需求的local.properties文件。开发人员将使用构建过程,它将获取local.properties文件和local.template.xml文件,并将它们合并到local.xml文件中供其使用。

当开发人员提交代码时,他们不会提交local.xmllocal.properties文件。由于这些不在存储库中,开发人员可以自由更新其工作目录,而不必担心它会以某种方式破坏local.xml文件中的设置。

并且,您可以毫无顾虑地在服务器上进行部署,因为新版本不会重写服务器的local.xml文件。

您需要的是一个预提交挂钩,可以保证开发人员不会向存储库添加local.xmllocal.properties。我有one,安装和使用非常简单。它使用控制文件来指定可以添加哪些文件以及由谁添加。

答案 1 :(得分:1)

需要将文件放在忽略列表中,但仅凭它不会起作用。您还需要从存储库中删除该文件。运行此命令从SVN中删除文件,但保留本地文件:

svn rm --keep-local local.xml
svn commit

编辑:在SVN中保留本地设置文件的常用方法是使用default.local.xml等名称添加它们并将其复制到local.xml并在第一个之后修改设置查看。这样,您就不会有覆盖实际设置文件冲突的风险。