SVN包含并忽略另一个存储库

时间:2013-03-15 16:34:47

标签: svn

我有两个repos,一个有设置和安装脚本,用于配置项目中的各种事物。第二个回购是项目本身。

设置脚本需要放在项目中,但我不希望它们提交给项目。

我通常会通过svn-ignore忽略设置脚本,然后手动将脚本复制到项目中,以便执行它们。

问题在于脚本可能会随着时间而改变,我希望它们保持最新状态。

我正在寻找一种方法来将设置脚本签出到项目工作目录中,同时忽略它们。

这样我就可以在每个项目中使设置脚本保持最新,但同时不要将它们包含在任何导出或部署中。

有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:0)

您能举例说明脚本和项目的URL吗?它会帮助我们想出一些东西。

在我的脑海中,我会说你正在使用的任何构建脚本应该负责将设置脚本(通过svn export)复制到你的工作目录。你编写什么语言?

另外,请查看我的pre-commit hooksvn:ignore仅适用于当前目录,本质上是顾问。它不会阻止某人提交文件,如果文件已提交,svn:ignore不执行任何操作。我的预提交钩子允许你阻止某人提交整个目录树。

假设您的Subversion存储库以这种方式布局:http://svnserver/svn/trunk/myproject。您可以直接在项目根目录下的dist目录下构建项目。因此,您不希望用户添加http://svnserver/svn/trunk/myproject/dist目录或其下的任何子目录。

使用我的预提交钩子,您可以将控制文件设置为如下所示:

[file You can't add files into the in the build area of your project.]
file=/*/*/dist/**
access=read-only
users=@ALL

现在,用户将无法添加dist目录下的myproject目录,或其下的任何子目录或文件。

如果我理解你想要什么,这应该会有所帮助。

答案 1 :(得分:0)

作为一种解决方案,我改变了安装脚本中的路径,并添加了一些提示 问题,例如项目的位置。

数据库脚本仍然使用项目repo保存,但运行它们的脚本不是。

我基本上将安装脚本与项目分离,现在我可以在项目外部运行安装。

运行安装时,首先要做的是扫描项目文件夹并提示我选择项目。