代码之家  ›  专栏  ›  技术社区  ›  DeepNightTwo

使用Mercurial HG时,如何获取最新的代码?

  •  23
  • DeepNightTwo  · 技术社区  · 13 年前

    我刚接触汞。我的朋友创建了一个回购协议,我将使用它。 我安装了TortoiseHG并试图获取最新的代码。我发现当使用克隆操作时,它会将所有代码拉到本地,包括历史记录(我说得对吗?)我不需要这个。我只想得到最新的密码。有这个手术吗?

    6 回复  |  直到 13 年前
        1
  •  19
  •   Martin Geisler Borealid    13 年前

    简而言之,没有。

    再过一段时间:Mercurial还不支持浅层克隆,在那里你只能得到历史的一部分。因此,每次克隆时,都会拉入包含所有变更集的整个存储库。

    此外,与Subversion不同,在只签出存储库的一部分时,无法创建窄克隆。例如,如果存储库具有目录 foo/ bar/ ,没有办法只得到 酒吧/ 目录。换句话说,Mercurial总是在项目范围内的快照上运行。

        2
  •  5
  •   xrost    11 年前

    最简单的实现方法是:

    hg archive [destination folder]
    
        3
  •  4
  •   Klaim    13 年前

    一旦克隆了存储库,要获取“tip”的代码(当前分支的最后一个版本,如果不精确,则为默认版本),只需 update .

    你有一个龟的更新动作。完成后,您可以查看文件夹中的文件。

    如果您想要存储库的另一个状态(旧版本或旧的标记状态),那么它仍然是 更新 命令,以及其他参数(参见文档或TortoiseHG接口)。

        4
  •  3
  •   Lasse V. Karlsen    13 年前

    如果您只想要最新的代码,而不打算使用它来做任何与存储库相关的事情,比如提交,或与旧版本的差异,或者其他什么,那么您就要看从何处获得代码以及如何获得代码。

    如果他使用的是托管服务之一,比如bitbucket,通常会有一个下载链接,它只提供源代码。

    例如,如果你去 here ,在右边有一个“Get source”链接,可以选择文件格式(zip或whatnot)

    如果你在其他地方得到了文件,你需要探索你从中得到它们的界面。试着把你从中克隆的链接粘贴到你的浏览器中,看看你得到了什么。

        5
  •  2
  •   Binary Phile    13 年前

    当然。克隆存储库,然后删除.hg子目录。

        6
  •  2
  •   Ance    8 年前

    我可能会晚一点,但事实上,这是可能忘记一些历史与多变。您只需要启用mercurial.ini文件或.hgrc文件的转换扩展名。

    [extensions]
    hgext.convert= 
    

    现在您可以使用convert extension to“clone”only从指定的修订开始的变更集。

    hg convert --config convert.hg.startrev=[wheretostart] path_to_full_history_repo path_to_new_repo
    

    请注意,这与hg clone的操作不同。这就是为什么源存储库必须是本地存储库的原因。例如,如果我们在文件夹MyProject中有一个存储库,并且我们希望忘记在修订版100之前所做的所有更改。我们可以使用以下命令:

    hg convert --config convert.hg.startrev=[100] MyProject MyShrinkedProject
    

    如果要在“中央服务器”上使用这个缩小的存储库,请记住在继续工作之前,要注意每个人都要克隆它。存储库不再彼此兼容。