我有两个存储库,一个具有设置和安装脚本,用于配置项目中的各种内容。第二个回购是项目本身。
设置脚本需要放在项目中,但我不希望它们提交给项目。
我通常通过 svn-ignore 忽略设置脚本,然后手动将脚本复制到项目中,以便它们可以执行。
这样做的问题是脚本可能会随着时间而改变,我想让它们都保持最新。
我正在寻找一种方法来将设置脚本检出到项目工作目录中,同时忽略它们。
这样,我在每个项目中保持安装脚本是最新的,但同时不会将它们包含在任何导出或部署中。
有什么办法可以做到这一点?
我有两个存储库,一个具有设置和安装脚本,用于配置项目中的各种内容。第二个回购是项目本身。
设置脚本需要放在项目中,但我不希望它们提交给项目。
我通常通过 svn-ignore 忽略设置脚本,然后手动将脚本复制到项目中,以便它们可以执行。
这样做的问题是脚本可能会随着时间而改变,我想让它们都保持最新。
我正在寻找一种方法来将设置脚本检出到项目工作目录中,同时忽略它们。
这样,我在每个项目中保持安装脚本是最新的,但同时不会将它们包含在任何导出或部署中。
有什么办法可以做到这一点?
你能给我们一个脚本和项目的 URL 示例吗?它会帮助我们想出一些东西。
在我的脑海中,我会说你正在使用的任何构建脚本都应该负责将设置脚本(通过 a 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
目录,或该目录下的任何子目录或文件。
如果我明白你想要什么,这应该会有所帮助。
作为一种解决方案,我更改了安装脚本中的路径,并添加了一些提示问题,例如项目的位置。
数据库脚本仍然与项目 repo 一起保存,但运行这些脚本的脚本不是。
我基本上将安装脚本与项目分离,现在我可以在项目之外运行安装。
运行安装时,它首先会扫描项目文件夹并提示我选择项目。