我有两个repos,一个有设置和安装脚本,用于配置项目中的各种事物。第二个回购是项目本身。
设置脚本需要放在项目中,但我不希望它们提交给项目。
我通常会通过svn-ignore忽略设置脚本,然后手动将脚本复制到项目中,以便执行它们。
问题在于脚本可能会随着时间而改变,我希望它们保持最新状态。
我正在寻找一种方法来将设置脚本签出到项目工作目录中,同时忽略它们。
这样我就可以在每个项目中使设置脚本保持最新,但同时不要将它们包含在任何导出或部署中。
有没有办法实现这个目标?
答案 0 :(得分:0)
您能举例说明脚本和项目的URL吗?它会帮助我们想出一些东西。
在我的脑海中,我会说你正在使用的任何构建脚本应该负责将设置脚本(通过svn export
)复制到你的工作目录。你编写什么语言?
另外,请查看我的pre-commit hook。 svn: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保存,但运行它们的脚本不是。
我基本上将安装脚本与项目分离,现在我可以在项目外部运行安装。
运行安装时,首先要做的是扫描项目文件夹并提示我选择项目。