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".19d5b2f922/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:19d5b2f922/models/repo/repo.go (L228-L233)
I believe it's a very old temporary patch but has been kept for many years, see: [2d2d85bb
](https://github.com/go-gitea/gitea/commit/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).
This commit is contained in:
parent
2914c5299b
commit
82728a7cec
2 changed files with 26 additions and 5 deletions
|
@ -4,6 +4,7 @@
|
||||||
owner_name: user2
|
owner_name: user2
|
||||||
lower_name: repo1
|
lower_name: repo1
|
||||||
name: repo1
|
name: repo1
|
||||||
|
default_branch: master
|
||||||
num_watches: 4
|
num_watches: 4
|
||||||
num_stars: 0
|
num_stars: 0
|
||||||
num_forks: 0
|
num_forks: 0
|
||||||
|
@ -34,6 +35,7 @@
|
||||||
owner_name: user2
|
owner_name: user2
|
||||||
lower_name: repo2
|
lower_name: repo2
|
||||||
name: repo2
|
name: repo2
|
||||||
|
default_branch: master
|
||||||
num_watches: 0
|
num_watches: 0
|
||||||
num_stars: 1
|
num_stars: 1
|
||||||
num_forks: 0
|
num_forks: 0
|
||||||
|
@ -64,6 +66,7 @@
|
||||||
owner_name: user3
|
owner_name: user3
|
||||||
lower_name: repo3
|
lower_name: repo3
|
||||||
name: repo3
|
name: repo3
|
||||||
|
default_branch: master
|
||||||
num_watches: 0
|
num_watches: 0
|
||||||
num_stars: 0
|
num_stars: 0
|
||||||
num_forks: 0
|
num_forks: 0
|
||||||
|
@ -94,6 +97,7 @@
|
||||||
owner_name: user5
|
owner_name: user5
|
||||||
lower_name: repo4
|
lower_name: repo4
|
||||||
name: repo4
|
name: repo4
|
||||||
|
default_branch: master
|
||||||
num_watches: 0
|
num_watches: 0
|
||||||
num_stars: 1
|
num_stars: 1
|
||||||
num_forks: 0
|
num_forks: 0
|
||||||
|
@ -274,6 +278,7 @@
|
||||||
owner_name: user12
|
owner_name: user12
|
||||||
lower_name: repo10
|
lower_name: repo10
|
||||||
name: repo10
|
name: repo10
|
||||||
|
default_branch: master
|
||||||
num_watches: 0
|
num_watches: 0
|
||||||
num_stars: 0
|
num_stars: 0
|
||||||
num_forks: 1
|
num_forks: 1
|
||||||
|
@ -304,6 +309,7 @@
|
||||||
owner_name: user13
|
owner_name: user13
|
||||||
lower_name: repo11
|
lower_name: repo11
|
||||||
name: repo11
|
name: repo11
|
||||||
|
default_branch: master
|
||||||
num_watches: 0
|
num_watches: 0
|
||||||
num_stars: 0
|
num_stars: 0
|
||||||
num_forks: 0
|
num_forks: 0
|
||||||
|
@ -425,6 +431,7 @@
|
||||||
owner_name: user2
|
owner_name: user2
|
||||||
lower_name: repo15
|
lower_name: repo15
|
||||||
name: repo15
|
name: repo15
|
||||||
|
default_branch: master
|
||||||
num_watches: 0
|
num_watches: 0
|
||||||
num_stars: 0
|
num_stars: 0
|
||||||
num_forks: 0
|
num_forks: 0
|
||||||
|
@ -455,6 +462,7 @@
|
||||||
owner_name: user2
|
owner_name: user2
|
||||||
lower_name: repo16
|
lower_name: repo16
|
||||||
name: repo16
|
name: repo16
|
||||||
|
default_branch: master
|
||||||
num_watches: 0
|
num_watches: 0
|
||||||
num_stars: 0
|
num_stars: 0
|
||||||
num_forks: 0
|
num_forks: 0
|
||||||
|
@ -905,6 +913,7 @@
|
||||||
owner_name: user2
|
owner_name: user2
|
||||||
lower_name: repo20
|
lower_name: repo20
|
||||||
name: repo20
|
name: repo20
|
||||||
|
default_branch: master
|
||||||
num_watches: 0
|
num_watches: 0
|
||||||
num_stars: 0
|
num_stars: 0
|
||||||
num_forks: 0
|
num_forks: 0
|
||||||
|
@ -965,6 +974,7 @@
|
||||||
owner_name: user2
|
owner_name: user2
|
||||||
lower_name: utf8
|
lower_name: utf8
|
||||||
name: utf8
|
name: utf8
|
||||||
|
default_branch: master
|
||||||
num_watches: 0
|
num_watches: 0
|
||||||
num_stars: 0
|
num_stars: 0
|
||||||
num_forks: 0
|
num_forks: 0
|
||||||
|
@ -1055,6 +1065,7 @@
|
||||||
owner_name: user2
|
owner_name: user2
|
||||||
lower_name: commits_search_test
|
lower_name: commits_search_test
|
||||||
name: commits_search_test
|
name: commits_search_test
|
||||||
|
default_branch: master
|
||||||
num_watches: 0
|
num_watches: 0
|
||||||
num_stars: 0
|
num_stars: 0
|
||||||
num_forks: 0
|
num_forks: 0
|
||||||
|
@ -1085,6 +1096,7 @@
|
||||||
owner_name: user2
|
owner_name: user2
|
||||||
lower_name: git_hooks_test
|
lower_name: git_hooks_test
|
||||||
name: git_hooks_test
|
name: git_hooks_test
|
||||||
|
default_branch: master
|
||||||
num_watches: 0
|
num_watches: 0
|
||||||
num_stars: 0
|
num_stars: 0
|
||||||
num_forks: 0
|
num_forks: 0
|
||||||
|
@ -1115,6 +1127,7 @@
|
||||||
owner_name: limited_org
|
owner_name: limited_org
|
||||||
lower_name: public_repo_on_limited_org
|
lower_name: public_repo_on_limited_org
|
||||||
name: public_repo_on_limited_org
|
name: public_repo_on_limited_org
|
||||||
|
default_branch: master
|
||||||
num_watches: 0
|
num_watches: 0
|
||||||
num_stars: 0
|
num_stars: 0
|
||||||
num_forks: 0
|
num_forks: 0
|
||||||
|
@ -1145,6 +1158,7 @@
|
||||||
owner_name: limited_org
|
owner_name: limited_org
|
||||||
lower_name: private_repo_on_limited_org
|
lower_name: private_repo_on_limited_org
|
||||||
name: private_repo_on_limited_org
|
name: private_repo_on_limited_org
|
||||||
|
default_branch: master
|
||||||
num_watches: 0
|
num_watches: 0
|
||||||
num_stars: 0
|
num_stars: 0
|
||||||
num_forks: 0
|
num_forks: 0
|
||||||
|
@ -1175,6 +1189,7 @@
|
||||||
owner_name: privated_org
|
owner_name: privated_org
|
||||||
lower_name: public_repo_on_private_org
|
lower_name: public_repo_on_private_org
|
||||||
name: public_repo_on_private_org
|
name: public_repo_on_private_org
|
||||||
|
default_branch: master
|
||||||
num_watches: 0
|
num_watches: 0
|
||||||
num_stars: 0
|
num_stars: 0
|
||||||
num_forks: 0
|
num_forks: 0
|
||||||
|
@ -1205,6 +1220,7 @@
|
||||||
owner_name: privated_org
|
owner_name: privated_org
|
||||||
lower_name: private_repo_on_private_org
|
lower_name: private_repo_on_private_org
|
||||||
name: private_repo_on_private_org
|
name: private_repo_on_private_org
|
||||||
|
default_branch: master
|
||||||
num_watches: 0
|
num_watches: 0
|
||||||
num_stars: 0
|
num_stars: 0
|
||||||
num_forks: 0
|
num_forks: 0
|
||||||
|
@ -1235,6 +1251,7 @@
|
||||||
owner_name: user2
|
owner_name: user2
|
||||||
lower_name: glob
|
lower_name: glob
|
||||||
name: glob
|
name: glob
|
||||||
|
default_branch: master
|
||||||
num_watches: 0
|
num_watches: 0
|
||||||
num_stars: 0
|
num_stars: 0
|
||||||
num_forks: 0
|
num_forks: 0
|
||||||
|
@ -1295,6 +1312,7 @@
|
||||||
owner_name: user27
|
owner_name: user27
|
||||||
lower_name: template1
|
lower_name: template1
|
||||||
name: template1
|
name: template1
|
||||||
|
default_branch: master
|
||||||
num_watches: 0
|
num_watches: 0
|
||||||
num_stars: 0
|
num_stars: 0
|
||||||
num_forks: 0
|
num_forks: 0
|
||||||
|
@ -1355,6 +1373,7 @@
|
||||||
owner_name: org26
|
owner_name: org26
|
||||||
lower_name: repo_external_tracker
|
lower_name: repo_external_tracker
|
||||||
name: repo_external_tracker
|
name: repo_external_tracker
|
||||||
|
default_branch: master
|
||||||
num_watches: 0
|
num_watches: 0
|
||||||
num_stars: 0
|
num_stars: 0
|
||||||
num_forks: 0
|
num_forks: 0
|
||||||
|
@ -1385,6 +1404,7 @@
|
||||||
owner_name: org26
|
owner_name: org26
|
||||||
lower_name: repo_external_tracker_numeric
|
lower_name: repo_external_tracker_numeric
|
||||||
name: repo_external_tracker_numeric
|
name: repo_external_tracker_numeric
|
||||||
|
default_branch: master
|
||||||
num_watches: 0
|
num_watches: 0
|
||||||
num_stars: 0
|
num_stars: 0
|
||||||
num_forks: 0
|
num_forks: 0
|
||||||
|
@ -1415,6 +1435,7 @@
|
||||||
owner_name: org26
|
owner_name: org26
|
||||||
lower_name: repo_external_tracker_alpha
|
lower_name: repo_external_tracker_alpha
|
||||||
name: repo_external_tracker_alpha
|
name: repo_external_tracker_alpha
|
||||||
|
default_branch: master
|
||||||
num_watches: 0
|
num_watches: 0
|
||||||
num_stars: 0
|
num_stars: 0
|
||||||
num_forks: 0
|
num_forks: 0
|
||||||
|
@ -1445,6 +1466,7 @@
|
||||||
owner_name: user27
|
owner_name: user27
|
||||||
lower_name: repo49
|
lower_name: repo49
|
||||||
name: repo49
|
name: repo49
|
||||||
|
default_branch: master
|
||||||
num_watches: 0
|
num_watches: 0
|
||||||
num_stars: 0
|
num_stars: 0
|
||||||
num_forks: 0
|
num_forks: 0
|
||||||
|
@ -1475,6 +1497,7 @@
|
||||||
owner_name: user30
|
owner_name: user30
|
||||||
lower_name: repo50
|
lower_name: repo50
|
||||||
name: repo50
|
name: repo50
|
||||||
|
default_branch: master
|
||||||
num_watches: 0
|
num_watches: 0
|
||||||
num_stars: 0
|
num_stars: 0
|
||||||
num_forks: 0
|
num_forks: 0
|
||||||
|
@ -1505,6 +1528,7 @@
|
||||||
owner_name: user30
|
owner_name: user30
|
||||||
lower_name: repo51
|
lower_name: repo51
|
||||||
name: repo51
|
name: repo51
|
||||||
|
default_branch: master
|
||||||
num_watches: 0
|
num_watches: 0
|
||||||
num_stars: 0
|
num_stars: 0
|
||||||
num_forks: 0
|
num_forks: 0
|
||||||
|
@ -1565,6 +1589,7 @@
|
||||||
owner_name: user30
|
owner_name: user30
|
||||||
lower_name: renderer
|
lower_name: renderer
|
||||||
name: renderer
|
name: renderer
|
||||||
|
default_branch: master
|
||||||
is_archived: false
|
is_archived: false
|
||||||
is_empty: false
|
is_empty: false
|
||||||
is_private: false
|
is_private: false
|
||||||
|
@ -1592,6 +1617,7 @@
|
||||||
owner_name: user2
|
owner_name: user2
|
||||||
lower_name: lfs
|
lower_name: lfs
|
||||||
name: lfs
|
name: lfs
|
||||||
|
default_branch: master
|
||||||
is_empty: false
|
is_empty: false
|
||||||
is_archived: false
|
is_archived: false
|
||||||
is_private: true
|
is_private: true
|
||||||
|
|
|
@ -227,11 +227,6 @@ func (repo *Repository) IsBroken() bool {
|
||||||
|
|
||||||
// AfterLoad is invoked from XORM after setting the values of all fields of this object.
|
// AfterLoad is invoked from XORM after setting the values of all fields of this object.
|
||||||
func (repo *Repository) AfterLoad() {
|
func (repo *Repository) AfterLoad() {
|
||||||
// FIXME: use models migration to solve all at once.
|
|
||||||
if len(repo.DefaultBranch) == 0 {
|
|
||||||
repo.DefaultBranch = setting.Repository.DefaultBranch
|
|
||||||
}
|
|
||||||
|
|
||||||
repo.NumOpenIssues = repo.NumIssues - repo.NumClosedIssues
|
repo.NumOpenIssues = repo.NumIssues - repo.NumClosedIssues
|
||||||
repo.NumOpenPulls = repo.NumPulls - repo.NumClosedPulls
|
repo.NumOpenPulls = repo.NumPulls - repo.NumClosedPulls
|
||||||
repo.NumOpenMilestones = repo.NumMilestones - repo.NumClosedMilestones
|
repo.NumOpenMilestones = repo.NumMilestones - repo.NumClosedMilestones
|
||||||
|
|
Loading…
Reference in a new issue