throws VltException {
VaultFileSystem fs = fileSystems.get(mountpoint);
if (fs == null) {
try {
// check if export root already defines config and filter
DefaultWorkspaceFilter filter = null;
VaultFsConfig config = null;
if (exportRoot != null && exportRoot.getMetaInf() != null) {
filter = (DefaultWorkspaceFilter) exportRoot.getMetaInf().getFilter();
config = exportRoot.getMetaInf().getConfig();
}
if (filter == null && defaultFilterRoots.length > 0) {
filter = new DefaultWorkspaceFilter();
for (String root: defaultFilterRoots) {
filter.add(new PathFilterSet(root));
}
stdout.printf("Created default filter:%n%s", filter.getSourceAsString());
}
if (filter == null && defaultFilter != null) {
filter = new DefaultWorkspaceFilter();
try {
filter.load(new File(defaultFilter));
} catch (ConfigurationException e) {
throw new VltException("Specified filter is not valid.", e);
}
}
// get .vltignore files
if (exportRoot != null && filter != null) {
if (globalIgnored == null) {
globalIgnored = new Ignored(this, cwd);
}
filter.setGlobalIgnored(globalIgnored);
}
// override any import mode defined in the filter as this is not expected when committing files (GRANITE-XYZ)
if (filter != null) {
filter.setImportMode(ImportMode.REPLACE);
}
Repository rep = repProvider.getRepository(mountpoint);
Credentials creds = credsProvider.getCredentials(mountpoint);
fs = Mounter.mount(config, filter, rep, creds, mountpoint, fsRoot);