如何查找签出的文件

时间:2009-06-22 16:54:30

标签: windows powershell com visual-sourcesafe vcs-checkout

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

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

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

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

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