p4的一些常用指令(文件上传过程中merge出现的一些问题)

简介: 文件上传的库有两种情况:情况一:库上不存在的文件 p4 add filename:未添加到库中的文件,首次上传的库,需要用该指令 p4 submit -d “对filename e

文件上传的库有两种情况:情况一:库上不存在的文件

p4 add filename:未添加到库中的文件,首次上传的库,需要用该指令

p4 submit -d “对filename edit or add 的说明文字”

情况二:库上已存在的文件

p4 edit filename:编辑文件,文件sync时也不会更新这些 p4 edit 的filename

p4 submit -d “对filename edit or add 的说明文字”

对于情况二

p4 submit -d “对filename edit or add 的说明文字” 执行后可能会出现让revert 或者resolve的提示,并给出 p4 submit -c number(CL)

执行 p4 resolve filename

会出现以下三种情况:

情况一:

Diff chunks: 3 yours + 3 theirs + 0 both + 0 conflicting

Accept(a) Edit(e) Diff(d) Merge(m) Skips(s) Help(?) am:

对于这种情况,由于yours 和 theirs 均有新增 且新增内容不同且不冲突,直接am(便是接受并merge)此时可以merge成功,会把yours整合到theirs 的版本上,换言之,与之前你本地的filename相比,merge后的filename会新增yours和theirs两部分内容。

情况二:

Diff chunks: 3 yours + 3 theirs + 2 both + 0 conflicting

Accept(a) Edit(e) Diff(d) Merge(m) Skips(s) Help(?) am:

对于这种情况,由于yours 和 theirs 均有新增,可是新增内容有相同的,但是新增内容不冲突,直接am(便是接受并merge),此时会把both的内容也merge上,也就是会重复。此时可以通过与备份的filename 比对,删除重复内容的一份,保留一份。

情况三:

Diff chunks: 3 yours + 3 theirs + 0 both + 1 conflicting

Accept(a) Edit(e) Diff(d) Merge(m) Skips(s) Help(?) am:

对于这种情况,由于yours 和 theirs 均有新增且新增内容有冲突,此时直接am可能会造成代码conflicting的部分都merge上,这种情况,安全起见,am:后边输入 d 比较两文件的不同,直接修改本地的filename,冲突的部分需要和上传此filename的人员确认来修改。

另外:p4 opened:查看有哪些 p4 edit filename

p4v:用于打开库文件页面,查看库上的文件