Client: 你上面配置的工作空间 Update: 2010/01/19 20:38:36 Access: 2010/01/21 02:57:38 Owner: 你的用户名 Host: linux Description:
Created by ygxu. Root: /home/hammer
Options: noallwrite noclobber nocompress unlocked nomodtime normdir SubmitOptions: submitunchanged LineEnd: local View: ….
//XMS/SS7_Mainline/... //Arthur_Xms/XMS/SS7_Mainline/... ….
两个地方需要修改:
a . Root . 这个决定你的代码会放在什么地方,如上,我的是 /home/hammer
b. View. 这个决定你需要取哪些代码下来,因为一般不会把全部代码取下来,在 Linux 上我们一般只需要 XMS 的 SS7_Mainline, 所以把其他的删掉,修改成上面这个样子
注意事项,一定要保证空间足够,建议先删掉原来的 SS7_Mainline ,使用 Shrink 工具回收空间之后再取代码。
好了,使用 p4 sync 命令吧,就可以继续工作了! 关于 p4 的使用命令,文档如下:
http://www.perforce.com/perforce/technical.html
更详细的命令格式参考 http://www.perforce.com/perforce/products/p4.html p4客户端下载 http://www.perforce.com/perforce/downloads/index.html
************************************************************************************************************************* 快速上手perforce
perforce是什么?参考http://www.perforce.com [概念]
先说说概念吧,一般来说版本控制软件都会分client和server,server负责做一些管理代码和文档仓库,控制各个用户的权限,记录版本升级历史之类的事情,client使用某种客户端连入server来完成代码、文档的修改、提交等工作,perforce也不例外。在server端perforce做得很精简,没有太多的依赖,一个p4d搞定,配置起来也很简单,它的主要任务就是管理一个文件仓库depot。在client端有user和workspace两个概念,user顾名思义就是在server上登记的一个用户,每个user可以拥有零个或者多个workspace,甚至也可以switch到别人的workspace上去,只要有权限。简单的说workspace是depot到本地的一个映射,例如这样写 //depot/foo/... //myspace/bar/...就把depot里面foo目录下面所有东西映射到本地bar目录里面去了,myspace是和特定的workspace相关的,在设置workspace的时候可以设置它的
绝对路径。
[连接之前的配置]
首先我们需要一个用户,假设已存在一个用户test,没有密码。 $P4CONFIG=p4conf.conf; export P4CONFIG windows下使用
p4 set P4CONFIG=p4conf.conf
这个命令设置一个环境变量P4CONFIG,文件名可以自己定义,里面可以存放客户端的配置。在UNIX系统中配置信息都可以写道环境变量里,windows下可以都写到注册表里去,不过我更倾向于在某一个目录下面建立一个配置文件,这样可以很方便的切换不同的workspace。然后我们就可以开始编辑这个p4conf.conf配置文件,格式很简单都是 setting=value 形式的。 建立一个workspace目录,在里面新建一个p4conf.conf文件,内容如下: P4PORT=192.168.0.1:1666 P4USER=test P4CLIENT=test-client
这是一个最简单的配置文件,P4PORT指名了服务器的ip和端口,ip也可以用计算机名代替,例如
P4PORT=p4server:1666
如果留空 P4PORT=1666 这样代表默认连接本地的server,如同 P4PORT=127.0.0.1:1666一样。
P4USER是用户名,P4CLIENT是当前是用的workspace名字,这个名字可以任意取,仅仅是一个标识。
这时候就可以cd到这个目录运行一下 $p4 info
看看输出是什么,如果显示了如下内容 User name: test Client name: test-client Client host: computername Client unknown.
Current directory: /home/test/workspace Client address: 127.0.0.1:1508 Server address: 192.168.0.1:1666 Server root: .
Server date: 2006/07/26 00:28:12 +0800 China Standard Time Server version: P4D/NTX86/2006.1/102189 (2006/06/27) Server license: none
就表示成功连上服务器了,如果出现像这样的错误,那就要检查一下P4PORT有没有设置正确
Perforce client error:
Connect to server failed; check $P4PORT. TCP connect to 1666 failed.
connect: 1666: WSAECONNREFUSED
到这儿,最基本的client配置已经完成,很简单吧:-) 在配置文件里还可以存放一些其他的设置,例如
P4EDITOR指定在编辑的时候默认使用这个vim编辑器,P4DIFF指定了比较文件的时候使用的工具,
P4PASSWD当用户需要密码的时候可以提供一个默认密码,其他还有一些可以参考官方文档 P4 User's Guide [连接之后的配置]
之前的所有设置都是保存在环境变量,配置文件或者注册表里面的,这仅仅定义了一个客户端的行为,很大一部分事情例如追踪用户的修改、打开、提交的文件之类都是由服务器记录下来的,所以现在我们需要通过一些命令来配置一下服务器那头的用户信息。 $p4 user
这个命令的结果是p4使用一个默认的编辑器打开一个临时文件,文件中保存着用户的一些信息,例如用户名,Email,FullName之类,用户可以自己修改其中某些设置,保存以后它会自动提交到服务器上更新用户设置。这个过程中使用的编辑器可以在环境变量或者配置文件中指定(P4EDITOR)。 $p4 client
和上面一样,这个命令编辑一个client的配置文件。Root对应于workspace在本机上的绝对路径,Options定义了一些client的属性,例如unlocked值允许其他的用户switch到你的工作空间,其他的定义可以参考官方文档。View的配置比较重要,它定义了服务器上面的文件到workspace的映射。例如 //depot/... //test-client/...
左右分别代表源地址和目的地址,中间以空格隔开,它的意思是将服务器depot里面所有文件映射到我的工作目录(在这之前用Root参数指定的绝对路径)。映射可以有多行:
//depot/src/... //test-client/local-src/... //depot/doc/... //test-client/local-doc/...
这样就将代码和文档分别映射到本地,而且不一定要和服务器上使用相同的名字。在这之中也许会有需要排出的一些文件或者目录,这时只需要在映射前面加上一个减号: -//depot/doc/file1.txt //test-client/local-doc/file1.txt
这样就排除了一个文件。在这个过程中要留意出现冲突,如下: //depot/src/... //test-client/src/... //depot/doc/... //test-client/src/...
将服务器上两个目录都映射到本地同一个目录。
上面的过程中使用了一种通配符“...”它递归的匹配这个目录以及子目录下面的所有文件,另一种上面没有使用的 “*” 匹配单个目录下的文件,例如 //test-client/src/*.c 匹配 src目录下面所有以 .c 作为扩展名的文件。
上面说了,如果把服务器上的两个目录都映射到本地通一个目录会产生冲突,后者会把前者覆盖,但如果这样写:
//depot/src/... //test-client/local-src/... +//depot/doc/... //test-client/local-src/...
就会产生不同的效果,两个目录里面的文件都会出现在local-src这个目录中,不过如果仍然有重名的文件则后者会把前者覆盖。
至此,client的配置基本上完成,可以$p4 sync 一下把服务器上的东西抓下来看看:-) 另外,如果要删除这个cient的话很简单$p4 client -d test-client 就可以了 [文件管理]
配置了这么半天,现在开始步入正题,文件的管理才是我们使用perforce的核心工作。简单的说,文件操作可以分成三类:往depot里面添加文件,修改并提交文件和删除文件。 在这之前最好保证workspace里面文件和服务器上的最新版本同步,使用命令: $p4 sync ...
如果需要同步到某一个版本,在后面添上 #1 数字代表版本号;如果需要强制同步所有文件,可以加上 -f 参数。关于sync的具体用法可以用命令 $p4 help sync
btw: 可以试试看$p4 help help
添加文件: $p4 add *.txt