thg drag_move 是做什么的?它与 hg add 和 hg remove 有何不同?
What does thg drag_move do? How is it different from hg add and hg remove?
作为 TortoiseHG 的用户,我一直想知道 thg drag_move
命令如何模仿(或实现)"HG Move versioned item(s) here..." 上下文菜单条目背后的功能。
通过thg -v help drag_move
获得的帮助条目给出:
thg drag_move SOURCE... DEST
move the selected files to the desired directory
据我了解,它必须在幕后执行以下序列(或类似序列):
hg forget SOURCE
mv SOURCE DEST
hg add DEST
但如果我手动执行此操作(在 TortoiseHG 之外),它(自然地)不会将 DEST 与 SOURCE 相关联,而是将它们视为独立的、不相关的更改。
如果我使用 GUI 或 thg drag_move
命令,它会保持这些条目的历史相同,至少在 TortoiseHG 中,当我在移动后查看 DEST 的历史时,我仍然可以看到 SOURCE 的历史。
这是 Mercurial 的 TortoiseHG 扩展还是有 hg
选项来实现相同的 "natively"?
TLDR:您可以使用 hg move OLD NEW
实现与 thg drag_move
相同的功能。
Thg 在执行 drag_move 时在后台使用 hg move
(有关详细信息,请参阅 run.py and quickop.py 来源)。
Hg move 是在 Mercurial 中重命名或移动文件的正确方法,因为它正在跟踪操作,正如他的帮助消息 (hg help mv) 中所说:
rename files; equivalent of copy + remove
Mark dest as copies of sources; mark sources for deletion. If dest is a
directory, copies are put in that directory. If dest is a file, there can
only be one source.
作为 TortoiseHG 的用户,我一直想知道 thg drag_move
命令如何模仿(或实现)"HG Move versioned item(s) here..." 上下文菜单条目背后的功能。
通过thg -v help drag_move
获得的帮助条目给出:
thg drag_move SOURCE... DEST
move the selected files to the desired directory
据我了解,它必须在幕后执行以下序列(或类似序列):
hg forget SOURCE
mv SOURCE DEST
hg add DEST
但如果我手动执行此操作(在 TortoiseHG 之外),它(自然地)不会将 DEST 与 SOURCE 相关联,而是将它们视为独立的、不相关的更改。
如果我使用 GUI 或 thg drag_move
命令,它会保持这些条目的历史相同,至少在 TortoiseHG 中,当我在移动后查看 DEST 的历史时,我仍然可以看到 SOURCE 的历史。
这是 Mercurial 的 TortoiseHG 扩展还是有 hg
选项来实现相同的 "natively"?
TLDR:您可以使用 hg move OLD NEW
实现与 thg drag_move
相同的功能。
Thg 在执行 drag_move 时在后台使用 hg move
(有关详细信息,请参阅 run.py and quickop.py 来源)。
Hg move 是在 Mercurial 中重命名或移动文件的正确方法,因为它正在跟踪操作,正如他的帮助消息 (hg help mv) 中所说:
rename files; equivalent of copy + remove
Mark dest as copies of sources; mark sources for deletion. If dest is a
directory, copies are put in that directory. If dest is a file, there can
only be one source.