当项目中已有文件时,在mercurial中启动项目的最佳方法是什么?

时间:2011-06-09 12:39:31

标签: mercurial project-management project

我从Mercurial开始。我正在阅读mercurial book,但仍有疑问。

我在几个月前开始了我的项目,我有很多文件和目录。现在,我想使用Mercurial并在bitbucket中创建自己的帐户。现在,我想在Bitbucket中设置这个项目。如何将所有这些文件添加到bitbucket repo?

这就是我以为我能做到的事情: 我可以尝试(1)克隆空仓库(来自bitbucket)(1)将所有文件复制到该目录中,(3)发出“hg add”并在此之后(4)提交。

也许你有更好的方法来做到这一点。

谢谢!

(1)

hg clone https://ME@bitbucket.org/ME/myproject

(2)

cp existing-project/* myproject/
cd myproject

(3)

hg add

(4)

hg commit -u ME

(5)

hg push (i think i have to do this to make the changes visible)

2 个答案:

答案 0 :(得分:8)

您可以在原始项目文件夹中简单地hg inithg addhg commit,然后修改~/project/.hg/hgrc以添加您的bitbucket repo的默认推送位置(您可以将它克隆到临时文件夹以获取为您创建的hgrc,您可以将其复制到项目中,甚至无需使用RTFM获取正确的语法。)

由于mercurial的分布式特性,这个hgrc条目是唯一将你的本地回购与bitbucket联系起来的东西;您甚至可以hg push https://ME@bitbucket.org/ME/myproject,而无需在任何地方显示链接。存储库的每个副本都是完全自给自足的。

答案 1 :(得分:3)

Wooble的答案还可以,但它遗漏了一些东西,所以我在这里补充。

当您第一次创建空存储库(通过hg init或在bitbucket上创建)时,它没有标识。但是,只要它有任何变更集,它就具有一个标识,您只能在它和共享该标识的存储库之间进行推/拉。

如果您有2个存储库A和B用于单独的项目,则无法在它们之间进行推/拉。在bitbucket上创建新存储库后,您可以将更改集从A或B推送到该回购一次。如果您第一次从B推送更改,则bitbucket存储库现在与B相关。您无法将更改集从A推送到其中,或者将更改集从中拉入。

所以当Wooble说,

  

...这个hgrc条目是唯一将你的本地回购与bitbucket联系起来的东西;

这是正确的,因为它仍然是空的,因为它与任何存储库无关,直到它具有更改集。并且你仍然需要该地址能够在本地仓库和bitbucket仓库之间推/拉,但是一旦你将变更集推送到它,它也具有与你的本地仓库相关的身份。