Allow configuration of receive pack's ObjectChecker through fsck.*
fsck.allowLeadingZeroFileMode may be set true to permit pushing broken trees with leading '0' in the file mode. fsck.safeForWindows may be set true to require new trees to have only file names that are safe on the Windows platform. fsck.safeForMacOS may be set true to require new trees to have only file names that do not cause collisions or confusion on the Mac OS platform. Change-Id: I1a225c1b3cd13c0d1a0d43fffe79355c501f49b7
This commit is contained in:
parent
ced58a7cff
commit
3d412827e5
|
@ -255,7 +255,7 @@ protected BaseReceivePack(final Repository into) {
|
|||
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;
|
||||
|
@ -274,19 +274,26 @@ public ReceiveConfig parse(final Config cfg) {
|
|||
};
|
||||
|
||||
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$
|
||||
|
@ -294,6 +301,15 @@ public ReceiveConfig parse(final Config cfg) {
|
|||
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);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue