我来自 Visual SourceSafe 背景,所以请耐心等待。 我正在努力实现 TortoiseSVN 范式的转变。 顺便说一下,我有 VisualSVN ,但我没有使用它来创建我现在遇到的这个问题。
他们都有一个共同点就是他们都需要一个自由的帮助消息框来实现“嘿,我即将从位置中剔除大量文件。这是OK?“
我正在处理来自工作和家庭的代码。我是唯一的开发者。
在办公室的工作日结束时,我对我在白天所做的所有更改中进行了 Check In ,呃,Commit
。这很好。
当我回到家时,我想要做的就是相当于VSS中的 Get 。我只想用存储库中更新的文件替换任何本地文件。就这样。我希望没有什么复杂的。
所以我在我的顶级工作文件夹上做了一个Update
(顺便说一句,这个词是方向模糊的)。抱怨说一堆文件有冲突。请注意,我不想合并,我想用存储库中的内容覆盖本地。所以现在我的外壳覆盖图标是,呃,是彩虹的所有颜色。
然后我用谷歌搜索并阅读答案是做Check Out
然后Revert
。
所以我从资源库浏览器中的根文件夹进行了结账,TortoiseSVN继续删除,几乎是我工作目录中的每个文件!它然后说 OK 就像,任务完成了,很棒,这就是你想要的,你打赌!
好的,那么任何人都能以一种对旧的VSS用户有意义的方式解释这个吗?我没有阅读200页的书(也许我的答案是在第176页的第3段),但我确实谷歌并且有很多关于恢复用户意外删除的文件的点击,但没有解释TortoiseSVN的删除行为
要点:
答案 0 :(得分:3)
听起来你可能已经陷入了这样的情况:你的工作副本是弗兰肯斯坦混合的文件目录,这些文件目录早于您使用SVN和“正确的”SVN工作副本。事实上,你必须做一个结帐,然后还原让我觉得奇怪,因为结账将总是给你一个干净的工作副本,没有更改的文件。我怀疑你检查了一个非空的目录,这通常不建议(有些情况下这样做是有意义的,但在这种情况下我认为不是这样)。
我认为您需要做的是检查新目录。然后你应该有一个原始的工作副本,没有任何变化。 checkout目录应该是创建的新目录的名称。我怀疑你已经删除了路径的最后一位,以强制结帐到当前目录。这是一个具体的例子:
http://server/svn/trunk
c:\source
已包含其他项目。在资源管理器中右键单击并选择SVN Checkout。 c:\source\trunk
。如果您要输入c:\source
,则SVN会尝试将现有内容与结帐时的内容合并,这很少是您想要的。一旦你有一个原始的工作副本,你不应该得到你所看到的惊喜。当您更新时,您只会遇到冲突,其他人已经更改了文件,而不是您自己更改文件。对正确工作副本的更新永远不会删除您创建的任何文件,除非您已将文件手动复制到已独立添加到SVN的工作副本中。