在我的仓库,可以说我有这样的:颠覆 - 检出父目录
Animal
Dog
Beagle
Hound
...
可以说,我检查了狗到工作目录,我意识到,哎呦,我真想检出动物。
我可以删除我的工作副本,狗目录和结帐动物,但是我可以在不删除并重新检出的情况下这样做吗?
如果我的狗的工作副本有作为父文件夹的动物,并且我没有删除狗的结帐动物,我得到类似“颠覆无法添加目录版本相同的名称已经存在”。
我也在用乌龟。谢谢。
在我的仓库,可以说我有这样的:颠覆 - 检出父目录
Animal
Dog
Beagle
Hound
...
可以说,我检查了狗到工作目录,我意识到,哎呦,我真想检出动物。
我可以删除我的工作副本,狗目录和结帐动物,但是我可以在不删除并重新检出的情况下这样做吗?
如果我的狗的工作副本有作为父文件夹的动物,并且我没有删除狗的结帐动物,我得到类似“颠覆无法添加目录版本相同的名称已经存在”。
我也在用乌龟。谢谢。
这是不可能的。
最简单的方法是删除您的工作副本并执行Animal
的新结帐。
如果在Dog
你想保留任何的变化,移动Dog
到一个临时位置,结账Animal
然后复制Dog
回Animal
目录。
您正在寻找svn switch
,它会更新您的工作副本以反映新路径。不过,修改后的文件不会被触及。在TortoiseSVN中,右键单击并从上下文菜单中选择“切换...”。
svn switch
更常见的用例是在源自同一点的分支之间切换,以便您可以对相同的代码拥有不同的视图。但是您可以在存储库中的任意路径之间切换。
我发现避免从svn服务器下载我的磁盘上已有的内容,然后使用--depth empty
完成更新或检出。所以像这样的东西:svn co --depth empty Animal ; cd Animal ; svn update --depth empty Dog
无论如何,这个想法是得到Dog
作为目录Animal/.svn/entries
。
这种“--depth empty
”不断从网上下载的实际内容SVN,但SVN确实让子目录(在这种情况下,Dog
)和svn并把在Animal/.svn/entries
的Dog
子目录中的条目。
然后用您已拥有的副本替换Dog子目录。
你可以通过打开Dog
某个文件中的某个文件并在Animal
目录中执行svn update
来检查它的工作原理。重击的文件应该从svn服务器上下载。
不起作用:那么你得到'更新: 跳过‘树干’ - 的封闭工作拷贝发现 在修订13370. 总结的冲突:“” 跳过路径:1'这样做的时候'SVN up'在'动物'中。 – 2018-01-26 09:56:45
过了很久,所以我不确定问题是什么。 SVN应该制作动物和狗的目录,不是吗?所以应该没有阻碍工作副本。 另一个想法是,SVN从'13开始已经改变了,所以这个技巧不再适用。 – 2018-01-27 10:53:37
是的,你可以映射父目录。
为此,您只需从“狗”(子)目录中删除.svn
目录,然后在父目录上执行SVN Update
。它会使现有文件为Versioned
副本,并将从SVN服务器下载Dog
目录的增量内容。
请注意:您应该具有精确的目录结构作为SVN目录结构。
删除并重新检出时出现了什么问题?如果您已经做出更改,请提交,然后重新开始。 – kajaco 2009-08-30 14:28:41
这不是问题。这就是我所做的,它的工作。只是想知道我是否有更好的方法,或者有更正确的方法来做到这一点。 – Steve 2009-08-30 14:39:31