Visual Studio 2008与源代码安全:恢复自动签出丢失的数据



我使用的是Visual Source Safe 2005和Visual Studio 2008。

@#$%此源安全。有了像Source Safe这样的程序,@#$%会增加我的数据,谁需要病毒、硬盘故障和其他各种灾难。

我的故事从本周周一重新拍摄我的工作站开始。机器重新成像后,我从Source Safe下载了我正在处理的源代码。周四下午,我注意到,当我处理源代码时,文件是,而不是,在我工作时,这些文件会自动从SourceSafe中检出,但将我的工作保存在磁盘上没有问题。

所以。。。我需要检查一下我的工作。我注意到这些文件(未从SourceSafe检出)不像通常那样是只读的,所以我将它们设置为只读。

我觉得我现在应该在本地备份我的数据,现在我为自己没有这样做而自责,但我做的下一件事是回到Visual Studio继续我的工作,看看我是否可以让程序自动检查出我正在更改的文件。

当我第一次开始编辑一个文件(BigLongCodeFile.cs)时,它会像我所希望的那样自动为我签出该文件。然而,在一瞬间,它显示了一个对话框,解释道:"您的操作导致文件BigLongCodeFile.cs被签出,并且源代码管理的新版本已加载到开发环境中。如有必要,请重新进行更改。"就这样,Visual Studio取消了我自周一以来对该文件所做的所有更改,这对我来说意味着损失了数小时的工作。

它没有提示我是否要这样做,只是向我显示了一个对话框,通知我损坏已经造成。有了这样的开发工具,谁需要病毒来破坏他的工作?

有没有什么方法可以取回我的数据,或者避免这种情况?

错误是将标志设置回只读,当您发现没有从SourceSafe自动签出文件时,没有复制文件会加剧这种情况。除非新副本被写入驱动器上的其他位置(这是不可能的),否则您当前已被冲洗。如果它可能保存在其他地方(注意,我说的是物理保存,而不是逻辑保存(即,你在Windows资源管理器中看到的==逻辑)),你可以使用取消删除实用程序。这是一个很长的机会,但你可以尝试取消删除工具;我不会抱太大希望。

当你发现源代码管理工作不正常,并且你更改了文件时,首先要做的事情之一就是备份你处理过的文件夹。将结构简单地复制到临时位置就足够了。然后解决源代码管理问题,并做好巩固工作的准备。如果你担心其他人可能编辑了文件,有一些工具可以做到这一点。

至于VS为什么没有警告你?该文件被标记为未更改。VS在保存操作(很可能是大小更改)后注意到了一些问题,并警告您出现了错误。

在过去,我曾经被试着用二次猜测软件烧伤,所以我知道痛苦。这就是为什么当您发现一些奇怪的情况时,复制备份是一种很好的做法。这在TFS中问题较小,但我认为它可能只会覆盖一个似乎已签入的文件(只读标志集)。

最新更新