private boolean isSameAsRootContainer(VFSItem item) {
   if (item instanceof VFSContainer) {
     VFSContainer blocker = rootContainer;
     if (blocker instanceof MergeSource) {
       blocker = ((MergeSource) blocker).getRootWriteContainer();
     }
     return blocker.isSame(item);
   }
   return false;
 }
  private File reversedOriginFile(VFSItem versionXml) {
    String path =
        File.separatorChar + versionXml.getName().substring(0, versionXml.getName().length() - 4);
    for (VFSContainer parent = versionXml.getParentContainer();
        parent != null && !parent.isSame(getRootVersionsContainer());
        parent = parent.getParentContainer()) {
      path = File.separatorChar + parent.getName() + path;
    }

    return new File(getCanonicalRoot(), path);
  }