目前我的团队在 perforce 中遇到了一些问题,他们通常在 gvim 中更改文件并关闭文件而不对该文件进行 p4 编辑,因此,当他们提交时,有时某些更改不会反映在服务器上,这会导致严重失败同样的,你能告诉我当我发出命令时的方式吗!在 vim 中,系统将检查它是否在 perforce 服务器中,然后自动执行 p4 编辑,然后编辑文件。
谢谢
目前我的团队在 perforce 中遇到了一些问题,他们通常在 gvim 中更改文件并关闭文件而不对该文件进行 p4 编辑,因此,当他们提交时,有时某些更改不会反映在服务器上,这会导致严重失败同样的,你能告诉我当我发出命令时的方式吗!在 vim 中,系统将检查它是否在 perforce 服务器中,然后自动执行 p4 编辑,然后编辑文件。
谢谢
我将 vim 与 Perforce 一起使用,并且对perforce vim 插件非常满意。每次我编辑文件时插件都会提示我(我的 P4 工作区中的文件默认为只读)并询问我是否要签出 ( p4 edit
) 文件。因此,我接触的每个文件都会出现在我的默认更改列表中。
当然,插件可以做更多的事情。p4 submit
, p4 add
, 随便。
试试这个, https://vimawesome.com/plugin/vim-perforce-love-story
当您尝试使用 (w!) 编辑和保存文件时,它会弹出一个提示,询问是否在 vim 中进行 p4 编辑。
示例::w!文件是只读的。尝试在 Perforce 中打开?[是]是,(否)否:
您也可以考虑使用“p4 reconcile”而不是“p4 edit”。
此命令将在工作区中查找已更改的文件,并打开它们进行移动、添加、编辑、删除等操作。
更多信息位于此处:
https://www.perforce.com/perforce/doc.current/manuals/cmdref/p4_reconcile.html
希望这会有所帮助,珍!
这就是我所做的:
function P4Checkout()
call system("p4 edit " . expand("%:p"))
if v:shell_error == 0
echom "File " . expand("%:p") . " opened for edit"
set noreadonly
endif
endfunction
augroup p4
autocmd!
autocmd FileChangedRO * call P4Checkout()
autocmd BufWritePre * :if &readonly | call P4Checkout()
augroup END
每当第一次修改只读文件(因此无需先保存)或强制将其写入磁盘(使用 w!)时,这都会在 shell 上调用“p4 edit”。
正如您可能看到的,这只有在 p4 edit 可以从当前工作目录的 vim 内部实际运行时才有效。此外,p4 环境可能需要针对从事不同 repos/streams 等工作的人员进行调整。
希望有帮助。