如何将Mercurial存储库克隆到已存在的目录中?

lit*_*m84 13 django ssh version-control mercurial

我有一个客户端的Dj​​ango项目,我正在本地开发,使用Mercurial进行版本控制.我将我的本地存储库推送到我的个人远程服务器(我保留所有项目),然后当我部署它(在任何一个Web服务器上)时,我从我的个人服务器克隆该存储库.

这在大多数服务器上都可以正常工作(我有完全控制权),但我有一些项目正在部署到WebFaction上.WebFaction很棒,但它的设置有点不寻常,因为我需要首先通过控制面板将Django项目声明为"应用程序".这会自动创建一些内容,例如'apache2','myproject'等文件夹.虽然我想从我的个人远程服务器克隆存储库,但这是同一个文件夹.执行通常的hg clone命令不起作用,因为它说目标文件夹已经存在.我真的没有太多关于这个文件夹的内容,所以我需要解决这个问题.

我不是Mercurial的专家,我似乎唯一可行的方法是将它克隆到另一个文件夹,然后将所有内容(包括.hg)移动到我想要的实际文件夹中.这看起来很傻......

我正在使用Mercurial v1.6.2(通过easy_install安装).任何人都可以对此有所了解吗?

非常感谢.

Ry4*_*ase 23

只复制.hg目录肯定有效,但你也可以做一个hg init然后hg pull http://remote/repo.刚刚进行了初始化的回购只有000000000000000变更集,因此您可以从任何回购中获取而不会收到"无关的回购"警告.这hg clone --pull与手动初始化基本相同.

  • 谢谢!你告诉我一个非常好的hg小费:-) +1 (2认同)

Mat*_*hen 11

您只能复制.hg文件夹,然后还原或更新为提示.例如:

cp -a src/.hg dest/
cd dest
hg up -C
Run Code Online (Sandbox Code Playgroud)


msw*_*msw 0

总的来说,看起来您可能正在尝试使用 Mercurial 作为安装管理器,这当然不是它的设计目标。

如果我没有正确理解您的意思,您的源存储库的一部分应该类似于make deploy将文件放入正确的位置。换句话说,.hg在部署目录中拥有一个存储库克隆(在 中)似乎很奇怪并且容易出现问题。