【问题标题】:How to detect if folder is under Perforce/ source control如何检测文件夹是否在 Perforce/ 源代码控制下
【发布时间】:2013-02-07 05:54:04
【问题描述】:

我需要确定文件/文件夹是否在特定的源代码控制之下。 最简单的方法是找到一些隐藏文件夹。 (这并不能保证部分文件处于源代码控制之下,但有一定的可能性表示使用了此源代码控制)

SVN、GIT 非常简单,因为它们有隐藏文件夹。

但是我找不到 Perforce 和 ClearCase 相同的东西。是否有任何通用方法可以了解在这些特殊情况下使用的 VSC 是什么?

【问题讨论】:

    标签: perforce clearcase


    【解决方案1】:

    Perforce 不会乱扔驱动器,而是将信息保存在服务器上。此外,文件可以映射为不同的结构,并与非受控文件混合,因此不是您可以通过查看文件本身来确定的。

    但是,您可以简单地询问 Perforce。例如,在 CLI 中:

    P4 fstat FILENAME
    

    如果文件受源代码控制,将为您提供有关文件的信息。

    【讨论】:

      【解决方案2】:

      如果您需要为 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 
      

      【讨论】:

        【解决方案3】:

        对于 ClearCase,您会在(快照)视图的根目录中找到 hidden file named view.dat

        如果文件位于 M:\ (Windows) 或 /view/vobs (Unix) 下,则无需查找隐藏文件或目录:您知道它是动态视图。

        另一种方式是在文件的父目录中执行:

        cleartool lsview -cview.
        

        如果该目录在视图中,则该命令将返回其名称。

        同样,你可以运行p4 reconcilep4 status 之类的命令,它不会返回错误,你可能是在 Perforce 工作区中。

        【讨论】:

        • 感谢您的解释。如果目录不是视图,cleartool 会退出并返回代码吗?
        • @user456305 是的,如果有任何错误,包括目录不在视图中,则退出状态设置为 1。
        猜你喜欢
        • 2010-10-26
        • 1970-01-01
        • 2019-04-29
        • 1970-01-01
        • 2014-08-02
        • 1970-01-01
        • 2011-07-18
        • 1970-01-01
        • 2016-11-23
        相关资源
        最近更新 更多