Perforce中止提交

时间:2014-08-07 14:47:42

标签: perforce

我尝试使用p4提交提交一些文件,并收到以下错误:

//path/somefile.c - must resolve //path/somefile.c#146
Merges still pending -- use 'resolve' to merge files.

而不是resolve,我只想中止提交并返回submit之前的状态。我想在重新尝试submit之前编辑更改列表。

对于perforce来说,我是一个完整的新手,是否有一个命令会做我正在尝试的事情?

3 个答案:

答案 0 :(得分:1)

让我按照以下方式重述问题:运行ObjectCache cache = MemoryCache.Default; ... var foos = cache.Get("key") as List<Foo>; if (foos == null) { foos = repo.GetFoos(); cache.Add("key", foos, new CacheItemPolicy { AbsoluteExpiration = DateTimeOffset.Now.AddHours(1) }); } // do something with `foos` 并且失败后,即使您删除了待处理的更改列表,您实际上也不会处于与提交之前相同的状态,因为p4 submit通过使用所有文件的最新版本自动设置p4 submit,隐式执行 p4 sync 类操作。但是,这可能不是您准备解决的所需修订版本。在p4 resolve发生之前,还需要其他一些东西回到该状态。

在此状态下,尝试运行p4 sync撤消解决方案准备工作也不会做任何事情。

我找到了一个肯定会在某些情况下有效的解决方案,虽然它不是非常干净的方法而且非常手动,所以如果可能的话,我会欢迎更好的解决方案,使用内置的perforce命令:

对于需要等待解决的每个文件,运行p4 sync#rev(恢复打开以进行编辑的文件,但保留文件在工作区中的更改),然后对文件运行p4 revert -k以打开它再次编辑。此时,它将不再设置为再次使用最新版本进行解析。

答案 1 :(得分:0)

您可以还原(撤消)尚未提交的更改。如果您在命令行上,则运行命令,例如:

p4 revert //path/somefile.c

如果您使用的是P4V,请在待处理的更改列表中选择该文件,右键单击并选择“还原”#。

如果已提交更改,您可以在必要时退出更改列表或回滚已提交的集成。以下参考资料提供了更多详细信息。

参考

http://answers.perforce.com/articles/KB_Article/Reverting-Unchanged-Files

http://www.perforce.com/perforce/doc.current/manuals/cmdref/p4_revert.html

http://answers.perforce.com/articles/KB_Article/Backing-Out-Submitted-Changelists

http://answers.perforce.com/articles/KB_Article/How-To-Rollback-An-Integration

答案 2 :(得分:-1)

在我的情况下,右键单击更改列表,如果Unchanged似乎可以恢复,则恢复。

在从源分支到目标分支的合并/集成之后,我看到了这个问题。