在我的存储库中,假设我有这个:
Animal
Dog
Beagle
Hound
...
让我们说我检查了狗到一个工作目录,我意识到,哎呀,我真的很想结帐动物。
我可以删除我的工作副本,Dog目录和结帐Animal,但是我可以这样做而不删除并再次签出吗?
如果我的Dog的工作副本将Animal作为父文件夹并且我在没有删除Dog的情况下结帐Animal,我会得到类似“subversion无法添加目录版本的同名已存在”的内容。
我也在使用乌龟。感谢。
答案 0 :(得分:4)
这是不可能的。
最简单的方法是删除您的工作副本并对Animal
进行新的结帐。
如果您要对Dog
进行任何更改,请将Dog
移至临时位置,结帐Animal
,然后将Dog
复制回Animal
目录。
答案 1 :(得分:2)
您正在寻找 svn switch
,它会更新您的工作副本以反映新路径。但是,修改后的文件不会被触及。在TortoiseSVN中,右键单击并从上下文菜单中选择“切换...”。
svn switch
更常见的用例是在源自同一点的分支之间切换,以便您可以拥有相同代码的不同视图。但是您可以在存储库中的任意路径之间切换。
答案 2 :(得分:0)
我发现避免从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确实为{{1}添加了一个条目} Dog
中的子目录。
然后将Dog子目录替换为您已有的副本。
您可以通过在Animal/.svn/entries
中的某个位置搜索其中一个文件并在Dog
目录中执行svn update
来检查是否有效。应该从svn服务器中下载受损文件。
答案 3 :(得分:0)
是的,您可以映射父目录。
为此,您只需要从" Dog"删除 $timeout = 5;
while (count($channel->callbacks)) {
try{
$channel->wait(null, false , $timeout);
}catch(\PhpAmqpLib\Exception\AMQPTimeoutException $e){
$channel->close();
$connection->close();
exit;
}
}
目录。 (子)目录并在父目录上执行.svn
。它将使现有文件为SVN Update
副本,并从SVN服务器下载Versioned
目录的增量内容。
请注意:您应该具有精确的目录结构作为SVN目录结构。