关于CVS在Window2000下的权限管理

遗传算法(GA)全面解析:从生物基础到工程实践 本文全面解析了遗传算法(GA),从其生物基础到工程实践应用。遗传算法模拟自然进化过程,通过选择、交叉和变异等操作在解空间中高效搜索最优解。文章详细介绍了算法的生物学基础(达尔文进化论、孟德尔遗传定律)、基本概念(种群、个体、基因等)和核心思想。重点阐述了遗传算法的数学模型,包括编码机制、适应度函数设计、遗传算子(选择、交叉、变异)以及关键控制参数。最后提供了一个完整的Python实现示例,展示了遗传算法求解函数最大值问题的具体应用。该算法具有群体搜索、概率导向、无需梯度等特点,适用于各类复杂优化问题。 阅读详情

一.   CVS版本问题

CVS分开客户端和服务器端两个程序,服务器端在Windows平台下用CVSNT,目前这个软件基本稳定,但速度和在Linux/Unix下相比,稍微慢些。但对于熟悉Windows应用程序的人来说,由于其操作简单,不失为一个好的选择。

 

注意:客户端和服务器端两方面的版本统一十分重要。本文挡建议使用:

服务器:CVSNT2.0.34  在www.cvsnt.org下载文件cvsnt-2.0.34.exe

客户端:WinCvs13b17.zip 在sourceforge.net/projects/cvsgui/ 下载WinCvs13b17.zip

检查的方法可以在成功连接后,运行:

cvs version

***** CVS exited normally with code 0 *****

Client: Concurrent Versions System (CVSNT) 2.0.34 (client/server)

Server: Concurrent Versions System (CVSNT) 2.0.34 (client/server)

可见这两个软件的版本十分搭配的。如果版本不一致的时候,会发生客户端的命令服务器解释不了的情况。

或者在服务器端,开始->设置->控制面版打开CVSNT的配置文件,也可以看到服务器端的版本(如下图):

在客户端,在DOS状态下,去到C:/Program Files/GNU/WinCvs 1.3/CVSNT(缺省安装的目录)下输入命令cvs version,可以看到客户端的版本信息(如下图):

另外,由于WinCVS1.3自带了一些方便管理的宏(当然,以后也可以参照这些宏自己开发一些),可以在C:/Program Files/GNU/Wincvs 1.3/Macros看到一堆*.py和*.tcl的文件,这些实际上是Python和Tcl的脚本文件,建议也安装上Python和Tcl的Windows版本,以运行这些脚本或者以后自己扩展参照这些宏写些适合自己的工具。

安装了这两个编译程序后,在WinCVS1.3可以方便切换这两种脚本语言(如下图):

二.   CVS的权限管理

CVS有自己的一套权限管理规则,但只能够去到目录的级别。通过CVS的管理员和目录的所有者可以设置相应目录下的权限。在每个CVS的目录下面(服务器端)可以找到一个.owner和.perms的文件,这两个文件分别记录了目录所有者和相应设置的权限。

值得注意的是,CVS的权限管理是十分简单意义上的管理,只能够去到目录的一级,每个目录下面对应有相应的.owner和.perms文件来具体管理当前目录的权限,如果没有这些文件,权限由上一级的目录继承下来。但它设置的权限只限于CVS内部,最终还是要受系统权限来控制的。例如即使对某个目录明明.owner里面已经记录了某个用户了,但在服务器系统端中限定了这个用户对这个目录的读权限,这个用户仍然不可以checkout到这个目录的。

因此,CVS的权限管理比系统的权限管理弱,可以看作是系统权限管理下的一个适当简单的补充。当不想建立太多的系统用户,而想用适当少的系统用户来影射出比较多的CVS用户的时候,CVS的权限管理才起到应有的作用。这时候需要管理员或者目录所有者对每个目录运行cvs chacl来定义用户的权限。

 

三.   CVS在Window2000下版本控制

由于Window2000的权限管理功能已经十分丰富了,如果在不介意系统用户太多的情况下,建议在Windows平台下(指服务器端)使用CVS还是用回系统用户来设置。

适当地建立组,可以利用Window2000丰富的权限管理,将不同的用户通过组的定义来实现权限的交叉管理。

具体的建议实施方案如下:

1.  在系统中建立一个cvsadmin的用户,属于Administrators组。

以后CVS系统的管理工作都通过这个用户来做。

2.  在CVSNT中增加新的Repository,例如是C:/CVSFiles,然后自动会在C:/CVSFiles下面产生一个CVSROOT的目录。

3.  对CVSFiles进行权限控制,设成只可以Administrators组进行完全控制,将原来的everyone缺省设置去掉(如下图):

这样做的好处是由于Window2000缺省权限管理是子目录权限继承于父目录的,如果不将everyone去掉,以后一般用户就比较容易任意添加不是和项目相关的文件进入这个目录了。

4.  在系统中建立一个组和这个项目相关的,例如是Team1。

5.  建立相关的用户,设置成一般用户(users),并归到Team1组。例如user1,user2。

6.  此时看CVSROOT的权限可以看到,由于从父目录继承,它只可以由Administrators组的成员来完全控制。

注意:要将CVSROOT设成对一般用户(这里是将Team1组加入读权限)只读,否则一般CVS用户不可以checkout东西。将CVSROOT下的history文件设成Team1完全控制。

7.  此时user1,user2均可以登录,但是不可以checkout到CVSROOT的内容。

cvs -z9 checkout CVSROOT

***** CVS exited normally with code 1 *****

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

增加内容也不可以:

cvs import -m "test1" Test VENDOR START

***** CVS exited normally with code 1 *****

 

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

因此导入模块的工作还是通过cvsadmin统一来做的。

例如导入了模块test1。

8.  对上面新导入的模块test1,user1和user2还是不可以checkout的,需要利用Window权限管理增加权限给他们。例如他们只可以读出这个模块(如下图):

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

这样做的好处是由于Window2000缺省权限管理是子目录权限继承于父目录的,如果不将everyone去掉,以后一般用户就比较容易任意添加不是和项目相关的文件进入这个目录了。

4.  在系统中建立一个组和这个项目相关的,例如是Team1。

5.  建立相关的用户,设置成一般用户(users),并归到Team1组。例如user1,user2。

6.  此时看CVSROOT的权限可以看到,由于从父目录继承,它只可以由Administrators组的成员来完全控制。

注意:要将CVSROOT设成对一般用户(这里是将Team1组加入读权限)只读,否则一般CVS用户不可以checkout东西。将CVSROOT下的history文件设成Team1完全控制。

7.  此时user1,user2均可以登录,但是不可以checkout到CVSROOT的内容。

cvs -z9 checkout CVSROOT

***** CVS exited normally with code 1 *****

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

增加内容也不可以:

cvs import -m "test1" Test VENDOR START

***** CVS exited normally with code 1 *****

 

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

因此导入模块的工作还是通过cvsadmin统一来做的。

例如导入了模块test1。

8.  对上面新导入的模块test1,user1和user2还是不可以checkout的,需要利用Window权限管理增加权限给他们。例如他们只可以读出这个模块(如下图):

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

二.   CVS的权限管理

CVS有自己的一套权限管理规则,但只能够去到目录的级别。通过CVS的管理员和目录的所有者可以设置相应目录下的权限。在每个CVS的目录下面(服务器端)可以找到一个.owner和.perms的文件,这两个文件分别记录了目录所有者和相应设置的权限。

值得注意的是,CVS的权限管理是十分简单意义上的管理,只能够去到目录的一级,每个目录下面对应有相应的.owner和.perms文件来具体管理当前目录的权限,如果没有这些文件,权限由上一级的目录继承下来。但它设置的权限只限于CVS内部,最终还是要受系统权限来控制的。例如即使对某个目录明明.owner里面已经记录了某个用户了,但在服务器系统端中限定了这个用户对这个目录的读权限,这个用户仍然不可以checkout到这个目录的。

因此,CVS的权限管理比系统的权限管理弱,可以看作是系统权限管理下的一个适当简单的补充。当不想建立太多的系统用户,而想用适当少的系统用户来影射出比较多的CVS用户的时候,CVS的权限管理才起到应有的作用。这时候需要管理员或者目录所有者对每个目录运行cvs chacl来定义用户的权限。

 

三.   CVS在Window2000下版本控制

由于Window2000的权限管理功能已经十分丰富了,如果在不介意系统用户太多的情况下,建议在Windows平台下(指服务器端)使用CVS还是用回系统用户来设置。

适当地建立组,可以利用Window2000丰富的权限管理,将不同的用户通过组的定义来实现权限的交叉管理。

具体的建议实施方案如下:

1.  在系统中建立一个cvsadmin的用户,属于Administrators组。

以后CVS系统的管理工作都通过这个用户来做。

2.  在CVSNT中增加新的Repository,例如是C:/CVSFiles,然后自动会在C:/CVSFiles下面产生一个CVSROOT的目录。

3.  对CVSFiles进行权限控制,设成只可以Administrators组进行完全控制,将原来的everyone缺省设置去掉(如下图):

这样做的好处是由于Window2000缺省权限管理是子目录权限继承于父目录的,如果不将everyone去掉,以后一般用户就比较容易任意添加不是和项目相关的文件进入这个目录了。

4.  在系统中建立一个组和这个项目相关的,例如是Team1。

5.  建立相关的用户,设置成一般用户(users),并归到Team1组。例如user1,user2。

6.  此时看CVSROOT的权限可以看到,由于从父目录继承,它只可以由Administrators组的成员来完全控制。

注意:要将CVSROOT设成对一般用户(这里是将Team1组加入读权限)只读,否则一般CVS用户不可以checkout东西。将CVSROOT下的history文件设成Team1完全控制。

7.  此时user1,user2均可以登录,但是不可以checkout到CVSROOT的内容。

cvs -z9 checkout CVSROOT

***** CVS exited normally with code 1 *****

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

增加内容也不可以:

cvs import -m "test1" Test VENDOR START

***** CVS exited normally with code 1 *****

 

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

因此导入模块的工作还是通过cvsadmin统一来做的。

例如导入了模块test1。

8.  对上面新导入的模块test1,user1和user2还是不可以checkout的,需要利用Window权限管理增加权限给他们。例如他们只可以读出这个模块(如下图):

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

这样做的好处是由于Window2000缺省权限管理是子目录权限继承于父目录的,如果不将everyone去掉,以后一般用户就比较容易任意添加不是和项目相关的文件进入这个目录了。

4.  在系统中建立一个组和这个项目相关的,例如是Team1。

5.  建立相关的用户,设置成一般用户(users),并归到Team1组。例如user1,user2。

6.  此时看CVSROOT的权限可以看到,由于从父目录继承,它只可以由Administrators组的成员来完全控制。

注意:要将CVSROOT设成对一般用户(这里是将Team1组加入读权限)只读,否则一般CVS用户不可以checkout东西。将CVSROOT下的history文件设成Team1完全控制。

7.  此时user1,user2均可以登录,但是不可以checkout到CVSROOT的内容。

cvs -z9 checkout CVSROOT

***** CVS exited normally with code 1 *****

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

增加内容也不可以:

cvs import -m "test1" Test VENDOR START

***** CVS exited normally with code 1 *****

 

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

因此导入模块的工作还是通过cvsadmin统一来做的。

例如导入了模块test1。

8.  对上面新导入的模块test1,user1和user2还是不可以checkout的,需要利用Window权限管理增加权限给他们。例如他们只可以读出这个模块(如下图):

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

另外,由于WinCVS1.3自带了一些方便管理的宏(当然,以后也可以参照这些宏自己开发一些),可以在C:/Program Files/GNU/Wincvs 1.3/Macros看到一堆*.py和*.tcl的文件,这些实际上是Python和Tcl的脚本文件,建议也安装上Python和Tcl的Windows版本,以运行这些脚本或者以后自己扩展参照这些宏写些适合自己的工具。

安装了这两个编译程序后,在WinCVS1.3可以方便切换这两种脚本语言(如下图):

二.   CVS的权限管理

CVS有自己的一套权限管理规则,但只能够去到目录的级别。通过CVS的管理员和目录的所有者可以设置相应目录下的权限。在每个CVS的目录下面(服务器端)可以找到一个.owner和.perms的文件,这两个文件分别记录了目录所有者和相应设置的权限。

值得注意的是,CVS的权限管理是十分简单意义上的管理,只能够去到目录的一级,每个目录下面对应有相应的.owner和.perms文件来具体管理当前目录的权限,如果没有这些文件,权限由上一级的目录继承下来。但它设置的权限只限于CVS内部,最终还是要受系统权限来控制的。例如即使对某个目录明明.owner里面已经记录了某个用户了,但在服务器系统端中限定了这个用户对这个目录的读权限,这个用户仍然不可以checkout到这个目录的。

因此,CVS的权限管理比系统的权限管理弱,可以看作是系统权限管理下的一个适当简单的补充。当不想建立太多的系统用户,而想用适当少的系统用户来影射出比较多的CVS用户的时候,CVS的权限管理才起到应有的作用。这时候需要管理员或者目录所有者对每个目录运行cvs chacl来定义用户的权限。

 

三.   CVS在Window2000下版本控制

由于Window2000的权限管理功能已经十分丰富了,如果在不介意系统用户太多的情况下,建议在Windows平台下(指服务器端)使用CVS还是用回系统用户来设置。

适当地建立组,可以利用Window2000丰富的权限管理,将不同的用户通过组的定义来实现权限的交叉管理。

具体的建议实施方案如下:

1.  在系统中建立一个cvsadmin的用户,属于Administrators组。

以后CVS系统的管理工作都通过这个用户来做。

2.  在CVSNT中增加新的Repository,例如是C:/CVSFiles,然后自动会在C:/CVSFiles下面产生一个CVSROOT的目录。

3.  对CVSFiles进行权限控制,设成只可以Administrators组进行完全控制,将原来的everyone缺省设置去掉(如下图):

这样做的好处是由于Window2000缺省权限管理是子目录权限继承于父目录的,如果不将everyone去掉,以后一般用户就比较容易任意添加不是和项目相关的文件进入这个目录了。

4.  在系统中建立一个组和这个项目相关的,例如是Team1。

5.  建立相关的用户,设置成一般用户(users),并归到Team1组。例如user1,user2。

6.  此时看CVSROOT的权限可以看到,由于从父目录继承,它只可以由Administrators组的成员来完全控制。

注意:要将CVSROOT设成对一般用户(这里是将Team1组加入读权限)只读,否则一般CVS用户不可以checkout东西。将CVSROOT下的history文件设成Team1完全控制。

7.  此时user1,user2均可以登录,但是不可以checkout到CVSROOT的内容。

cvs -z9 checkout CVSROOT

***** CVS exited normally with code 1 *****

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

增加内容也不可以:

cvs import -m "test1" Test VENDOR START

***** CVS exited normally with code 1 *****

 

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

因此导入模块的工作还是通过cvsadmin统一来做的。

例如导入了模块test1。

8.  对上面新导入的模块test1,user1和user2还是不可以checkout的,需要利用Window权限管理增加权限给他们。例如他们只可以读出这个模块(如下图):

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

这样做的好处是由于Window2000缺省权限管理是子目录权限继承于父目录的,如果不将everyone去掉,以后一般用户就比较容易任意添加不是和项目相关的文件进入这个目录了。

4.  在系统中建立一个组和这个项目相关的,例如是Team1。

5.  建立相关的用户,设置成一般用户(users),并归到Team1组。例如user1,user2。

6.  此时看CVSROOT的权限可以看到,由于从父目录继承,它只可以由Administrators组的成员来完全控制。

注意:要将CVSROOT设成对一般用户(这里是将Team1组加入读权限)只读,否则一般CVS用户不可以checkout东西。将CVSROOT下的history文件设成Team1完全控制。

7.  此时user1,user2均可以登录,但是不可以checkout到CVSROOT的内容。

cvs -z9 checkout CVSROOT

***** CVS exited normally with code 1 *****

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

增加内容也不可以:

cvs import -m "test1" Test VENDOR START

***** CVS exited normally with code 1 *****

 

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

因此导入模块的工作还是通过cvsadmin统一来做的。

例如导入了模块test1。

8.  对上面新导入的模块test1,user1和user2还是不可以checkout的,需要利用Window权限管理增加权限给他们。例如他们只可以读出这个模块(如下图):

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

二.   CVS的权限管理

CVS有自己的一套权限管理规则,但只能够去到目录的级别。通过CVS的管理员和目录的所有者可以设置相应目录下的权限。在每个CVS的目录下面(服务器端)可以找到一个.owner和.perms的文件,这两个文件分别记录了目录所有者和相应设置的权限。

值得注意的是,CVS的权限管理是十分简单意义上的管理,只能够去到目录的一级,每个目录下面对应有相应的.owner和.perms文件来具体管理当前目录的权限,如果没有这些文件,权限由上一级的目录继承下来。但它设置的权限只限于CVS内部,最终还是要受系统权限来控制的。例如即使对某个目录明明.owner里面已经记录了某个用户了,但在服务器系统端中限定了这个用户对这个目录的读权限,这个用户仍然不可以checkout到这个目录的。

因此,CVS的权限管理比系统的权限管理弱,可以看作是系统权限管理下的一个适当简单的补充。当不想建立太多的系统用户,而想用适当少的系统用户来影射出比较多的CVS用户的时候,CVS的权限管理才起到应有的作用。这时候需要管理员或者目录所有者对每个目录运行cvs chacl来定义用户的权限。

 

三.   CVS在Window2000下版本控制

由于Window2000的权限管理功能已经十分丰富了,如果在不介意系统用户太多的情况下,建议在Windows平台下(指服务器端)使用CVS还是用回系统用户来设置。

适当地建立组,可以利用Window2000丰富的权限管理,将不同的用户通过组的定义来实现权限的交叉管理。

具体的建议实施方案如下:

1.  在系统中建立一个cvsadmin的用户,属于Administrators组。

以后CVS系统的管理工作都通过这个用户来做。

2.  在CVSNT中增加新的Repository,例如是C:/CVSFiles,然后自动会在C:/CVSFiles下面产生一个CVSROOT的目录。

3.  对CVSFiles进行权限控制,设成只可以Administrators组进行完全控制,将原来的everyone缺省设置去掉(如下图):

这样做的好处是由于Window2000缺省权限管理是子目录权限继承于父目录的,如果不将everyone去掉,以后一般用户就比较容易任意添加不是和项目相关的文件进入这个目录了。

4.  在系统中建立一个组和这个项目相关的,例如是Team1。

5.  建立相关的用户,设置成一般用户(users),并归到Team1组。例如user1,user2。

6.  此时看CVSROOT的权限可以看到,由于从父目录继承,它只可以由Administrators组的成员来完全控制。

注意:要将CVSROOT设成对一般用户(这里是将Team1组加入读权限)只读,否则一般CVS用户不可以checkout东西。将CVSROOT下的history文件设成Team1完全控制。

7.  此时user1,user2均可以登录,但是不可以checkout到CVSROOT的内容。

cvs -z9 checkout CVSROOT

***** CVS exited normally with code 1 *****

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

增加内容也不可以:

cvs import -m "test1" Test VENDOR START

***** CVS exited normally with code 1 *****

 

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

因此导入模块的工作还是通过cvsadmin统一来做的。

例如导入了模块test1。

8.  对上面新导入的模块test1,user1和user2还是不可以checkout的,需要利用Window权限管理增加权限给他们。例如他们只可以读出这个模块(如下图):

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

这样做的好处是由于Window2000缺省权限管理是子目录权限继承于父目录的,如果不将everyone去掉,以后一般用户就比较容易任意添加不是和项目相关的文件进入这个目录了。

4.  在系统中建立一个组和这个项目相关的,例如是Team1。

5.  建立相关的用户,设置成一般用户(users),并归到Team1组。例如user1,user2。

6.  此时看CVSROOT的权限可以看到,由于从父目录继承,它只可以由Administrators组的成员来完全控制。

注意:要将CVSROOT设成对一般用户(这里是将Team1组加入读权限)只读,否则一般CVS用户不可以checkout东西。将CVSROOT下的history文件设成Team1完全控制。

7.  此时user1,user2均可以登录,但是不可以checkout到CVSROOT的内容。

cvs -z9 checkout CVSROOT

***** CVS exited normally with code 1 *****

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

增加内容也不可以:

cvs import -m "test1" Test VENDOR START

***** CVS exited normally with code 1 *****

 

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

因此导入模块的工作还是通过cvsadmin统一来做的。

例如导入了模块test1。

8.  对上面新导入的模块test1,user1和user2还是不可以checkout的,需要利用Window权限管理增加权限给他们。例如他们只可以读出这个模块(如下图):

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

在客户端,在DOS状态下,去到C:/Program Files/GNU/WinCvs 1.3/CVSNT(缺省安装的目录)下输入命令cvs version,可以看到客户端的版本信息(如下图):

另外,由于WinCVS1.3自带了一些方便管理的宏(当然,以后也可以参照这些宏自己开发一些),可以在C:/Program Files/GNU/Wincvs 1.3/Macros看到一堆*.py和*.tcl的文件,这些实际上是Python和Tcl的脚本文件,建议也安装上Python和Tcl的Windows版本,以运行这些脚本或者以后自己扩展参照这些宏写些适合自己的工具。

安装了这两个编译程序后,在WinCVS1.3可以方便切换这两种脚本语言(如下图):

二.   CVS的权限管理

CVS有自己的一套权限管理规则,但只能够去到目录的级别。通过CVS的管理员和目录的所有者可以设置相应目录下的权限。在每个CVS的目录下面(服务器端)可以找到一个.owner和.perms的文件,这两个文件分别记录了目录所有者和相应设置的权限。

值得注意的是,CVS的权限管理是十分简单意义上的管理,只能够去到目录的一级,每个目录下面对应有相应的.owner和.perms文件来具体管理当前目录的权限,如果没有这些文件,权限由上一级的目录继承下来。但它设置的权限只限于CVS内部,最终还是要受系统权限来控制的。例如即使对某个目录明明.owner里面已经记录了某个用户了,但在服务器系统端中限定了这个用户对这个目录的读权限,这个用户仍然不可以checkout到这个目录的。

因此,CVS的权限管理比系统的权限管理弱,可以看作是系统权限管理下的一个适当简单的补充。当不想建立太多的系统用户,而想用适当少的系统用户来影射出比较多的CVS用户的时候,CVS的权限管理才起到应有的作用。这时候需要管理员或者目录所有者对每个目录运行cvs chacl来定义用户的权限。

 

三.   CVS在Window2000下版本控制

由于Window2000的权限管理功能已经十分丰富了,如果在不介意系统用户太多的情况下,建议在Windows平台下(指服务器端)使用CVS还是用回系统用户来设置。

适当地建立组,可以利用Window2000丰富的权限管理,将不同的用户通过组的定义来实现权限的交叉管理。

具体的建议实施方案如下:

1.  在系统中建立一个cvsadmin的用户,属于Administrators组。

以后CVS系统的管理工作都通过这个用户来做。

2.  在CVSNT中增加新的Repository,例如是C:/CVSFiles,然后自动会在C:/CVSFiles下面产生一个CVSROOT的目录。

3.  对CVSFiles进行权限控制,设成只可以Administrators组进行完全控制,将原来的everyone缺省设置去掉(如下图):

这样做的好处是由于Window2000缺省权限管理是子目录权限继承于父目录的,如果不将everyone去掉,以后一般用户就比较容易任意添加不是和项目相关的文件进入这个目录了。

4.  在系统中建立一个组和这个项目相关的,例如是Team1。

5.  建立相关的用户,设置成一般用户(users),并归到Team1组。例如user1,user2。

6.  此时看CVSROOT的权限可以看到,由于从父目录继承,它只可以由Administrators组的成员来完全控制。

注意:要将CVSROOT设成对一般用户(这里是将Team1组加入读权限)只读,否则一般CVS用户不可以checkout东西。将CVSROOT下的history文件设成Team1完全控制。

7.  此时user1,user2均可以登录,但是不可以checkout到CVSROOT的内容。

cvs -z9 checkout CVSROOT

***** CVS exited normally with code 1 *****

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

增加内容也不可以:

cvs import -m "test1" Test VENDOR START

***** CVS exited normally with code 1 *****

 

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

因此导入模块的工作还是通过cvsadmin统一来做的。

例如导入了模块test1。

8.  对上面新导入的模块test1,user1和user2还是不可以checkout的,需要利用Window权限管理增加权限给他们。例如他们只可以读出这个模块(如下图):

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

这样做的好处是由于Window2000缺省权限管理是子目录权限继承于父目录的,如果不将everyone去掉,以后一般用户就比较容易任意添加不是和项目相关的文件进入这个目录了。

4.  在系统中建立一个组和这个项目相关的,例如是Team1。

5.  建立相关的用户,设置成一般用户(users),并归到Team1组。例如user1,user2。

6.  此时看CVSROOT的权限可以看到,由于从父目录继承,它只可以由Administrators组的成员来完全控制。

注意:要将CVSROOT设成对一般用户(这里是将Team1组加入读权限)只读,否则一般CVS用户不可以checkout东西。将CVSROOT下的history文件设成Team1完全控制。

7.  此时user1,user2均可以登录,但是不可以checkout到CVSROOT的内容。

cvs -z9 checkout CVSROOT

***** CVS exited normally with code 1 *****

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

增加内容也不可以:

cvs import -m "test1" Test VENDOR START

***** CVS exited normally with code 1 *****

 

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

因此导入模块的工作还是通过cvsadmin统一来做的。

例如导入了模块test1。

8.  对上面新导入的模块test1,user1和user2还是不可以checkout的,需要利用Window权限管理增加权限给他们。例如他们只可以读出这个模块(如下图):

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

二.   CVS的权限管理

CVS有自己的一套权限管理规则,但只能够去到目录的级别。通过CVS的管理员和目录的所有者可以设置相应目录下的权限。在每个CVS的目录下面(服务器端)可以找到一个.owner和.perms的文件,这两个文件分别记录了目录所有者和相应设置的权限。

值得注意的是,CVS的权限管理是十分简单意义上的管理,只能够去到目录的一级,每个目录下面对应有相应的.owner和.perms文件来具体管理当前目录的权限,如果没有这些文件,权限由上一级的目录继承下来。但它设置的权限只限于CVS内部,最终还是要受系统权限来控制的。例如即使对某个目录明明.owner里面已经记录了某个用户了,但在服务器系统端中限定了这个用户对这个目录的读权限,这个用户仍然不可以checkout到这个目录的。

因此,CVS的权限管理比系统的权限管理弱,可以看作是系统权限管理下的一个适当简单的补充。当不想建立太多的系统用户,而想用适当少的系统用户来影射出比较多的CVS用户的时候,CVS的权限管理才起到应有的作用。这时候需要管理员或者目录所有者对每个目录运行cvs chacl来定义用户的权限。

 

三.   CVS在Window2000下版本控制

由于Window2000的权限管理功能已经十分丰富了,如果在不介意系统用户太多的情况下,建议在Windows平台下(指服务器端)使用CVS还是用回系统用户来设置。

适当地建立组,可以利用Window2000丰富的权限管理,将不同的用户通过组的定义来实现权限的交叉管理。

具体的建议实施方案如下:

1.  在系统中建立一个cvsadmin的用户,属于Administrators组。

以后CVS系统的管理工作都通过这个用户来做。

2.  在CVSNT中增加新的Repository,例如是C:/CVSFiles,然后自动会在C:/CVSFiles下面产生一个CVSROOT的目录。

3.  对CVSFiles进行权限控制,设成只可以Administrators组进行完全控制,将原来的everyone缺省设置去掉(如下图):

这样做的好处是由于Window2000缺省权限管理是子目录权限继承于父目录的,如果不将everyone去掉,以后一般用户就比较容易任意添加不是和项目相关的文件进入这个目录了。

4.  在系统中建立一个组和这个项目相关的,例如是Team1。

5.  建立相关的用户,设置成一般用户(users),并归到Team1组。例如user1,user2。

6.  此时看CVSROOT的权限可以看到,由于从父目录继承,它只可以由Administrators组的成员来完全控制。

注意:要将CVSROOT设成对一般用户(这里是将Team1组加入读权限)只读,否则一般CVS用户不可以checkout东西。将CVSROOT下的history文件设成Team1完全控制。

7.  此时user1,user2均可以登录,但是不可以checkout到CVSROOT的内容。

cvs -z9 checkout CVSROOT

***** CVS exited normally with code 1 *****

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

增加内容也不可以:

cvs import -m "test1" Test VENDOR START

***** CVS exited normally with code 1 *****

 

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

因此导入模块的工作还是通过cvsadmin统一来做的。

例如导入了模块test1。

8.  对上面新导入的模块test1,user1和user2还是不可以checkout的,需要利用Window权限管理增加权限给他们。例如他们只可以读出这个模块(如下图):

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

这样做的好处是由于Window2000缺省权限管理是子目录权限继承于父目录的,如果不将everyone去掉,以后一般用户就比较容易任意添加不是和项目相关的文件进入这个目录了。

4.  在系统中建立一个组和这个项目相关的,例如是Team1。

5.  建立相关的用户,设置成一般用户(users),并归到Team1组。例如user1,user2。

6.  此时看CVSROOT的权限可以看到,由于从父目录继承,它只可以由Administrators组的成员来完全控制。

注意:要将CVSROOT设成对一般用户(这里是将Team1组加入读权限)只读,否则一般CVS用户不可以checkout东西。将CVSROOT下的history文件设成Team1完全控制。

7.  此时user1,user2均可以登录,但是不可以checkout到CVSROOT的内容。

cvs -z9 checkout CVSROOT

***** CVS exited normally with code 1 *****

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

增加内容也不可以:

cvs import -m "test1" Test VENDOR START

***** CVS exited normally with code 1 *****

 

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

因此导入模块的工作还是通过cvsadmin统一来做的。

例如导入了模块test1。

8.  对上面新导入的模块test1,user1和user2还是不可以checkout的,需要利用Window权限管理增加权限给他们。例如他们只可以读出这个模块(如下图):

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

另外,由于WinCVS1.3自带了一些方便管理的宏(当然,以后也可以参照这些宏自己开发一些),可以在C:/Program Files/GNU/Wincvs 1.3/Macros看到一堆*.py和*.tcl的文件,这些实际上是Python和Tcl的脚本文件,建议也安装上Python和Tcl的Windows版本,以运行这些脚本或者以后自己扩展参照这些宏写些适合自己的工具。

安装了这两个编译程序后,在WinCVS1.3可以方便切换这两种脚本语言(如下图):

二.   CVS的权限管理

CVS有自己的一套权限管理规则,但只能够去到目录的级别。通过CVS的管理员和目录的所有者可以设置相应目录下的权限。在每个CVS的目录下面(服务器端)可以找到一个.owner和.perms的文件,这两个文件分别记录了目录所有者和相应设置的权限。

值得注意的是,CVS的权限管理是十分简单意义上的管理,只能够去到目录的一级,每个目录下面对应有相应的.owner和.perms文件来具体管理当前目录的权限,如果没有这些文件,权限由上一级的目录继承下来。但它设置的权限只限于CVS内部,最终还是要受系统权限来控制的。例如即使对某个目录明明.owner里面已经记录了某个用户了,但在服务器系统端中限定了这个用户对这个目录的读权限,这个用户仍然不可以checkout到这个目录的。

因此,CVS的权限管理比系统的权限管理弱,可以看作是系统权限管理下的一个适当简单的补充。当不想建立太多的系统用户,而想用适当少的系统用户来影射出比较多的CVS用户的时候,CVS的权限管理才起到应有的作用。这时候需要管理员或者目录所有者对每个目录运行cvs chacl来定义用户的权限。

 

三.   CVS在Window2000下版本控制

由于Window2000的权限管理功能已经十分丰富了,如果在不介意系统用户太多的情况下,建议在Windows平台下(指服务器端)使用CVS还是用回系统用户来设置。

适当地建立组,可以利用Window2000丰富的权限管理,将不同的用户通过组的定义来实现权限的交叉管理。

具体的建议实施方案如下:

1.  在系统中建立一个cvsadmin的用户,属于Administrators组。

以后CVS系统的管理工作都通过这个用户来做。

2.  在CVSNT中增加新的Repository,例如是C:/CVSFiles,然后自动会在C:/CVSFiles下面产生一个CVSROOT的目录。

3.  对CVSFiles进行权限控制,设成只可以Administrators组进行完全控制,将原来的everyone缺省设置去掉(如下图):

这样做的好处是由于Window2000缺省权限管理是子目录权限继承于父目录的,如果不将everyone去掉,以后一般用户就比较容易任意添加不是和项目相关的文件进入这个目录了。

4.  在系统中建立一个组和这个项目相关的,例如是Team1。

5.  建立相关的用户,设置成一般用户(users),并归到Team1组。例如user1,user2。

6.  此时看CVSROOT的权限可以看到,由于从父目录继承,它只可以由Administrators组的成员来完全控制。

注意:要将CVSROOT设成对一般用户(这里是将Team1组加入读权限)只读,否则一般CVS用户不可以checkout东西。将CVSROOT下的history文件设成Team1完全控制。

7.  此时user1,user2均可以登录,但是不可以checkout到CVSROOT的内容。

cvs -z9 checkout CVSROOT

***** CVS exited normally with code 1 *****

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

增加内容也不可以:

cvs import -m "test1" Test VENDOR START

***** CVS exited normally with code 1 *****

 

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

因此导入模块的工作还是通过cvsadmin统一来做的。

例如导入了模块test1。

8.  对上面新导入的模块test1,user1和user2还是不可以checkout的,需要利用Window权限管理增加权限给他们。例如他们只可以读出这个模块(如下图):

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

这样做的好处是由于Window2000缺省权限管理是子目录权限继承于父目录的,如果不将everyone去掉,以后一般用户就比较容易任意添加不是和项目相关的文件进入这个目录了。

4.  在系统中建立一个组和这个项目相关的,例如是Team1。

5.  建立相关的用户,设置成一般用户(users),并归到Team1组。例如user1,user2。

6.  此时看CVSROOT的权限可以看到,由于从父目录继承,它只可以由Administrators组的成员来完全控制。

注意:要将CVSROOT设成对一般用户(这里是将Team1组加入读权限)只读,否则一般CVS用户不可以checkout东西。将CVSROOT下的history文件设成Team1完全控制。

7.  此时user1,user2均可以登录,但是不可以checkout到CVSROOT的内容。

cvs -z9 checkout CVSROOT

***** CVS exited normally with code 1 *****

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

增加内容也不可以:

cvs import -m "test1" Test VENDOR START

***** CVS exited normally with code 1 *****

 

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

因此导入模块的工作还是通过cvsadmin统一来做的。

例如导入了模块test1。

8.  对上面新导入的模块test1,user1和user2还是不可以checkout的,需要利用Window权限管理增加权限给他们。例如他们只可以读出这个模块(如下图):

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

二.   CVS的权限管理

CVS有自己的一套权限管理规则,但只能够去到目录的级别。通过CVS的管理员和目录的所有者可以设置相应目录下的权限。在每个CVS的目录下面(服务器端)可以找到一个.owner和.perms的文件,这两个文件分别记录了目录所有者和相应设置的权限。

值得注意的是,CVS的权限管理是十分简单意义上的管理,只能够去到目录的一级,每个目录下面对应有相应的.owner和.perms文件来具体管理当前目录的权限,如果没有这些文件,权限由上一级的目录继承下来。但它设置的权限只限于CVS内部,最终还是要受系统权限来控制的。例如即使对某个目录明明.owner里面已经记录了某个用户了,但在服务器系统端中限定了这个用户对这个目录的读权限,这个用户仍然不可以checkout到这个目录的。

因此,CVS的权限管理比系统的权限管理弱,可以看作是系统权限管理下的一个适当简单的补充。当不想建立太多的系统用户,而想用适当少的系统用户来影射出比较多的CVS用户的时候,CVS的权限管理才起到应有的作用。这时候需要管理员或者目录所有者对每个目录运行cvs chacl来定义用户的权限。

 

三.   CVS在Window2000下版本控制

由于Window2000的权限管理功能已经十分丰富了,如果在不介意系统用户太多的情况下,建议在Windows平台下(指服务器端)使用CVS还是用回系统用户来设置。

适当地建立组,可以利用Window2000丰富的权限管理,将不同的用户通过组的定义来实现权限的交叉管理。

具体的建议实施方案如下:

1.  在系统中建立一个cvsadmin的用户,属于Administrators组。

以后CVS系统的管理工作都通过这个用户来做。

2.  在CVSNT中增加新的Repository,例如是C:/CVSFiles,然后自动会在C:/CVSFiles下面产生一个CVSROOT的目录。

3.  对CVSFiles进行权限控制,设成只可以Administrators组进行完全控制,将原来的everyone缺省设置去掉(如下图):

这样做的好处是由于Window2000缺省权限管理是子目录权限继承于父目录的,如果不将everyone去掉,以后一般用户就比较容易任意添加不是和项目相关的文件进入这个目录了。

4.  在系统中建立一个组和这个项目相关的,例如是Team1。

5.  建立相关的用户,设置成一般用户(users),并归到Team1组。例如user1,user2。

6.  此时看CVSROOT的权限可以看到,由于从父目录继承,它只可以由Administrators组的成员来完全控制。

注意:要将CVSROOT设成对一般用户(这里是将Team1组加入读权限)只读,否则一般CVS用户不可以checkout东西。将CVSROOT下的history文件设成Team1完全控制。

7.  此时user1,user2均可以登录,但是不可以checkout到CVSROOT的内容。

cvs -z9 checkout CVSROOT

***** CVS exited normally with code 1 *****

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

增加内容也不可以:

cvs import -m "test1" Test VENDOR START

***** CVS exited normally with code 1 *****

 

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

因此导入模块的工作还是通过cvsadmin统一来做的。

例如导入了模块test1。

8.  对上面新导入的模块test1,user1和user2还是不可以checkout的,需要利用Window权限管理增加权限给他们。例如他们只可以读出这个模块(如下图):

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

这样做的好处是由于Window2000缺省权限管理是子目录权限继承于父目录的,如果不将everyone去掉,以后一般用户就比较容易任意添加不是和项目相关的文件进入这个目录了。

4.  在系统中建立一个组和这个项目相关的,例如是Team1。

5.  建立相关的用户,设置成一般用户(users),并归到Team1组。例如user1,user2。

6.  此时看CVSROOT的权限可以看到,由于从父目录继承,它只可以由Administrators组的成员来完全控制。

注意:要将CVSROOT设成对一般用户(这里是将Team1组加入读权限)只读,否则一般CVS用户不可以checkout东西。将CVSROOT下的history文件设成Team1完全控制。

7.  此时user1,user2均可以登录,但是不可以checkout到CVSROOT的内容。

cvs -z9 checkout CVSROOT

***** CVS exited normally with code 1 *****

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

增加内容也不可以:

cvs import -m "test1" Test VENDOR START

***** CVS exited normally with code 1 *****

 

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

因此导入模块的工作还是通过cvsadmin统一来做的。

例如导入了模块test1。

8.  对上面新导入的模块test1,user1和user2还是不可以checkout的,需要利用Window权限管理增加权限给他们。例如他们只可以读出这个模块(如下图):

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

此时user1和user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

/---test1    (team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir (user2可以修改)

    |       Test11.txt

    |

    /---test2dir (user1可以修改)

test2dir1.txt

MoCap 动作捕捉开源库教程 数据通过 tf2 和支持不同 QoS 设置的 /poses 主题直接发布。该软件包最初是为 Crazyswarm 开发的,用于跟踪多达 50 个飞行机器人。 阅读详情

相关推荐

从零搭建基于OpenSpec的现代化UI自动化测试框架实战指南

UI自动化测试是软件质量保障的关键环节,其核心在于通过脚本模拟用户操作,对Web应用界面进行功能验证。其原理在于利用浏览器驱动工具(如Selenium、Playwright)提供的API,实现对页面元素的定位、交互与断言。一个设计良好的自动化框架能显著提升测试脚本的可维护性、可读性和执行稳定性,从而在持续集成、回归测试等场景中发挥巨大价值。本文聚焦于如何构建一个现代化的UI测试框架,通过整合OpenSpec架构规范、Pytest测试引擎与Playwright浏览器自动化工具,形成清晰的页面对象模型(POM)

weixin_28836989的博客 286

秋叶ComfyUI整合包:一键部署AI绘画工作流,解决环境配置难题

在AI绘画和生成式AI领域,Stable Diffusion作为开源的扩散模型,为图像生成提供了强大的技术基础。其核心原理是通过学习数据分布,对随机噪声进行逐步去噪,最终生成高质量的图像。这项技术的价值在于极大地降低了专业图像创作的门槛,并推动了AIGC(人工智能生成内容)在艺术设计、游戏开发、广告营销等场景的广泛应用。然而,其典型工作流实现工具ComfyUI,在实际部署中常因Python环境、PyTorch版本与CUDA驱动之间的复杂依赖关系而受阻,尤其是面对NVIDIA 30系、40系及未来50系等不同

优快云头条 668

CVS服务器在Windows的安装配置

1、前言: CVS是版本控制的利器,目前在Linux和Windows下都有不同版本;下面针对Windows的LAN环境下使用CVS的经验介绍,一步一步的介绍如何配置和使用CVS的服务器端和客户端。 2、安装版本: 2.1、服务器端(CVSNT) 1. 本文使用的是CVSNT-2.0.4,这是一个比较稳定的版本,不要使用最新的CVSNT-2.1.1,本人在使用中发现有比较严重的Bug。 2. 下载连

grace_gaorh的专栏 1217

AI 小说生成器本地部署完全指南

这篇文章介绍了本地部署AI小说生成器的完整指南,主要面向网文作者、内容创作者和AI爱好者。文章从环境搭建到创作实践,详细讲解了三种主流部署方案:Ollama(推荐新手)、LMStudio(图形界面)和text-generation-webui(高级定制)。内容涵盖硬件需求、系统架构、模型选择、API对接、提示词工程等关键技术环节,并提供了小说创作的特制提示词模板和参数调优建议。文章还讨论了长篇小说管理、多模型协作等进阶技巧,以及版权伦理等法律问题。最后推荐了相关工具资源和社区论坛,帮助读者实现安全、高效、可

珂珂可爱多 2261

深入理解光流法外推雷达回波

背景介绍 鉴于本人实在太过疲惫和劳累,一些简单的便于理解的废话就不在记录,耗费两天时间研究了一下光流法,本帖用于记录学习过程中源码的难点细节。 使用光流预测的核心有两个利用多张连续回波图像(变分)或者相邻两张回波图(交叉相关,LK等)计算出光流场(速度矢量场),之后利用半拉格朗日方法进行外推。 半拉格朗日方法 三时间步半拉格朗日方法,其核心公式如下 但这个有点难理解,但看一维的图就很好理解 它的核心就是迭代求Am(位移矢量),如果理解困难的话,其实质上就是通过未来迭代(猜)出当前时刻的Am找到过去的假设

weixin_44695861的博客 6035

使用CVSNT进行权限控制

  一通过CVS验证模式进行控制(假设系统以Administrator登陆) 1.安装CVSNT。2.设置CVSNT的Repositories到一个具体的目录。3.在Win2000 下设置系统环境变量,确定CVSNT的安装目录在path路径中。4.同时设置Win2000的环境变量CVSROOT到刚才指定的Repositories目录。保存退出。5.打开cmd窗口。输入 cv

wang_xf的Study home 980

OpenHarmony 4.1/5.0 Beta上手:如何用ArkUI在非华为设备上开发你的第一个“鸿蒙”应用

本文详细介绍了如何在非华为设备上使用ArkUI开发OpenHarmony应用,涵盖从设备选型、环境搭建到应用部署的全流程。通过实战案例展示ArkTS语言在开源鸿蒙生态中的应用,帮助开发者突破设备限制,构建跨平台鸿蒙应用。

weixin_33704234的博客 366

TortoiseSVN使用帮助(实例:搭建W…

随着应用软件的开发规模及复杂程度日趋大型化,使得软件开发模式从早期的个人作坊式渐渐转变为团队协作开发方式,在这种团队协作的开发模式,为了管理好开发项目,就离不开版本控制软件,在开发过程中采用版本控制软件,能够完整地保存开发中对应用程序每一个源文件所有的修改记录,充分地利用版本控制软件能够对软件开发进行卓有成效的管理。   常见的版本控制软件有VSS、CVS和SVN   VSS(Visual Sou

157

9.27华为OD机试真题 新系统 - 均衡调度 (Java/Py/C/C++/Js/Go)

9.26华为OD机试真题 新系统 - 均衡调度 (Java/Py/C/C++/Js/Go)

算法大师! 496

信奥赛C++提高组csp-s之数论基础专题课:从同余到分数模运算1(知识地图:同余、裴蜀定理、扩展欧几里得、乘法逆元、分数模运算)

信奥赛C++提高组csp-s之数论基础专题课:从同余到分数模运算1(知识地图:同余、裴蜀定理、扩展欧几里得、乘法逆元、分数模运算)

王老师青少年编程 791

轻松搭建一个Windows SVN服务器

SVN客户端使用的时候,用的SVN服务器通常为外部,例如Google Code的服务器,不过,做为一个程序开发人员,就算自己一个人写程序,也应该有一个SVN版本控制系统,以便对开发代码进行有效的管理。这里我就介绍一个在Windows环境下简单快速搭建SVN服务器的方法。   通常的SVN服务器是搭建在Linux等系统下,例如用Apache+SVN配置,Linux下的SVN性能会非常好,但配置...

yaoyanzhu的博客 199

手把手教你学simulink(26.8)--控制算法场景示例:基于强化学习的无人机姿态稳定控制系统

首先,我们需要定义无人机的姿态稳定控制环境。环境包括无人机的状态(姿态角、角速度等)和动作(电机转速)。我们还需要定义奖励函数,用于评估控制器的表现。matlab深色版本% 定义环境% 定义状态空间% 12个状态变量% 定义动作空间% 电机转速范围奖励函数用于评估控制器的表现。我们可以根据无人机的姿态误差、角速度误差以及控制输入的变化率来设计奖励函数。具体来说,当无人机的姿态接近设定值时,给予正奖励;当姿态误差较大或控制输入变化剧烈时,给予负奖励。matlab深色版本。

MHD0815的博客 496

搭建Windows SVN服务器及TortoiseSVN使用帮助和下载

搭建Windows SVN服务器:   用的SVN服务器通常为外部,例如Google Code的服务器,不过,做为一个程序开发人员,就算自己一个人写程序,也应该有一个SVN版本控制系统,以便对开发代码进行有效的管理。这里我就介绍一个在Windows环境下简单快速搭建SVN服务器的方法。   通常的SVN服务器是搭建在Linux等系统下,例如用Apache+SVN配置,Linux下的SVN性...

weixin_30883777的博客 106

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SVN版本控制器的安装和配置

SVN版本控制器的安装和配置 文章来源:Subversion中文站 如何快速建立Subversion服务器,并且在项目中使用起来,这是大家最关心的问题,与CVS相比,Subversion有更多的选择,也更加的容易,几个命令就可以建立一套服务器环境,可以使用起来,这里配套有动画教程。 本文是使用Subversion最快速的教程,在最短的时间里帮助您建立起一套...

weixin_30883271的博客 68

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

CVSNT用户管理方案

这是一篇关于cvsnt服务器搭建的文章。转自http://java.mblogger.cn/scottding/posts/175.aspx但是cvs好像不能单独认证,一定要将某个cvs账户指定为某个nt域用户的别名才可以登陆,不知道是不是因为我没搞好。  CVSNT用户管理方案 所有这些操作基于的环境和软件版本:WINDOWS2000 Pro、CVSNT2.0.4、WinCVS1.3.9

HouYing 1331

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

SVN服务器端-------SVN版本控制器的安装和配置

文章来源:Subversion中文站 如何快速建立Subversion服务器,并且在项目中使用起来,这是大家最关心的问题,与CVS相比,Subversion有更多的选择,也更加的容易,几个命令就可以建立一套服务器环境,可以使用起来,这里配套有动画教程。本文是使用Subversion最快速的教程,在最短的时间里帮助您建立起一套可用的服务器环境,只需略加调整就可以应用...

weixin_30779691的博客 74

svn Subversion服务器搭建 说明

如何快速建立Subversion服务器,并且在项目中使用起来,这是大家最关心的问题,与CVS相比,Subversion有更多的选择,也更加的容易,几个命令就可以建立一套服务器环境,可以使用起来,这里配套有动画教程。 本文是使用Subversion最快速的教程,在最短的时间里帮助您建立起一套可用的服务器环境,只需略加调整就可以应用到实际项目当中。 本教程分为以下几个部门,不仅仅是快速入门,

技术笔记 898

VMware Workstation 虚拟机的安装

★想试Linux,不用重新分区,就像安装Office软件一样,让你直接在Windows中尝鲜。  ★可以反复练习Fdisk、PQmagic等危险软件的使用方法而无需担心破坏实际的计算机系统。  ★一台电脑变成三、四台,同时运行多个操作系统不再是天方夜谭,只要删除一个文件夹即可完成操作系统卸载。  ★组建虚拟的局域网,轻松学习网管知识,进行各种网络试验,根本不必购买交换机、路由器以及网线等网络设备。

goodfunman的专栏 1万+

用Eclipse CDT 配置C/C++ 编译环境

当Visual C++长了尾巴,当Borland C++ Builder臃肿不堪,当钱包空空,难道在Windows下再没有我们可以负担的起而又足够优秀的C++ IDE?当然不是。这个世界上还有一种东西叫开源。本文的目的就是告诉你如何依靠开源软件搭建Windows XP下的C++ IDE(虽然搭配Linux OS是更好的选择,但毫无疑问的是,Windows OS至少在易用性上要远好于Linux OS

goodfunman的专栏 1万+

CVS权限设置

不同用户设置不同的访问权限方法                                          DALANG 20040112关于权限管理的操作,我感觉不错的 假设有用户1:lxw ;用户2:zxh有用户1的模块::lxwdir;用户2的模块:zxhdir要求 lxw 只能访问lxwdir;zxh只能访问zxhdir第1步,设置CVS的库配置文件(模块CVSROOT)的访问权限方

goodfunman的专栏 1万+
上一篇: CVSNT用户管理方案
下一篇: CVS权限设置
goodfunman
博客等级 码龄22年 4粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值