@@ -201,6 +201,29 @@ func InitFull(ctx context.Context) (err error) {
201
201
return syncGitConfig ()
202
202
}
203
203
204
+ func enableReflogs () error {
205
+ if err := configSet ("core.logAllRefUpdates" , "true" ); err != nil {
206
+ return err
207
+ }
208
+ if setting .Git .Reflog .Expiration != 90 {
209
+ if err := configSet ("gc.reflogExpire" , fmt .Sprintf ("%d" , setting .Git .Reflog .Expiration )); err != nil {
210
+ return err
211
+ }
212
+ } else if err := configUnsetAll ("gc.reflogExpire" , "" ); err != nil {
213
+ return err
214
+ }
215
+ return nil
216
+ }
217
+
218
+ func disableReflogs () error {
219
+ if err := configUnsetAll ("core.logAllRefUpdates" , "true" ); err != nil {
220
+ return err
221
+ } else if err := configUnsetAll ("gc.reflogExpire" , "" ); err != nil {
222
+ return err
223
+ }
224
+ return nil
225
+ }
226
+
204
227
// syncGitConfig only modifies gitconfig, won't change global variables (otherwise there will be data-race problem)
205
228
func syncGitConfig () (err error ) {
206
229
if err = os .MkdirAll (HomeDir (), os .ModePerm ); err != nil {
@@ -225,25 +248,12 @@ func syncGitConfig() (err error) {
225
248
}
226
249
227
250
if setting .Git .Reflog .Enabled {
228
- if err := configSet ( "core.logAllRefUpdates" , "true" ); err != nil {
251
+ if err := enableReflogs ( ); err != nil {
229
252
return err
230
253
}
231
- if setting .Git .Reflog .Expiration != 90 {
232
- if err := configSet ("gc.reflogExpire" , fmt .Sprintf ("%d" , setting .Git .Reflog .Expiration )); err != nil {
233
- return err
234
- }
235
- } else {
236
- if err := configUnsetAll ("gc.reflogExpire" , "" ); err != nil {
237
- return err
238
- }
239
- }
240
254
} else {
241
- if err := configUnsetAll ( "core.logAllRefUpdates" , "true" ); err != nil {
255
+ if err := disableReflogs ( ); err != nil {
242
256
return err
243
- } else {
244
- if err := configUnsetAll ("gc.reflogExpire" , "" ); err != nil {
245
- return err
246
- }
247
257
}
248
258
}
249
259
0 commit comments