Add a setting for fsck to check connectivity only
The object checks may take a long time and sometimes we are only interested in connectivity check. This is similar to 'git fsck --connectivity-only'. Change-Id: I654e8fdccdb16d796f920088429d188cc96734bc Signed-off-by: Zhen Chen <czhen@google.com>
This commit is contained in:
parent
b88204edfb
commit
c93c653ccf
|
@ -69,6 +69,7 @@ public class DfsFsck {
|
||||||
private final DfsRepository repo;
|
private final DfsRepository repo;
|
||||||
private final DfsObjDatabase objdb;
|
private final DfsObjDatabase objdb;
|
||||||
private ObjectChecker objChecker = new ObjectChecker();
|
private ObjectChecker objChecker = new ObjectChecker();
|
||||||
|
private boolean connectivityOnly;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize DFS fsck.
|
* Initialize DFS fsck.
|
||||||
|
@ -97,7 +98,9 @@ public FsckError check(ProgressMonitor pm) throws IOException {
|
||||||
}
|
}
|
||||||
|
|
||||||
FsckError errors = new FsckError();
|
FsckError errors = new FsckError();
|
||||||
|
if (!connectivityOnly) {
|
||||||
checkPacks(pm, errors);
|
checkPacks(pm, errors);
|
||||||
|
}
|
||||||
checkConnectivity(pm, errors);
|
checkConnectivity(pm, errors);
|
||||||
return errors;
|
return errors;
|
||||||
}
|
}
|
||||||
|
@ -174,4 +177,14 @@ private void checkConnectivity(ProgressMonitor pm, FsckError errors)
|
||||||
public void setObjectChecker(ObjectChecker objChecker) {
|
public void setObjectChecker(ObjectChecker objChecker) {
|
||||||
this.objChecker = objChecker;
|
this.objChecker = objChecker;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param connectivityOnly
|
||||||
|
* whether fsck should bypass object validity and integrity
|
||||||
|
* checks and only check connectivity. The default is
|
||||||
|
* {@code false}, meaning to run all checks.
|
||||||
|
*/
|
||||||
|
public void setConnectivityOnly(boolean connectivityOnly) {
|
||||||
|
this.connectivityOnly = connectivityOnly;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue