当我立即检查MorphX VCS时,我收到以下消息:
无法在SysVersionControlMorphXRevisionTable(SysVersionControlMorphXRevisionTable)中创建记录。 记录已经存在。
对于已经签出一次的东西,我已经能够通过最新的,然后新的结账/签到来解决这个问题。但是,当谈到添加时,我完全陷入困境。有没有解决这个问题,还是我们已经完全搞砸了我们的VCS?
注意:仅当我们尝试从开发项目签入时才会出现此错误。直接在AOT上签入不会出现此问题。
答案 0 :(得分:3)
只需查看表SysVersionControlMorphXRevisionTable
(如果您无法访问,请在SQL中)并查看重复记录的内容。唯一索引为ItemPath
和Version
。我怀疑你会在这里看到任何东西。
这种方法\Data Dictionary\Tables\SysVersionControlMorphXRevisionTable\Methods\latestVersionNumber
中的调用很可能是一个问题,它正在尝试获取当前的最高修订版本并被\Data Dictionary\Tables\SysVersionControlMorphXRevisionTable\Methods\create
调用。
在create
方法行#48中放置一个断点并查看revision.Version
是什么,在插入之前,检查SQL是否已存在ItemPath
/ Version
在SQL中。
我猜它可能是服务器/客户端缓存问题。要解决此问题,请在Tools>Caches
下刷新所有客户端缓存。如果这还没有解决,无论如何都要做好主意,请复制以下菜单项:
\Menu Items\Action\SysFlushAOD
\Menu Items\Action\SysFlushData
\Menu Items\Action\SysFlushDictionary
\Menu Items\Action\SysFlushReportServer
到新菜单项并更改属性RunOn = Server
。然后运行这些,它将刷新您的服务器缓存。如果仍然无效,请尝试重新启动AOS。
如果这不起作用,您的用户application user cache
文件可能已损坏。关闭您的客户端并删除%LocalAppData%文件夹中的* .auc和* .kti文件(通常为C:\Users\[user]\AppData\Local
)并重新打开您的客户端。
在您正在使用的环境中,您最近是否恢复了另一个数据库的副本?
编辑:现在知道您进行了数据库还原,很有可能重新使用GLOBALGUID
和/或导致缓存问题。 See here for more info about how/why this happens
你应该停止你的AOS并运行这些SQL命令:
UPDATE SYSSQMSETTINGS SET GLOBALGUID = '00000000-0000-0000-0000-000000000000'
DELETE FROM SYSCLIENTSESSIONS
DELETE FROM SYSSERVERSESSIONS
您是否也遇到批量运行问题? (有点相关,但我主要只是对这个问题感到好奇)