@@ -217,14 +217,26 @@ abstract class SetupMinecraftSources : JavaLauncherTask() {
217
217
}
218
218
219
219
val upstream = Git .open(rootProjectDir.toFile())
220
+ val upstreamConfig = upstream.repository.config
221
+ val upstreamReachableSHA1 = upstreamConfig.getString(" uploadpack" , null , " allowreachablesha1inwant" )
222
+ val upstreamConfigContainsUploadPack = upstreamConfig.sections.contains(" uploadpack" )
220
223
try {
221
224
// Temporarily allow fetching reachable sha1 refs from the "upstream" paper repository.
222
- upstream.repository.config. setBoolean(" uploadpack" , null , " allowreachablesha1inwant" , true );
223
- upstream.repository.config .save()
225
+ upstreamConfig. setBoolean(" uploadpack" , null , " allowreachablesha1inwant" , true )
226
+ upstreamConfig .save()
224
227
oldPaperGit.fetch().setDepth(1 ).setRemote(" origin" ).setRefSpecs(oldPaperCommit.get()).call()
225
228
oldPaperGit.reset().setMode(ResetCommand .ResetType .HARD ).setRef(oldPaperCommit.get()).call()
226
229
} finally {
227
- upstream.repository.config.unset(" uploadpack" , null , " allowreachablesha1inwant" );
230
+ if (upstreamReachableSHA1 == null ) {
231
+ if (upstreamConfigContainsUploadPack) {
232
+ upstreamConfig.unset(" uploadpack" , null , " allowreachablesha1inwant" )
233
+ } else {
234
+ upstreamConfig.unsetSection(" uploadpack" , null )
235
+ }
236
+ } else {
237
+ upstreamConfig.setString(" uploadpack" , null , " allowreachablesha1inwant" , upstreamReachableSHA1)
238
+ }
239
+ upstreamConfig.save()
228
240
upstream.close()
229
241
}
230
242
0 commit comments