在AEM中,可能会出现由于版本控制的原因,进行页面移动时会创建大量的版本。如果在页面移动期间出现错误,则可以使用以下方法。
可以通过检查日志文件,确定是否已超出节点版本线。如果已超出,则可以在日志中查找例外并采取适当措施,它们可能包括根据需要增加版本或删除一些不必要的版本。
另外,可以使用以下Groovy脚本清理版本:
import javax.jcr.*;
import javax.jcr.query.Query;
import javax.jcr.query.QueryResult;
// path to page to cleanup
def path = "/content/we-retail/ca/en/men/jcr:content"
// maxversions to keep
def maxVersions = 5;
session = resourceResolver.adaptTo(Session.class);
def node = session.getNode(path)
if (node != null) {
def versionManager = session.getWorkspace().getVersionManager()
def versionHistory = versionManager.getVersionHistory(path)
println("versionHistory.getCount(): " + versionHistory.getCount())
def versionsToKeep = Math.min(versionHistory.getCount(), maxVersions)
println("versionsToKeep: "+ versionsToKeep)
def versionList = versionHistory.getAllVersions()
println("versionList.size(): "+ versionList.size())
for (i in 0..versionsToKeep-1) {
versionList.remove(0)
}
println("versionList.size(): "+ versionList.size())
versionManager.checkout(path)
for (version in versionList) {
println(version.getName())
versionManager.removeVersion(path, version.getName())
}
versionManager.checkin(path)
}
这个节录会删除某个页面下的多余版本,保留最近的五个版本。
请勿在生产环境中执行此脚本。