Mercurial-如何将回购协议的来源导出到生产站点?

Mercurial-如何将回购协议的来源导出到生产站点?,mercurial,tortoisehg,Mercurial,Tortoisehg,我已经尝试通过打开我的回购变更日志来使用Ortoise HG中的存档。这看起来不像SVN的export命令,我可以简单地将远程存储库导出到当前目录。我使用它来获得源代码的干净副本,用于生产,而不需要注释和存储库数据。在HG我怎么能做这样的事情?或者,我应该使用克隆并手动处理回购相关数据吗 顺便说一句,我需要通过命令行完成这一切,因为我不会在我的Linux服务器上使用Tortoise HG 非常感谢您的帮助。我想您需要存档选项 尝试: 您可以将归档文件导出为文件或tar/zip/等 关键在于,使用

我已经尝试通过打开我的回购变更日志来使用Ortoise HG中的存档。这看起来不像SVN的export命令,我可以简单地将远程存储库导出到当前目录。我使用它来获得源代码的干净副本,用于生产,而不需要注释和存储库数据。在HG我怎么能做这样的事情?或者,我应该使用克隆并手动处理回购相关数据吗

顺便说一句,我需要通过命令行完成这一切,因为我不会在我的Linux服务器上使用Tortoise HG

非常感谢您的帮助。

我想您需要存档选项

尝试:

您可以将归档文件导出为文件或tar/zip/等

关键在于,使用归档,您可以从repo开始并指定目标,而在subversion中,您可以从目标开始并指定repo的位置

除了克隆和相关命令之外,Mercurial似乎没有太多在远程存储库上操作的选项。

我认为您想要归档选项

尝试:

您可以将归档文件导出为文件或tar/zip/等

关键在于,使用归档,您可以从repo开始并指定目标,而在subversion中,您可以从目标开始并指定repo的位置


除了克隆和相关命令之外,Mercurial在远程存储库上似乎没有太多的操作选项。

正如其他回复所指出的,hg archive可以做您想做的事情-它可以归档文件或只是一个文件布局,但是如果您可以在服务器上运行Mercurial,我是否可以建议将服务器设置为克隆,有一个钩子,在收到新变更集时更新?只要您不在live server上编辑,就不会有合并冲突,因此这是一个安全的操作

在服务器上:

hg clone ssh://host//path/to/dev/repo
在服务器的.hg/hgrc文件中添加以下行

[hooks]
changegroup = hg update
然后,当您更新要部署的dev repo时,只需执行以下操作:

hg push ssh://server/path/to/deployrepo

然后你可以从你的repo推送到你的服务器上,它会自动更新。

正如其他回复所指出的,hg archive可以做你想做的-它可以归档文件或只是一个文件布局,但是如果你可以在服务器上运行mercurial,我是否可以建议将服务器作为一个克隆,有一个钩子,在收到新变更集时更新?只要您不在live server上编辑,就不会有合并冲突,因此这是一个安全的操作

在服务器上:

hg clone ssh://host//path/to/dev/repo
在服务器的.hg/hgrc文件中添加以下行

[hooks]
changegroup = hg update
然后,当您更新要部署的dev repo时,只需执行以下操作:

hg push ssh://server/path/to/deployrepo

然后,您可以从repo推送到服务器,它将自动更新。

如果您想要一个没有所有存储库数据的输出目录,只需在克隆后删除.hg目录。

如果您想要一个没有所有存储库数据的输出目录,只需在克隆后删除.hg目录。

,我可以进行归档并以某种方式将存储库的URI传递给该函数,它会将文件带到我当前的目录中吗?这是我以前尝试过的,但我一定有一些语法错误或其他原因。@orokusaki-在存储库中,执行archive命令并在args中指定所需的输出位置。因此,我可以执行archive并以某种方式将存储库的URI传递给该函数,它会将文件带到我当前的目录中?这是我以前尝试过的,但我一定有语法错误,或者其他什么。@orokusaki-在存储库中,执行archive命令并在args中指定所需的输出位置。这很酷。如果我想将我的存储库托管在BitBucket上,并通过我的服务器直接从他们的存储库中提取源代码,该怎么办?这样就可以了。登录到您的服务器,然后进行hg拉取,然后进行hg更新。这很酷。如果我想将我的存储库托管在BitBucket上,并通过我的服务器直接从他们的存储库中提取源代码,该怎么办?这样就可以了。登录到您的服务器并执行hg拉取,然后执行hg更新。我只需扩展这个答案:只需删除从.hg.hgignore、.hgtags等开始的所有内容。。所以rm-rf.hg*我可以扩展这个答案:简单地删除从.hg.hgignore、.hgtags开始的所有内容。。So rm-rf.hg*