@Override protected boolean enable(Node[] nodes) { VCSContext context = HgUtils.getCurrentContext(nodes); Set<File> roots = context.getFiles(); if(roots == null) return false; return HgUtils.isFromHgRepository(context); }
/** * Returns root files sorted per their repository roots * @param ctx * @param rootFiles * @return */ public static Map<File, Set<File>> sortUnderRepository (final VCSContext ctx, boolean rootFiles) { Set<File> files = null; if(ctx != null) { files = rootFiles ? ctx.getRootFiles() : ctx.getFiles(); } return sortUnderRepository(files); }
/** * Returns only those root files from the given context which belong to repository * @param ctx * @param repository * @param rootFiles * @return */ public static File[] filterForRepository(final VCSContext ctx, final File repository, boolean rootFiles) { File[] files = null; if(ctx != null) { Set<File> s = rootFiles ? ctx.getRootFiles() : ctx.getFiles(); files = s.toArray(new File[s.size()]); } if (files != null) { List<File> l = new LinkedList<File>(); for (File file : files) { File r = Mercurial.getInstance().getRepositoryRoot(file); if (r != null && r.equals(repository)) { l.add(file); } } files = l.toArray(new File[l.size()]); } return files; }
@Override protected boolean enable(Node[] nodes) { VCSContext context = HgUtils.getCurrentContext(nodes); Set<File> roots = context.getFiles(); if(roots == null) return false; if(!HgUtils.isFromHgRepository(context)) return false; for (File root : roots) { FileInformation info = Mercurial.getInstance().getFileStatusCache().getCachedStatus(root); if(info != null && (info.getStatus() == FileInformation.STATUS_NOTVERSIONED_NEWLOCALLY || info.getStatus() == FileInformation.STATUS_VERSIONED_ADDEDLOCALLY)) { return false; } } return true; }