Version control 如何返回到DARC中的标记?

Version control 如何返回到DARC中的标记?,version-control,darcs,vcs-checkout,Version Control,Darcs,Vcs Checkout,我想签出当前darcs repo(其工作目录)中较旧的标记状态 我不想克隆到另一个目录(因为我在当前目录中设置了一个阴谋沙箱) 我已经将所有新的更改推送到远程回购,所以我并不在乎这些更改是否在本地完全丢失。(但仍然:我不能保存补丁,但仍然签出旧状态吗?) 如何做到这一点 尝试 我试过了 darcs obliterate --from-tag=TAG 但这并不是我想要的结果。这也抹掉了标签 因此,为了拿回标签,我必须darcs拉并选择行中的第一个补丁(标签),然后按d跳过所有其他补丁 嗯,dar

我想签出当前darcs repo(其工作目录)中较旧的标记状态

我不想克隆到另一个目录(因为我在当前目录中设置了一个阴谋沙箱)

我已经将所有新的更改推送到远程回购,所以我并不在乎这些更改是否在本地完全丢失。(但仍然:我不能保存补丁,但仍然签出旧状态吗?)

如何做到这一点

尝试 我试过了

darcs obliterate --from-tag=TAG
但这并不是我想要的结果。这也抹掉了标签

因此,为了拿回标签,我必须
darcs拉
并选择行中的第一个补丁(标签),然后按
d
跳过所有其他补丁

嗯,
darcs deletate--from tag=tag
确实以交互方式询问要删除什么,所以理论上我可以离开tag,但它从最近的补丁开始询问,所以我不得不查看许多最近的补丁,在我将我离开标记的决定通知
darcs
之前。

您可以使用
--reverse
选项来
删除
,首先询问标记,然后说
n
,然后
a
取消所有剩余部分

事实上,
deletate-fromtag
不一定会选择标记未包含的所有内容,因为其行为取决于补丁和标记当前在存储库中的特定顺序

因此,在第一次删除之后,我会在没有
--from标记的情况下再做一次,也没有
--reverse
。这次将首先提供标签(因为它之后的所有内容都将消失),您可以对其说
n
,然后对其他所有内容说
a
——只有标签未覆盖的补丁才会在标签被拒绝后提供

在一个相对不太可能的情况下,包括另一个标签在内的许多补丁都被此捕获,您可能需要重复此操作,直到它停止提供更多补丁为止

关于如何在移回旧状态时保留修补程序的主题,使用
删除
-o
-o
选项可以将删除的修补程序保存到磁盘。然后,您可以稍后使用“DARC应用”来恢复它们。但是,您确实需要小心,不要修改本地存储库中留下的任何修补程序,或者删除其他修补程序而不保留它们,因为这可能会使保存的修补程序不适用