如何在 mercurial 中交换我的主存储库位置
How do I swap my master repository location in mercurial
我有一个本地 Mercurial 存储库。我用位于 google 驱动器文件夹中的单独文件夹中的克隆对其进行备份。我会不时地进入 google 驱动器回购并执行 hg pull,然后 google 驱动器负责备份它。但我想交换这些责任,这样我的本地就是 google 驱动器中那个的克隆。换句话说,今天我这样做:
来自我的本地 c:\source 文件夹:
- 做事
- 汞提交
- cd c:\googledrive\source
- 汞拉
我宁愿:
来自我的本地 c:\source 文件夹:
- 做事
- 汞提交
- 汞推
我不知道要在我的 hgrc 文件中做什么才能做到这一点。有人可以帮忙吗?
这是我的 c:\source hgrc:
的内容
# Generated by TortoiseHg settings dialog
[tortoisehg]
summarylen = 80
engmsg = True
editor = notepad
tabwidth = 2
forcerepotab = False
monitorrepo = localonly
[ui]
username = *****
这是 google 驱动器
中克隆的内容
[paths]
default = c:\source\SwissArmyKnife
你的问题揭示了一个很有启发性的误解。当有人说 Mercurial 是一个 分布式 版本控制系统 (DVCS) 时,这意味着有 no ‘master’ 存储库。
当您键入 hg push <repo>
或 hg pull <repo>
时,Mercurial 会将当前存储库中的变更集与 <repo>
中的变更集进行比较,并推送或拉取变更集以创建此变更集和远程变更集一贯的。 <repo>
可以用 URL(即 ssh://...
或 http://...
)表示,或者用 .hg/hgrc
中命名的 shorthand 表示:因此在你的情况下你可以添加
[paths]
gdrive = c:\googledrive\source
这意味着您可以写 hg push gdrive
或 hg pull gdrive
并且 Mercurial 会知道您的意思。您可以在此处列出多个路径。
然而,有一条“神奇”的道路。如果您有路径 default
那么如果您 不 指定 <repo>
.
则 Mercurial 将使用该路径
因此(最后),如果您将 c:\source folder
中的 .hg/hgrc
调整为包含
[paths]
default = c:\googledrive\source
然后在该目录中 plain hg push
将与该驱动器同步变更集。
当您克隆存储库 (hg clone
) 时,Mercurial 通常会向您的 .hg/hgrc
添加一个 default = ...
,它指示您从中克隆存储库的位置。鉴于该默认行为,很自然地将该存储库视为“主”存储库,但从根本上说它没有什么特别之处。
我有一个本地 Mercurial 存储库。我用位于 google 驱动器文件夹中的单独文件夹中的克隆对其进行备份。我会不时地进入 google 驱动器回购并执行 hg pull,然后 google 驱动器负责备份它。但我想交换这些责任,这样我的本地就是 google 驱动器中那个的克隆。换句话说,今天我这样做:
来自我的本地 c:\source 文件夹:
- 做事
- 汞提交
- cd c:\googledrive\source
- 汞拉
我宁愿:
来自我的本地 c:\source 文件夹:
- 做事
- 汞提交
- 汞推
我不知道要在我的 hgrc 文件中做什么才能做到这一点。有人可以帮忙吗? 这是我的 c:\source hgrc:
的内容# Generated by TortoiseHg settings dialog
[tortoisehg]
summarylen = 80
engmsg = True
editor = notepad
tabwidth = 2
forcerepotab = False
monitorrepo = localonly
[ui]
username = *****
这是 google 驱动器
中克隆的内容[paths]
default = c:\source\SwissArmyKnife
你的问题揭示了一个很有启发性的误解。当有人说 Mercurial 是一个 分布式 版本控制系统 (DVCS) 时,这意味着有 no ‘master’ 存储库。
当您键入 hg push <repo>
或 hg pull <repo>
时,Mercurial 会将当前存储库中的变更集与 <repo>
中的变更集进行比较,并推送或拉取变更集以创建此变更集和远程变更集一贯的。 <repo>
可以用 URL(即 ssh://...
或 http://...
)表示,或者用 .hg/hgrc
中命名的 shorthand 表示:因此在你的情况下你可以添加
[paths]
gdrive = c:\googledrive\source
这意味着您可以写 hg push gdrive
或 hg pull gdrive
并且 Mercurial 会知道您的意思。您可以在此处列出多个路径。
然而,有一条“神奇”的道路。如果您有路径 default
那么如果您 不 指定 <repo>
.
因此(最后),如果您将 c:\source folder
中的 .hg/hgrc
调整为包含
[paths]
default = c:\googledrive\source
然后在该目录中 plain hg push
将与该驱动器同步变更集。
当您克隆存储库 (hg clone
) 时,Mercurial 通常会向您的 .hg/hgrc
添加一个 default = ...
,它指示您从中克隆存储库的位置。鉴于该默认行为,很自然地将该存储库视为“主”存储库,但从根本上说它没有什么特别之处。