我需要确定文件/文件夹是否在特定的源代码控制之下。最简单的方法是找到一些隐藏文件夹。(这并不能保证部分文件受源代码控制,但有一定的可能性表示使用了此源代码控制)
SVN、GIT 非常简单,因为它们有隐藏文件夹。
但是我找不到 Perforce 和 ClearCase 相同的东西。是否有任何通用方法来理解在这些特殊情况下使用什么 VSC?
Perforce 不会乱扔驱动器,而是将信息保存在服务器上。此外,文件可以以不同的结构映射,并与非受控文件混合,因此您无法通过查看文件本身来确定。
但是,您可以简单地询问 Perforce。例如,在 CLI 中:
P4 fstat FILENAME
如果文件受源代码控制,将为您提供有关文件的信息。
如果您需要为 Perforce 编写脚本,有一个选项 (-s) 可以让事情变得更容易(因为 p4 的退出代码并不表示 Perforce 命令的成功或失败)。因此,对于类似 bourne 的 shell,这样的东西应该可以工作:
if p4 -s fstat FILENAME | grep 'exit: 0' >/dev/null 2>&1 ; then
echo "Perforce knows this file"
else
echo "Perforce don't care"
fi
对于 ClearCase,您会在(快照)视图的根目录中 找到一个名为的隐藏文件。view.dat
如果文件位于 M:\ (Windows) 或 /view/vobs (Unix) 下,则无需查找隐藏文件或目录:您知道它是动态视图。
另一种方法是在文件的父目录中执行:
cleartool lsview -cview.
如果该目录在视图中,则该命令将返回其名称。
同样,您可以运行类似p4 reconcile
or的命令p4 status
,并且它不会返回错误,您可能在 Perforce 工作区中。