我尝试使用p4提交提交一些文件,并收到以下错误:
//path/somefile.c - must resolve //path/somefile.c#146
Merges still pending -- use 'resolve' to merge files.
而不是resolve
,我只想中止提交并返回submit
之前的状态。我想在重新尝试submit
之前编辑更改列表。
对于perforce来说,我是一个完整的新手,是否有一个命令会做我正在尝试的事情?
答案 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似乎可以恢复,则恢复。
在从源分支到目标分支的合并/集成之后,我看到了这个问题。