2011-09-25 178 views
1

我有这样的设置。SVN忽略情况

  1. SVN仓库
  2. 直播网站
  3. 开发网站
  4. 本地副本

SVN仓库是相同的活动站点。 每个不同的站点都有不同的配置文件local.xml。 有些客户端是windows/toitoise,有些客户端是我有SSH访问权限的Linux服务器。

我的要求是。

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

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

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

  4. 我不想手动“取消” local.xml中的每一个承诺,因为有像高速缓存和图像文件的一些文件夹被“忽略”了。

我试过了, - 在Repo上锁定文件。提交时会抛出一个丑陋的错误。恐怕会打破其余的承诺。 - SVN:忽略local.xml。但似乎它仍在经历。

感谢您的帮助。

回答

1

将文件放在忽略列表中是必要的,但它本身并不能解决问题。您还需要从存储库中删除文件。运行该删除从SVN文件,但保留在本地文件:

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

编辑:一种常见的方法来保持本地设置文件SVN与名称,如default.local.xml添加它们,并将它们复制到local.xml和修改第一次结帐后立即进行设置。这样你就不会冒险覆盖冲突的实际设置文件。

+0

如果我从回购中删除该文件将不符合此要求。 2.我希望local.xml成为每个新签出的一部分。 –

+0

@Moe,对不起,我错过了那一个。我用建议的解决方案更新了我的答案。 – Kaivosukeltaja

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,这很容易安装和使用。它使用控制文件来指定可以添加哪些文件以及由谁添加。