我正在使用Visual Source Safe 6.0d(工作要求),我一直试图破解一个小的shell脚本,以便我可以轻松删除源树或警告我,如果我有文件检出所以我可以确保我不会意外删除工作。除了检查文件本身的只读位之外,有没有办法判断文件是否被检出?

  1. VSS似乎没有写任何文件(我在签出文件之前和之后拍摄了dir的快照,并且列出的文件没有差异)
  2. 我似乎无法通过谷歌搜索找到任何东西。
  3. 我还检查了vssver.scc的差异,但没有找到任何内容。
  4. 请注意,检查可写文件并不是世界上最糟糕的事情,但似乎VSS在源代码树中生成了几个文件(* .ncb,* .scc,* .sln),而我没有检查过什么都没有。我可以简单地排除文件,但我正试图找到更优雅的解决方案。

有帮助吗?

解决方案

也许最强大的技术是询问SourceSafe本身检出的内容和/或是否签出了感兴趣的单个文件。虽然我意识到如何在一个小shell脚本中做到这一点并不明显,但我主张使用 PowerShell

SourceSafe公开 OLE自动化对象模型(也称为COM对象模型),PowerShell可以与COM对象通信。如果你不熟悉这些东西,那要学习很多,但最终还是值得的。

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

其他提示

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top