I'm writing a piece of code that, once executed anywhere inside an SVN working copy, locates the root:
File workingDirectory = new File(".").getCanonicalFile();
File wcRoot = SVNWCUtil.getWorkingCopyRoot(workingDirectory, true);
gets the repository url given this root, builds an SVNClientManager
given this info and now I'm stuck at how to get a list of anything in the working copy that is not in the repository - this includes locally-modified files, unresolved merges, unversioned files and I'll be happy to hear any anything else I might have missed.
How do I do that ? This snippet seems to require access to the repository itself, not the WC:
clientManager.getLookClient().doGetChanged(...)
public static List<File> listModifiedFiles(File path, SVNRevision revision) throws SVNException {
SVNClientManager svnClientManager = SVNClientManager.newInstance();
final List<File> fileList = new ArrayList<File>();
svnClientManager.getStatusClient().doStatus(path, revision, SVNDepth.INFINITY, false, false, false, false, new ISVNStatusHandler() {
@Override
public void handleStatus(SVNStatus status) throws SVNException {
SVNStatusType statusType = status.getContentsStatus();
if (statusType != SVNStatusType.STATUS_NONE && statusType != SVNStatusType.STATUS_NORMAL
&& statusType != SVNStatusType.STATUS_IGNORED) {
fileList.add(status.getFile());
}
}
}, null);
return fileList;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With