【问题标题】:What's the best way to start a project in mercurial when you already have files in the project?当项目中已有文件时,在 mercurial 中启动项目的最佳方式是什么?
【发布时间】:2011-06-09 22:40:51
【问题描述】:

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

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

这就是我认为我可以做的: 我可以尝试(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)

【问题讨论】:

    标签: mercurial project-management project


    【解决方案1】:

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

    由于 mercurial 的分布式特性,这个 hgrc 条目是唯一将您的本地 repo 与 bitbucket 相关联的东西;您甚至可以hg push @987654321@ 无需在任何地方明确链接。存储库的每个副本都是完全自给自足的。

    【讨论】:

    • 谢谢 Wooble。看起来很简单!
    【解决方案2】:

    Wooble 的回答还可以,但是漏掉了什么,所以在这里补充一下。

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

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

    所以当 Wooble 说,

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-01
      • 1970-01-01
      • 2019-12-14
      • 2011-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多