我正在使用Visual Source Safe 6.0d(工作要求),我一直试图破解一个小的shell脚本,以便我可以轻松删除源树或警告我,如果我有文件检出所以我可以确保我不会意外删除工作。除了检查文件本身的只读位之外,有没有办法判断文件是否被检出?
请注意,检查可写文件并不是世界上最糟糕的事情,但似乎VSS在源代码树中生成了几个文件(* .ncb,* .scc,* .sln),而我没有检查过什么都没有。我可以简单地排除文件,但我试图找到更优雅的解决方案。
答案 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对象。