walk = new RevWalk(db);
final ReceiveConfig cfg = db.getConfig().get(ReceiveConfig.KEY);
- objectChecker = cfg.checkReceivedObjects ? new ObjectChecker() : null;
+ objectChecker = cfg.newObjectChecker();
allowCreates = cfg.allowCreates;
allowDeletes = cfg.allowDeletes;
allowNonFastForwards = cfg.allowNonFastForwards;
};
final boolean checkReceivedObjects;
+ final boolean allowLeadingZeroFileMode;
+ final boolean safeForWindows;
+ final boolean safeForMacOS;
final boolean allowCreates;
-
final boolean allowDeletes;
-
final boolean allowNonFastForwards;
-
final boolean allowOfsDelta;
ReceiveConfig(final Config config) {
checkReceivedObjects = config.getBoolean(
"receive", "fsckobjects", //$NON-NLS-1$ //$NON-NLS-2$
config.getBoolean("transfer", "fsckobjects", false)); //$NON-NLS-1$ //$NON-NLS-2$
+ allowLeadingZeroFileMode = checkReceivedObjects
+ && config.getBoolean("fsck", "allowLeadingZeroFileMode", false); //$NON-NLS-1$ //$NON-NLS-2$
+ safeForWindows = checkReceivedObjects
+ && config.getBoolean("fsck", "safeForWindows", false); //$NON-NLS-1$ //$NON-NLS-2$
+ safeForMacOS = checkReceivedObjects
+ && config.getBoolean("fsck", "safeForMacOS", false); //$NON-NLS-1$ //$NON-NLS-2$
+
allowCreates = true;
allowDeletes = !config.getBoolean("receive", "denydeletes", false); //$NON-NLS-1$ //$NON-NLS-2$
allowNonFastForwards = !config.getBoolean("receive", //$NON-NLS-1$
allowOfsDelta = config.getBoolean("repack", "usedeltabaseoffset", //$NON-NLS-1$ //$NON-NLS-2$
true);
}
+
+ ObjectChecker newObjectChecker() {
+ if (!checkReceivedObjects)
+ return null;
+ return new ObjectChecker()
+ .setAllowLeadingZeroFileMode(allowLeadingZeroFileMode)
+ .setSafeForWindows(safeForWindows)
+ .setSafeForMacOS(safeForMacOS);
+ }
}
/**