Hg команда для получения содержимого файла без переключения ветки - PullRequest
0 голосов
/ 17 сентября 2018

В HG, есть ли какая-нибудь команда, позволяющая получить содержимое файла из другой ветви без переключения / извлечения в конкретную ветку?

Ответы [ 3 ]

0 голосов
/ 18 сентября 2018

Если вы используете TortoiseHG, вы можете использовать для этого команду «сохранить при редактировании».

Шаги:

  • Запустить Tortoise Workbench

  • Найти набор изменений в истории, в котором есть нужная вам ревизия файла (может быть в любой ветке)

    • Произнесите его набор изменений # abcd1234
  • Щелкните правой кнопкой мыши по конкретному файлу в списке файлов для этого набора изменений

  • Выберите «Сохранить при ревизии ...» и укажите, куда поместить файл.

  • Файл обычно называется filename@abcd1234.ext, чтобы его не перепутать с текущей версией.

0 голосов
/ 18 сентября 2018

Подобно другому ответу , вы можете использовать команду 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

0 голосов
/ 17 сентября 2018

Используйте подкоманду 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
...