【问题标题】:Hg command to get the file content without switching branchhg命令获取文件内容而不切换分支
【发布时间】:2018-09-17 10:46:56
【问题描述】:

在 HG 中,是否有任何命令可以让我从另一个分支获取文件的文件内容,而无需切换/签出到特定分支?

【问题讨论】:

    标签: mercurial branch


    【解决方案1】:

    如果您使用的是 TortoiseHG,您可以使用“保存在修订版”命令来执行此操作。

    步骤:

    • 运行 Tortoise 工作台

    • 在历史记录中找到具有您想要的文件修订的变更集(可以在任何分支中)

      • 说出它的变更集#abcd1234
    • 右键单击该变更集文件列表中的特定文件

    • 选择“在修订时保存...”并告诉它将文件放在哪里。

    • 该文件通常命名为filename@abcd1234.ext,以免您将其与当前版本混淆。

    【讨论】:

      【解决方案2】:

      类似于other answer,您可以使用cat 命令,但方式略有不同:

      hg cat --rev=11204 path/to/file

      这将从版本 #11204 中选择文件,该文件可以是任何分支。

      您可能需要添加--output 开关,让您可以使用任何您想要的文件名和/或位置:

      hg cat --output=C:/new/path/to/file/filename@11204.ext --rev=11204 path/to/file

      【讨论】:

        【解决方案3】:

        cat 子命令与您要查找的提交的修订号一起使用。

        这是一个例子。我用文件file 的内容创建了两个分支,表明它在哪个分支上。然后我使用cat 来检查两个分支上的内容

        % hg init foo
        
        % cd foo
        
        % echo "default branch" > file
        
        % hg add file
        
        % hg ci -m 'default' file
        
        % echo "default 2nd rev" > file
        
        % hg ci -m 'default 2nd rev' file
        
        % hg glog
        @  changeset:   1:305b2b5ccbd9
        |  tag:         tip
        |  user:        dj
        |  date:        Mon Sep 17 14:11:20 2018 -0400
        |  summary:     default 2nd rev
        |
        o  changeset:   0:6d22c68d8abc
           user:        dj
           date:        Mon Sep 17 14:10:56 2018 -0400
           summary:     default
        
        % hg co -r 0
        1 files updated, 0 files merged, 0 files removed, 0 files unresolved
        
        % echo "new branch" > file
        
        % hg branch 'new branch'
        marked working directory as branch new branch
        (branches are permanent and global, did you want a bookmark?)
        
        % hg ci -m 'new branch'
        
        % hg glog
        @  changeset:   2:4c8d2181526c
        |  branch:      new branch
        |  tag:         tip
        |  parent:      0:6d22c68d8abc
        |  user:        dj
        |  date:        Mon Sep 17 14:12:30 2018 -0400
        |  summary:     new branch
        |
        | o  changeset:   1:305b2b5ccbd9
        |/   user:        dj
        |    date:        Mon Sep 17 14:11:20 2018 -0400
        |    summary:     default 2nd rev
        |
        o  changeset:   0:6d22c68d8abc
           user:        dj
           date:        Mon Sep 17 14:10:56 2018 -0400
           summary:     default
        
        % hg branches
        new branch                     2:4c8d2181526c
        default                        1:305b2b5ccbd9
        
        % hg cat -r 2 file
        new branch
        
        % hg cat -r 1 file
        default 2nd rev
        

        【讨论】:

        • 您可以在请求中指定分支名称:hg cat -r "branch('new branch')" file
        猜你喜欢
        • 2012-02-24
        • 2018-09-16
        • 1970-01-01
        • 2011-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-19
        • 1970-01-01
        相关资源
        最近更新 更多