假设我有两台具有Mercurial存储库的计算机,其中包含某些修订版的本地副本,并且没有对该本地副本进行未提交的更改。现在我在一台机器上进行一些本地更改而不提交。
是否有可能在第二台机器上拉/复制这些未提交的更改?即使第二台机器在不提交的情况下对其本地副本应用相同的更改?
注意:我对单个命令或单行程感兴趣,只能在第二台机器上执行。
答案 0 :(得分:3)
您可以ALTER TABLE tablename
ALTER COLUMN colname TYPE bytea USING colname::bytea
;
将所有更改导出到第一台计算机上的文件中,然后hg diff --git > changes.patch
将这些更改导出到第二台计算机上。
答案 1 :(得分:2)
Mercurial不会为你做这件事;你只能推送和拉出存储库中的内容。但是,如果您通过不受限制的ssh访问上游计算机,则可以使用它来运行远程hg diff
并将结果应用为补丁。例如(在“第二台机器上”):
% hg paths
default = ssh://example.com/path/to/repo
% ssh example.com hg -R path/to/repo diff > uncommitted.patch
% hg import --no-commit uncommitted.patch
详细说明:如果您需要能够查看未提交的文件,您可以在远程计算机上安排ssh shell访问,并按上述方式进行操作。如果远程机器的所有者不希望你这样做,那么,mercurial不会帮助你四处寻找。
答案 2 :(得分:1)
单行版@Alexis' answer:
ssh example.com hg -R path/to/repo diff | hg import --no-commit -
感谢@ReimerBehrends建议-
而不是/proc/self/fd/0
。