汞命令获取文件内容而无需切换分支

时间:2018-09-17 10:46:57

标签: mercurial branch

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

步骤:

  • 运行草龟工作台

  • 在历史记录中查找具有所需版本的更改集(可以在任何分支中)

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

  • 选择“保存在修订版...”,然后告诉它将文件放置在何处。

  • 文件通常会被命名为filename@abcd1234.ext,这样您就不会将其与当前版本混淆。