Skip to content

Commit 82728a7

Browse files
authored
Do not overwrite empty DefaultBranch (#22708)
Fix #21994. And fix #19470. While generating new repo from a template, it does something like "commit to git repo, re-fetch repo model from DB, and update default branch if it's empty". https://github.com/go-gitea/gitea/blob/19d5b2f922c2defde579a935fbedb680eb8fff18/modules/repository/generate.go#L241-L253 Unfortunately, when load repo from DB, the default branch will be set to `setting.Repository.DefaultBranch` if it's empty: https://github.com/go-gitea/gitea/blob/19d5b2f922c2defde579a935fbedb680eb8fff18/models/repo/repo.go#L228-L233 I believe it's a very old temporary patch but has been kept for many years, see: [2d2d85b](2d2d85bb#diff-1851799b06733db4df3ec74385c1e8850ee5aedee70b8b55366910d22725eea8) I know it's a risk to delete it, may lead to potential behavioral changes, but we cannot keep the outdated `FIXME` forever. On the other hand, an empty `DefaultBranch` does make sense: an empty repo doesn't have one conceptually (actually, Gitea will still set it to `setting.Repository.DefaultBranch` to make it safer).
1 parent 2914c52 commit 82728a7

File tree

2 files changed

+26
-5
lines changed

2 files changed

+26
-5
lines changed

models/fixtures/repository.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
owner_name: user2
55
lower_name: repo1
66
name: repo1
7+
default_branch: master
78
num_watches: 4
89
num_stars: 0
910
num_forks: 0
@@ -34,6 +35,7 @@
3435
owner_name: user2
3536
lower_name: repo2
3637
name: repo2
38+
default_branch: master
3739
num_watches: 0
3840
num_stars: 1
3941
num_forks: 0
@@ -64,6 +66,7 @@
6466
owner_name: user3
6567
lower_name: repo3
6668
name: repo3
69+
default_branch: master
6770
num_watches: 0
6871
num_stars: 0
6972
num_forks: 0
@@ -94,6 +97,7 @@
9497
owner_name: user5
9598
lower_name: repo4
9699
name: repo4
100+
default_branch: master
97101
num_watches: 0
98102
num_stars: 1
99103
num_forks: 0
@@ -274,6 +278,7 @@
274278
owner_name: user12
275279
lower_name: repo10
276280
name: repo10
281+
default_branch: master
277282
num_watches: 0
278283
num_stars: 0
279284
num_forks: 1
@@ -304,6 +309,7 @@
304309
owner_name: user13
305310
lower_name: repo11
306311
name: repo11
312+
default_branch: master
307313
num_watches: 0
308314
num_stars: 0
309315
num_forks: 0
@@ -425,6 +431,7 @@
425431
owner_name: user2
426432
lower_name: repo15
427433
name: repo15
434+
default_branch: master
428435
num_watches: 0
429436
num_stars: 0
430437
num_forks: 0
@@ -455,6 +462,7 @@
455462
owner_name: user2
456463
lower_name: repo16
457464
name: repo16
465+
default_branch: master
458466
num_watches: 0
459467
num_stars: 0
460468
num_forks: 0
@@ -905,6 +913,7 @@
905913
owner_name: user2
906914
lower_name: repo20
907915
name: repo20
916+
default_branch: master
908917
num_watches: 0
909918
num_stars: 0
910919
num_forks: 0
@@ -965,6 +974,7 @@
965974
owner_name: user2
966975
lower_name: utf8
967976
name: utf8
977+
default_branch: master
968978
num_watches: 0
969979
num_stars: 0
970980
num_forks: 0
@@ -1055,6 +1065,7 @@
10551065
owner_name: user2
10561066
lower_name: commits_search_test
10571067
name: commits_search_test
1068+
default_branch: master
10581069
num_watches: 0
10591070
num_stars: 0
10601071
num_forks: 0
@@ -1085,6 +1096,7 @@
10851096
owner_name: user2
10861097
lower_name: git_hooks_test
10871098
name: git_hooks_test
1099+
default_branch: master
10881100
num_watches: 0
10891101
num_stars: 0
10901102
num_forks: 0
@@ -1115,6 +1127,7 @@
11151127
owner_name: limited_org
11161128
lower_name: public_repo_on_limited_org
11171129
name: public_repo_on_limited_org
1130+
default_branch: master
11181131
num_watches: 0
11191132
num_stars: 0
11201133
num_forks: 0
@@ -1145,6 +1158,7 @@
11451158
owner_name: limited_org
11461159
lower_name: private_repo_on_limited_org
11471160
name: private_repo_on_limited_org
1161+
default_branch: master
11481162
num_watches: 0
11491163
num_stars: 0
11501164
num_forks: 0
@@ -1175,6 +1189,7 @@
11751189
owner_name: privated_org
11761190
lower_name: public_repo_on_private_org
11771191
name: public_repo_on_private_org
1192+
default_branch: master
11781193
num_watches: 0
11791194
num_stars: 0
11801195
num_forks: 0
@@ -1205,6 +1220,7 @@
12051220
owner_name: privated_org
12061221
lower_name: private_repo_on_private_org
12071222
name: private_repo_on_private_org
1223+
default_branch: master
12081224
num_watches: 0
12091225
num_stars: 0
12101226
num_forks: 0
@@ -1235,6 +1251,7 @@
12351251
owner_name: user2
12361252
lower_name: glob
12371253
name: glob
1254+
default_branch: master
12381255
num_watches: 0
12391256
num_stars: 0
12401257
num_forks: 0
@@ -1295,6 +1312,7 @@
12951312
owner_name: user27
12961313
lower_name: template1
12971314
name: template1
1315+
default_branch: master
12981316
num_watches: 0
12991317
num_stars: 0
13001318
num_forks: 0
@@ -1355,6 +1373,7 @@
13551373
owner_name: org26
13561374
lower_name: repo_external_tracker
13571375
name: repo_external_tracker
1376+
default_branch: master
13581377
num_watches: 0
13591378
num_stars: 0
13601379
num_forks: 0
@@ -1385,6 +1404,7 @@
13851404
owner_name: org26
13861405
lower_name: repo_external_tracker_numeric
13871406
name: repo_external_tracker_numeric
1407+
default_branch: master
13881408
num_watches: 0
13891409
num_stars: 0
13901410
num_forks: 0
@@ -1415,6 +1435,7 @@
14151435
owner_name: org26
14161436
lower_name: repo_external_tracker_alpha
14171437
name: repo_external_tracker_alpha
1438+
default_branch: master
14181439
num_watches: 0
14191440
num_stars: 0
14201441
num_forks: 0
@@ -1445,6 +1466,7 @@
14451466
owner_name: user27
14461467
lower_name: repo49
14471468
name: repo49
1469+
default_branch: master
14481470
num_watches: 0
14491471
num_stars: 0
14501472
num_forks: 0
@@ -1475,6 +1497,7 @@
14751497
owner_name: user30
14761498
lower_name: repo50
14771499
name: repo50
1500+
default_branch: master
14781501
num_watches: 0
14791502
num_stars: 0
14801503
num_forks: 0
@@ -1505,6 +1528,7 @@
15051528
owner_name: user30
15061529
lower_name: repo51
15071530
name: repo51
1531+
default_branch: master
15081532
num_watches: 0
15091533
num_stars: 0
15101534
num_forks: 0
@@ -1565,6 +1589,7 @@
15651589
owner_name: user30
15661590
lower_name: renderer
15671591
name: renderer
1592+
default_branch: master
15681593
is_archived: false
15691594
is_empty: false
15701595
is_private: false
@@ -1592,6 +1617,7 @@
15921617
owner_name: user2
15931618
lower_name: lfs
15941619
name: lfs
1620+
default_branch: master
15951621
is_empty: false
15961622
is_archived: false
15971623
is_private: true

models/repo/repo.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -227,11 +227,6 @@ func (repo *Repository) IsBroken() bool {
227227

228228
// AfterLoad is invoked from XORM after setting the values of all fields of this object.
229229
func (repo *Repository) AfterLoad() {
230-
// FIXME: use models migration to solve all at once.
231-
if len(repo.DefaultBranch) == 0 {
232-
repo.DefaultBranch = setting.Repository.DefaultBranch
233-
}
234-
235230
repo.NumOpenIssues = repo.NumIssues - repo.NumClosedIssues
236231
repo.NumOpenPulls = repo.NumPulls - repo.NumClosedPulls
237232
repo.NumOpenMilestones = repo.NumMilestones - repo.NumClosedMilestones

0 commit comments

Comments
 (0)