@ -201,6 +201,23 @@ func InitFull(ctx context.Context) (err error) {
return syncGitConfig ( )
return syncGitConfig ( )
}
}
func enableReflogs ( ) error {
if err := configSet ( "core.logAllRefUpdates" , "true" ) ; err != nil {
return err
}
err := configSet ( "gc.reflogExpire" , fmt . Sprintf ( "%d" , setting . Git . Reflog . Expiration ) )
return err
}
func disableReflogs ( ) error {
if err := configUnsetAll ( "core.logAllRefUpdates" , "true" ) ; err != nil {
return err
} else if err := configUnsetAll ( "gc.reflogExpire" , "" ) ; err != nil {
return err
}
return nil
}
// syncGitConfig only modifies gitconfig, won't change global variables (otherwise there will be data-race problem)
// syncGitConfig only modifies gitconfig, won't change global variables (otherwise there will be data-race problem)
func syncGitConfig ( ) ( err error ) {
func syncGitConfig ( ) ( err error ) {
if err = os . MkdirAll ( HomeDir ( ) , os . ModePerm ) ; err != nil {
if err = os . MkdirAll ( HomeDir ( ) , os . ModePerm ) ; err != nil {
@ -224,6 +241,16 @@ func syncGitConfig() (err error) {
return err
return err
}
}
if setting . Git . Reflog . Enabled {
if err := enableReflogs ( ) ; err != nil {
return err
}
} else {
if err := disableReflogs ( ) ; err != nil {
return err
}
}
if CheckGitVersionAtLeast ( "2.10" ) == nil {
if CheckGitVersionAtLeast ( "2.10" ) == nil {
if err := configSet ( "receive.advertisePushOptions" , "true" ) ; err != nil {
if err := configSet ( "receive.advertisePushOptions" , "true" ) ; err != nil {
return err
return err