我开始理解在Git和ClearCase之间的存储库同步期间遇到的问题。
我们来看看这个:
$ cd
$ touch foo && chmod 777 foo
$ ls -al foo
-rwxrwxrwx+ 1 ch52198 Domain Users 0 Sep 4 15:04 foo
$ cd /vob/view/project/
$ cp ~/foo .
$ ls -al foo
$ -rw-r----- 1 ch52198 Domain Users 0 Sep 4 15:05 foo
$ chmod u+x foo
$ ls -al foo
$ -rw-r----- 1 ch52198 Domain Users 0 Sep 4 15:05 foo
ClearCase做错了什么。它在使用MVFS存储时忽略所有文件权限。
事情变得越来越糟,因为如果在我的本地Git存储库中,我在脚本上设置了可执行标志。我永远无法在我的ClearCase存储库上保留此标志。
我该如何解决这个问题?
我尝试使用cleartol protect -chmod 777 foo
,但我看不到Cygwin的权限更改。
答案 0 :(得分:1)
对于您复制的文件,您需要cleartool protect -chmod
来恢复权限。
同时检查您视图中的umask
。这将决定如何在ClearCase视图中设置与文件关联的mod。
另请参阅“Access control for view-private files in dynamic views”
在Linux和UNIX系统上,视图专用文件的初始所有者,组和保护模式由以下规则确定:
- 的所有者即可。初始所有者是创建文件或目录的进程的用户。
- 的组即可。初始组是创建文件或目录的进程的主要组。
- 保护模式。 视图专用文件的初始保护模式取决于创建文件或目录的用户的umask。 umask是Linux和UNIX系统支持的设置,指定在用户创建文件时未授予某些权限。 (有关详细信息,请参阅Linux或UNIX系统上的umask参考页。)
当用户创建视图专用文件或目录时,Rational ClearCase以一组权限开始,这些权限取决于文件或目录的创建方式。然后,Rational ClearCase将删除用户的umask指定的权限 例如,如果用户的umask是002,则Rational ClearCase会删除其他人的写入权限。