qxo před 2 roky
rodič
revize
7d7650fd52
Žádný účet není propojen s e-mailovou adresou tvůrce revize

+ 27
- 4
org.eclipse.jgit/src/org/eclipse/jgit/api/CleanCommand.java Zobrazit soubor

@@ -92,12 +92,12 @@ public class CleanCommand extends GitCommand<Set<String>> {
status.getIgnoredNotInIndex(), false);

for (String file : notIgnoredFiles)
if (paths.isEmpty() || paths.contains(file)) {
if (paths.isEmpty() || paths.contains(file) || isFileInPaths(file) ) {
files = cleanPath(file, files);
}
for (String dir : notIgnoredDirs)
if (paths.isEmpty() || paths.contains(dir)) {
if (paths.isEmpty() || paths.contains(dir) || isFileInPaths(dir) ) {
files = cleanPath(dir, files);
}
} catch (IOException e) {
@@ -109,7 +109,30 @@ public class CleanCommand extends GitCommand<Set<String>> {
}
return files;
}

protected boolean isFileInPaths(final String file) {
if(paths.isEmpty()){
return false;
}
String path=file;
final Set<String> dirs = new HashSet<String>();
while(true){
int idx = path.lastIndexOf("/");
if( idx> 0 ){
path=file.substring(0,idx);
if(paths.contains(path)){
paths.addAll(dirs);
return true;
}
dirs.add(path);
}else{
break;
}
return idx == -1 ? false : ;
}
return false;
}
/**
* When dryRun is false, deletes the specified path from disk. If dryRun
* is true, no paths are actually deleted. In both cases, the paths that

Načítá se…
Zrušit
Uložit