2011-06-09 29 views
3

我以Mercurial开始。我正在阅读mercurial book,但仍然有问题。如果项目中已有文件,在mercurial中启动项目的最佳方式是什么?

我已经开始我的项目一个月前,我有很多文件和目录。现在,我想使用Mercurial并使自己成为bitbucket中的帐户。现在,我想在Bitbucket中设置这个项目。我如何将所有这些文件添加到bitbucket回购?我可以尝试(1)克隆空回购(从bitbucket)(1)将所有文件复制到该目录中,(3)发出“hg add”和之后(4)提交。

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

谢谢!

(1)

hg clone https://[email protected]/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) 

回答

8

你可以简单地hg inithg addhg commit在原来的项目文件夹,然后编辑~/project/.hg/hgrc添加您的到位桶回购的默认推送位置(你可以把它复制到一个临时文件夹来获取hgrc创建对于你,你可以复制到你的项目中,甚至不需要RTFM的正确语法。)

由于mercurial的分布式特性,这个hgrc条目是唯一与你本地的repo相关的bitbucket;你甚至可以在没有任何地方显式链接的情况下使用hg push https://[email protected]/ME/myproject。存储库的每个副本都是完全自给自足的。

+0

谢谢Wooble。看起来很简单! – santiagobasulto 2011-06-09 12:55:40

3

Wooble的答案是可以的,但它缺少一些东西,所以我在这里补充。

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

如果您有两个存储库A和B用于不同的项目,那么您将无法在它们之间推/拉。一旦在bitbucket上创建了一个新的存储库,您可以将更改集从A或B推送到一次。如果您第一次从B推送更改,那么bitbucket存储库现在与B相关联。您不能再将更改集从A推入,或者将更改集从其中拉出。

所以当Wooble说,

...这个hgrc条目是唯一将本地repo与bitbucket相关联的东西;

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

+0

谢谢乔尔。很高兴知道。 – santiagobasulto 2011-06-09 20:54:13

相关问题