【发布时间】:2013-02-07 05:54:04
【问题描述】:
我需要确定文件/文件夹是否在特定的源代码控制之下。 最简单的方法是找到一些隐藏文件夹。 (这并不能保证部分文件处于源代码控制之下,但有一定的可能性表示使用了此源代码控制)
SVN、GIT 非常简单,因为它们有隐藏文件夹。
但是我找不到 Perforce 和 ClearCase 相同的东西。是否有任何通用方法可以了解在这些特殊情况下使用的 VSC 是什么?
【问题讨论】:
我需要确定文件/文件夹是否在特定的源代码控制之下。 最简单的方法是找到一些隐藏文件夹。 (这并不能保证部分文件处于源代码控制之下,但有一定的可能性表示使用了此源代码控制)
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,您会在(快照)视图的根目录中找到 hidden file named view.dat。
如果文件位于 M:\ (Windows) 或 /view/vobs (Unix) 下,则无需查找隐藏文件或目录:您知道它是动态视图。
另一种方式是在文件的父目录中执行:
cleartool lsview -cview.
如果该目录在视图中,则该命令将返回其名称。
同样,你可以运行p4 reconcile 或p4 status 之类的命令,它不会返回错误,你可能是在 Perforce 工作区中。
【讨论】: