1

我正在使用 Visual Source Safe 6.0d(工作要求),并且我一直在尝试编写一个小 shell 脚本,以便我可以轻松删除源代码树或在我签出文件时警告我,以便我可以制作当然我不会不小心删除工作。除了检查文件本身的只读位之外,还有什么方法可以判断文件是否被签出?

  1. VSS 似乎没有写入任何文件(我在签出文件之前和之后拍摄了目录的快照,列出的文件没有区别)
  2. 我似乎无法通过谷歌搜索找到任何东西。
  3. 我还检查了 vssver.scc 的差异,但没有发现任何东西。

请注意,检查可写文件并不是世界上最糟糕的事情,但似乎 VSS 使源树中的多个文件(*.ncb、*.scc、*.sln)在我没有检查任何内容的情况下可写。我可以简单地排除文件,但我试图找到一个更优雅的解决方案。

4

2 回答 2

3

您可以使用 COM 检查文件是否已签出。查看IVSSItem.IsCheckedOut属性。有关通过 COM 使用 VSS 的更多信息,请参阅:

http://msdn.microsoft.com/en-us/library/4d44xhsd%28VS.80%29.aspx

于 2009-06-22T17:06:04.857 回答
2

也许最强大的技术是询问 SourceSafe 本身检查了哪些内容和/或是否检查了感兴趣的单个文件。虽然我意识到如何在一个小的 shell 脚本中执行此操作并不明显,但我建议为此使用PowerShell

SourceSafe 公开了一个OLE 自动化对象模型(也称为 COM 对象模型),并且 PowerShell 可以与 COM 对象对话。如果您不熟悉这些东西,那么需要学习很多东西,但最终还是值得的。

或者,如果 PowerShell 太陌生,也可以使用 VBScript 来控制 COM 对象。

于 2009-06-22T17:15:42.710 回答