1

目前我的团队在 perforce 中遇到了一些问题,他们通常在 gvim 中更改文件并关闭文件而不对该文件进行 p4 编辑,因此,当他们提交时,有时某些更改不会反映在服务器上,这会导致严重失败同样的,你能告诉我当我发出命令时的方式吗!在 vim 中,系统将检查它是否在 perforce 服务器中,然后自动执行 p4 编辑,然后编辑文件。

谢谢

4

4 回答 4

1

我将 vim 与 Perforce 一起使用,并且对perforce vim 插件非常满意。每次我编辑文件时插件都会提示我(我的 P4 工作区中的文件默认为只读)并询问我是否要签出 ( p4 edit) 文件。因此,我接触的每个文件都会出现在我的默认更改列表中。

当然,插件可以做更多的事情。p4 submit, p4 add, 随便。

于 2016-05-16T14:58:34.737 回答
0

试试这个, https://vimawesome.com/plugin/vim-perforce-love-story

当您尝试使用 (w!) 编辑和保存文件时,它会弹出一个提示,询问是否在 vim 中进行 p4 编辑。

示例::w!文件是只读的。尝试在 Perforce 中打开?[是]是,(否)否:

于 2020-04-14T16:08:11.347 回答
0

您也可以考虑使用“p4 reconcile”而不是“p4 edit”。

此命令将在工作区中查找已更改的文件,并打开它们进行移动、添加、编辑、删除等操作。

更多信息位于此处:

https://www.perforce.com/perforce/doc.current/manuals/cmdref/p4_reconcile.html

希望这会有所帮助,珍!

于 2016-05-17T12:56:48.000 回答
0

这就是我所做的:

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 等工作的人员进行调整。

希望有帮助。

于 2019-12-17T17:46:23.677 回答