TortoiseSVN切换分支-一些文件仍停留在先前的分支

3
在Windows上使用TortoiseSVN切换分支时,有时会出现一些文件和/或文件夹仍停留在以前的分支中。这似乎没有一致的模式。它不是每次都发生,也不会发生在相同的文件上。所以通常只有当旧文件与新文件不再配合工作时才会发现问题。
因此,我想要以下两种情况之一:
1. 一种能够始终避免这种情况发生的切换分支方式; 2. 如果不可能实现第一种情况,列出目录的所有内容以及每个文件和文件夹所在的分支的某种方法。

你正在切换分支时,工作副本中是否有未提交的更改? - khmarbaise
可能是因为这些未提交的文件并非最终会出现不同步的原因。似乎是随机文件,不一定是你最近正在工作的文件。通常情况下,我只能重复切换,或重新检出有问题的文件/文件夹。 - duncan
2个回答

1

根据Tortoise的文档,这是预期的行为:

Switch 的工作方式与 Update 相同,它永远不会丢弃您的本地更改。当您进行 Switch 时,任何尚未提交的工作副本中所做的更改都将被合并。如果您不希望发生这种情况,则必须在切换之前提交更改或将工作副本还原到已提交的修订版本(通常是 HEAD)。


不,我本地更改的文件并没有失去同步。似乎是任意一个文件会出现这种情况。而且不仅仅是本地文件和存储库内不同,实际上它们还在错误的分支中。比如,我将整个目录从Branch 1切换到Branch 2。然后,偶尔会发现一些文件仍然在Branch 1中。 - duncan
1
所以你有文件存在于分支1和分支2,但它们是不同的。然后当你从分支1切换到分支2时,文件的版本是分支1的副本,而不是被分支2的更改覆盖? - Dave Konopka
基本上这似乎就是正在发生的事情。 - duncan
我的理解是,在Branch 1中的新附加文件实际上成为了Branch 2中的工作副本,因为Branch 2对它们一无所知。除非您通过svn delete命令删除文件,否则switch或update命令不会从您的工作副本中删除它们。 - Dave Konopka

0
如果您有一个干净的工作副本(没有更改),您不应该遇到这个问题。
您可以执行“还原”后跟“切换”。但是,您将失去对工作副本所做的任何更改。
或者,您可以提交您的更改,然后再进行“切换”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接