【问题标题】:ClearCase symbolic links not mapped to Windows 7 as such?ClearCase 符号链接没有像这样映射到 Windows 7?
【发布时间】:2013-11-10 03:29:24
【问题描述】:

当我在 Windows 7 中使用 mklink 命令创建符号链接,然后通过 Python 的 os.path.islink() 函数查询该路径名时,该函数正确返回 True。此外,在包含我的链接的目录中调用 dir 命令时,其类型正确显示为<SYMLINK>

使用符号 ClearCase 链接(通过 cleartool ln -s ... 创建),但是,os.path.islink() 总是返回 False,并且 Window 的 dir 命令将元素显示为普通文件(即没有 @ 987654322@属性)。

这是一个问题,因为我正在编写一个递归下降到目录树的脚本(它可能在也可能不在 ClearCase 控制下),并且为了能够避免无限递归,我需要能够检测目录是实际目录还是只是指向另一个目录的符号链接。同样,我还需要能够处理文件的符号链接,以避免多次处理同一个文件。

还有其他人遇到过这个问题吗?顺便说一下,使用 ClearCase v7.1.2.7。

【问题讨论】:

    标签: python windows clearcase


    【解决方案1】:

    this technote 中所述,ClearCase 链接与 Windows mklink 不同:

    C:\>mklink /D link_name Y:\<vobtag>\dir3 
    symbolic link created for link_name <<===>> Y:\<vobtag>\dir3
    >cd link_name
    >cleartool ls 
    (system crash)
    

    原因

    “重解析点”功能创建了 mklink 生成的链接。重解析点是在 NTFS 上实现的,而不是在 MVFS 本身上实现的

    当您使用快照视图时,通常 NTFS 文件系统存储文件。这就是 mklink 在这种情况下可以正常工作的原因。

    当您使用动态视图时,请求会转到作为目标文件系统的 MVFS,尽管 NTFS 存储视图和 vob。 MVFS 不支持重解析点,并在创建时因参数无效或蓝屏而失败并重新启动系统。

    因此,对于快照或动态视图,您的 python 脚本最好执行cleartool ls,并解析结果以检测 ClearCase 符号链接。

    【讨论】:

    • 感谢您的回答。在您链接到它的技术说明中说“蓝屏问题已被确定为产品缺陷并已在 APAR PM77414 下记录。”然后它继续说“正在解决问题……Rational ClearCase 不支持在动态视图中使用 mklink 的符号链接。”我是否正确地假设这意味着他们不打算解决这个问题?
    • cleartool ls 方法会起作用,但我真的希望脚本尽可能通用。但是,是的,抱怨没有意义……我想我别无选择。不过,我确实担心必须在每个文件/目录上调用 cleartool ls 会大大减慢速度。
    • @MarkusKemp 我明白了。至少只在目录级别调用它(列出所有文件)
    猜你喜欢
    • 2018-11-14
    • 2019-08-26
    • 1970-01-01
    • 2016-09-19
    • 2018-05-04
    • 2012-04-25
    • 2012-12-24
    • 2022-01-21
    • 1970-01-01
    相关资源
    最近更新 更多