Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mercurial 在hg存档中自动包含生成的文件_Mercurial_Generated - Fatal编程技术网

Mercurial 在hg存档中自动包含生成的文件

Mercurial 在hg存档中自动包含生成的文件,mercurial,generated,Mercurial,Generated,我有一个巨大的Mercurial存储库,其中有一个名为“.version”的文件。每次提交或更新完成时,都会使用钩子自动生成此文件 但是,这个文件是生成的,并且没有版本控制(这总是会导致与其他项目开发人员发生冲突),我希望在执行任务时始终打包它 hg archive 关于hg归档的帮助页面告诉我们有一个选项 hg archive -I .version 但是否有一种方法可以自动执行此包含 我在关于hgrc文件的手册页中找不到与此相关的选项 有什么建议吗?要运行-I自动,您可以在hgrc中设置

我有一个巨大的Mercurial存储库,其中有一个名为“.version”的文件。每次提交或更新完成时,都会使用钩子自动生成此文件

但是,这个文件是生成的,并且没有版本控制(这总是会导致与其他项目开发人员发生冲突),我希望在执行任务时始终打包它

hg archive
关于hg归档的帮助页面告诉我们有一个选项

hg archive -I .version
但是否有一种方法可以自动执行此包含

我在关于hgrc文件的手册页中找不到与此相关的选项


有什么建议吗?

要运行-I自动,您可以在hgrc中设置别名

[alias]
archive = archive -I .version
然而我不认为——我做了你认为它做的事。我对它的理解是,它将档案的内容限制在回购协议中只有与模式“.version”匹配的内容,而您在回购协议中没有该模式,则该内容一文不值


如果.version中的所有内容都是正在存档的修订版本的版本信息,那么您当前的挂钩应该更改为
存档后挂钩?

以自动运行-I您可以在hgrc中设置别名

[alias]
archive = archive -I .version
然而我不认为——我做了你认为它做的事。我对它的理解是,它将档案的内容限制在回购协议中只有与模式“.version”匹配的内容,而您在回购协议中没有该模式,则该内容一文不值


如果.version中的所有内容都是正在存档的修订版本的版本信息,那么您当前的钩子可能应该更改为
存档后钩子?

存档命令并不是打包软件的最终解决方案。它只是给你一个没有历史记录的zip文件或tar球,仅此而已

因此,请编写一个脚本来执行此操作。该脚本可以从使用存档获取一组干净的文件开始:

$ hg archive -r 1.0 foo-repo foo-1.0
然后运行钩子生成版本文件,将必要的文件复制到目录中,生成文档,等等。最后,自己打包目录


令人鼓舞的是,获取文件快照是打包软件的最小部分。

存档命令并不是打包软件的最终解决方案。它只是给你一个没有历史记录的zip文件或tar球,仅此而已

因此,请编写一个脚本来执行此操作。该脚本可以从使用存档获取一组干净的文件开始:

$ hg archive -r 1.0 foo-repo foo-1.0
然后运行钩子生成版本文件,将必要的文件复制到目录中,生成文档,等等。最后,自己打包目录



令人鼓舞的是,获取文件的快照是打包软件的最小部分。

Hi,这不起作用。我试图创建一个别名“archive=!$HG archive-I.version$HG_ARGS”,但它运行在一个未定义的操作中,我无法进一步指定。您不应该需要$HG或$HG_ARGS吗?或者你想把它作为一个shell别名而不是一个hg别名来执行?好吧,当我运行hg archive-I.version test.tar时,我得到的是一个空的tar归档文件,里面没有任何文件。是的,请参阅我的第二段。您的回购协议中没有与模式“.version”匹配的内容-我不是你想要的。嗨,这不行。我试图创建一个别名“archive=!$HG archive-I.version$HG_ARGS”,但它运行在一个未定义的操作中,我无法进一步指定。您不应该需要$HG或$HG_ARGS吗?或者你想把它作为一个shell别名而不是一个hg别名来执行?好吧,当我运行hg archive-I.version test.tar时,我得到的是一个空的tar归档文件,里面没有任何文件。是的,请参阅我的第二段。您的回购协议中没有与模式“.version”匹配的内容-我不是你想要的。听起来你想用hg进行部署而不是版本控制?也许您应该将钩子移到部署脚本?在.version中有什么是您无法对其进行版本设置的?当我以外的其他人将提交推送到主存储库时,将.version添加为项目文件总是会遇到合并冲突,因为.version总是会被更新为2.3.0_uu这样的版本号。我怀疑你想要一个后期归档钩子,但我认为我们真的需要知道你当前的钩子是什么,.version的完整内容是什么(如果只是2.3.0_uuuu,那么听起来你肯定可以在后期归档钩子上做,而不是更新)。我也考虑过这一点,但是文档中没有后归档钩子。听起来您是在尝试使用hg进行部署,而不是版本控制?也许您应该将钩子移到部署脚本?在.version中有什么是您无法对其进行版本设置的?当我以外的其他人将提交推送到主存储库时,将.version添加为项目文件总是会遇到合并冲突,因为.version总是会被更新为2.3.0_uu这样的版本号。我怀疑你想要一个后期归档钩子,但我认为我们真的需要知道你当前的钩子是什么,.version的完整内容是什么(如果只是2.3.0_uuuu,那么听起来你肯定可以在后期归档钩子上做,而不是更新)。我也考虑过这一点,但是文档中没有后归档钩子。我应该运行哪个钩子?postarchive没有钩子,或者我错了吗?您应该制作一个独立的脚本,手动执行以实现发布。没什么特别的:-)但是,如果你真的想把它作为
hg归档
的一部分,那么你可以添加一个
后期归档
钩子。所有命令都有该形式的
pre-
post-
钩子。我应该运行哪个钩子?postarchive没有钩子,或者我错了吗?您应该制作一个独立的脚本,手动执行以实现发布。没什么特别的:-)但是,如果你真的想把它作为
hg归档
的一部分,那么你可以添加一个
后期归档
钩子。所有命令都具有该形式的
pre-
post-
挂钩。