为什么我无法删除 Perforce 上的仓库?

为什么我无法删除 Perforce 上的仓库?

我只是在本地 Perforce 数据库中乱搞,试图弄清楚如何将 Perforce 重置回以前的状态,而无需记录或删除并重新创建数据库文件。

我有一些没有文件的仓库,其中一个名为“沙盒”。我使用p4 depot命令行或 P4Python API(目前我不记得是哪个了)创建了它。

当我输入: p4 depot -d sandbox我得到了这个:

仓库沙箱不为空。要删除仓库,必须删除所有文件修订,并且必须切断来自其他仓库的所有惰性副本引用。使用“p4 obliterate”或“p4 snap”断开来自其他仓库的文件链接,然后使用“p4 obliterate”清除此仓库,然后重试删除。

我试过p4 obliterate -y //sandbox/...,只是说No records to delete.这是可以预料的,因为仓库是空的。无论如何,它不会改变结果p4 depot -d。正如错误消息所暗示的那样,也没有来自其他仓库的连接。

知道发生了什么吗?有没有一种万无一失的方法可以强制删除仓库,而无需完全删除服务器文件?最终,我想从 P4Python 自动执行此操作。

编辑:FWIW,这是消灭操作期间的服务器日志:

2012/04/11 09:30:18 pid 6916 username@machinename 127.0.0.1 [p4/2011.1/NTX86
/370818] 'user-obliterate -y //sandbox/...'
--- lapse .561s
--- rpc msgs/size in+out 0+1/0mb+0mb himarks 64836/64836
--- db.counters
---   pages in+out+cached 2+0+1
---   locks read/write 0/1 rows get+pos+scan put+del 0+0+0 0+0
---   total lock wait+held read/write 0ms+0ms/0ms+436ms
--- db.user
---   pages in+out+cached 2+0+1
---   locks read/write 1/0 rows get+pos+scan put+del 1+0+0 0+0
--- db.group
---   pages in+out+cached 2+0+1
---   locks read/write 1/0 rows get+pos+scan put+del 0+1+1 0+0
--- db.domain
---   pages in+out+cached 3+0+1
---   locks read/write 2/0 rows get+pos+scan put+del 1+2+8 0+0
---   total lock wait+held read/write 0ms+436ms/0ms+0ms
---   max lock wait+held read/write 0ms+436ms/0ms+0ms
--- db.view
---   pages in+out+cached 3+0+1
---   locks read/write 2/0 rows get+pos+scan put+del 0+2+6 0+0
---   total lock wait+held read/write 0ms+436ms/0ms+0ms
---   max lock wait+held read/write 0ms+436ms/0ms+0ms
--- db.integed
---   pages in+out+cached 3+0+2
---   locks read/write 0/1 rows get+pos+scan put+del 0+1+1 0+0
---   total lock wait+held read/write 0ms+0ms/0ms+390ms
--- db.resolve
---   pages in+out+cached 2+0+1
---   locks read/write 0/1 rows get+pos+scan put+del 0+0+0 0+0
---   total lock wait+held read/write 0ms+0ms/0ms+343ms
--- db.have
---   pages in+out+cached 3+0+2
---   locks read/write 0/1 rows get+pos+scan put+del 0+1+1 0+0
---   total lock wait+held read/write 0ms+0ms/0ms+296ms
--- db.label
---   pages in+out+cached 2+0+1
---   locks read/write 0/1 rows get+pos+scan put+del 0+0+0 0+0
---   total lock wait+held read/write 0ms+0ms/0ms+249ms
--- db.locks
---   pages in+out+cached 3+0+2
---   locks read/write 0/1 rows get+pos+scan put+del 0+1+1 0+0
---   total lock wait+held read/write 0ms+0ms/0ms+171ms
--- db.archmap
---   pages in+out+cached 2+0+1
---   locks read/write 1/0 rows get+pos+scan put+del 0+1+1 0+0
--- db.rev
---   pages in+out+cached 4+0+2
---   locks read/write 1/1 rows get+pos+scan put+del 0+2+2 0+0
---   total lock wait+held read/write 0ms+16ms/0ms+171ms
--- db.revcx
---   pages in+out+cached 2+0+1
---   locks read/write 0/1 rows get+pos+scan put+del 0+0+0 0+0
---   total lock wait+held read/write 0ms+0ms/0ms+140ms
--- db.revdx
---   pages in+out+cached 2+0+1
---   locks read/write 0/1 rows get+pos+scan put+del 0+0+0 0+0
---   total lock wait+held read/write 0ms+0ms/0ms+93ms
--- db.revhx
---   pages in+out+cached 2+0+1
---   locks read/write 0/1 rows get+pos+scan put+del 0+0+0 0+0
---   total lock wait+held read/write 0ms+0ms/0ms+62ms
--- db.revsx
---   pages in+out+cached 2+0+1
---   locks read/write 0/1 rows get+pos+scan put+del 0+0+0 0+0
---   total lock wait+held read/write 0ms+0ms/0ms+46ms
--- db.working
---   pages in+out+cached 2+0+1
---   locks read/write 0/1 rows get+pos+scan put+del 0+0+0 0+0
---   total lock wait+held read/write 0ms+0ms/0ms+31ms
--- db.traits
---   pages in+out+cached 4+3+2
---   locks read/write 0/1 rows get+pos+scan put+del 0+0+0 0+0
---   total lock wait+held read/write 0ms+0ms/0ms+31ms
--- db.protect
---   pages in+out+cached 2+0+1
---   locks read/write 1/0 rows get+pos+scan put+del 0+1+1 0+0

答案1

我用强制标志解决了这个问题

p4 depot -f -d sandbox

因为我的仓库文件夹包含一堆没有被删除的空文件夹。

相关内容