From 9f5e1157f03a96255bb2c674c338c1970edb5ae6 Mon Sep 17 00:00:00 2001 From: kochklops Date: Sat, 12 Jul 2025 16:00:42 +0200 Subject: [PATCH] feat: introduce global merge message templates (#8347) Allow for a directory `default_merge_message` in the `CustomPath` to be used as a fallback if no merge template is specified by the repository. Effectively being a global merge message template feature. Resolves #6648 Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8347 Reviewed-by: Gusted Co-authored-by: kochklops Co-committed-by: kochklops --- models/repo/git.go | 2 + .../tests/repos/templates_repo/COMMIT_EDITMSG | 1 + modules/git/tests/repos/templates_repo/HEAD | 1 + modules/git/tests/repos/templates_repo/config | 5 ++ .../tests/repos/templates_repo/description | 1 + modules/git/tests/repos/templates_repo/index | Bin 0 -> 256 bytes .../tests/repos/templates_repo/info/exclude | 6 ++ .../git/tests/repos/templates_repo/info/refs | 1 + .../templates_repo/objects/info/commit-graph | Bin 0 -> 1172 bytes .../repos/templates_repo/objects/info/packs | 2 + ...544ae19d590e95822e963f78d069d27ba9e.bitmap | Bin 0 -> 210 bytes ...b44544ae19d590e95822e963f78d069d27ba9e.idx | Bin 0 -> 1212 bytes ...44544ae19d590e95822e963f78d069d27ba9e.pack | Bin 0 -> 415 bytes .../tests/repos/templates_repo/packed-refs | 2 + .../repos/templates_repo/refs/heads/.gitkeep | 0 .../repos/templates_repo/refs/tags/.gitkeep | 0 services/pull/check.go | 4 ++ services/pull/merge.go | 31 ++++++++++ services/pull/merge_test.go | 56 ++++++++++++++++++ services/pull/pull_test.go | 36 +++++++++++ 20 files changed, 148 insertions(+) create mode 100644 modules/git/tests/repos/templates_repo/COMMIT_EDITMSG create mode 100644 modules/git/tests/repos/templates_repo/HEAD create mode 100644 modules/git/tests/repos/templates_repo/config create mode 100644 modules/git/tests/repos/templates_repo/description create mode 100644 modules/git/tests/repos/templates_repo/index create mode 100644 modules/git/tests/repos/templates_repo/info/exclude create mode 100644 modules/git/tests/repos/templates_repo/info/refs create mode 100644 modules/git/tests/repos/templates_repo/objects/info/commit-graph create mode 100644 modules/git/tests/repos/templates_repo/objects/info/packs create mode 100644 modules/git/tests/repos/templates_repo/objects/pack/pack-abb44544ae19d590e95822e963f78d069d27ba9e.bitmap create mode 100644 modules/git/tests/repos/templates_repo/objects/pack/pack-abb44544ae19d590e95822e963f78d069d27ba9e.idx create mode 100644 modules/git/tests/repos/templates_repo/objects/pack/pack-abb44544ae19d590e95822e963f78d069d27ba9e.pack create mode 100644 modules/git/tests/repos/templates_repo/packed-refs create mode 100644 modules/git/tests/repos/templates_repo/refs/heads/.gitkeep create mode 100644 modules/git/tests/repos/templates_repo/refs/tags/.gitkeep diff --git a/models/repo/git.go b/models/repo/git.go index 692176c8f6..11f6452be5 100644 --- a/models/repo/git.go +++ b/models/repo/git.go @@ -29,6 +29,8 @@ const ( MergeStyleRebaseUpdate MergeStyle = "rebase-update-only" ) +var MergeStyles = []MergeStyle{MergeStyleMerge, MergeStyleRebase, MergeStyleRebaseMerge, MergeStyleSquash, MergeStyleFastForwardOnly, MergeStyleManuallyMerged, MergeStyleRebaseUpdate} + type UpdateStyle string const ( diff --git a/modules/git/tests/repos/templates_repo/COMMIT_EDITMSG b/modules/git/tests/repos/templates_repo/COMMIT_EDITMSG new file mode 100644 index 0000000000..a77fa514de --- /dev/null +++ b/modules/git/tests/repos/templates_repo/COMMIT_EDITMSG @@ -0,0 +1 @@ +Initial diff --git a/modules/git/tests/repos/templates_repo/HEAD b/modules/git/tests/repos/templates_repo/HEAD new file mode 100644 index 0000000000..cb089cd89a --- /dev/null +++ b/modules/git/tests/repos/templates_repo/HEAD @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/modules/git/tests/repos/templates_repo/config b/modules/git/tests/repos/templates_repo/config new file mode 100644 index 0000000000..a4ef456cbc --- /dev/null +++ b/modules/git/tests/repos/templates_repo/config @@ -0,0 +1,5 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = true + logallrefupdates = true diff --git a/modules/git/tests/repos/templates_repo/description b/modules/git/tests/repos/templates_repo/description new file mode 100644 index 0000000000..498b267a8c --- /dev/null +++ b/modules/git/tests/repos/templates_repo/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/modules/git/tests/repos/templates_repo/index b/modules/git/tests/repos/templates_repo/index new file mode 100644 index 0000000000000000000000000000000000000000..2b3f95a155afc685892e5395c5beab3e8686c212 GIT binary patch literal 256 zcmZ?q402{*U|<4b#*FOq!CID0uV6G#%$^}PVH*QO;}Ql2<`)pmkSXq(c;LJO<1_8g zf+kBAidJ6zR=keEKrb!7C_ObRUq2-^EwMDGBtAD4$On?e#fj;u`o69~?ym76uD$_2 zjv=mkxhV_`AwjOLKsz!R3>6Hy=7uEAxpqzK)7oYBOJ}efL`B~ylYkisRxl^_8DnFA z)q0E5Aa}QWMT04ba7*V02d(J2f}1=advSGfwCjqT^x;|>>3CSB3T-M#3;ZF0Y;$E zC>{-iVV?$EGfULZu})==iRt_06jsm5#1Y6lHzaA!wQE|R)-JPOI)mLHD*8s5L;)~E kfG`lSWMrRT24bvxetJ^K;Ucl+;kn}C^R`V}dXb?707}dyvH$=8 literal 0 HcmV?d00001 diff --git a/modules/git/tests/repos/templates_repo/objects/info/packs b/modules/git/tests/repos/templates_repo/objects/info/packs new file mode 100644 index 0000000000..5833126b59 --- /dev/null +++ b/modules/git/tests/repos/templates_repo/objects/info/packs @@ -0,0 +1,2 @@ +P pack-abb44544ae19d590e95822e963f78d069d27ba9e.pack + diff --git a/modules/git/tests/repos/templates_repo/objects/pack/pack-abb44544ae19d590e95822e963f78d069d27ba9e.bitmap b/modules/git/tests/repos/templates_repo/objects/pack/pack-abb44544ae19d590e95822e963f78d069d27ba9e.bitmap new file mode 100644 index 0000000000000000000000000000000000000000..6bd87bf13c64a032d04deb620ed9b740bfca401d GIT binary patch literal 210 zcmZ?r4Dn@PWME}rU|?Lm#nok<E<- zWWX{AagaO=AhTg+z~mr&2Ot;SM0t>s=6OpaLG&bs8z73I-B5%nYvBR4BhFtY>=eDQ Nr0IwKmc2YVPXOIH8_)m% literal 0 HcmV?d00001 diff --git a/modules/git/tests/repos/templates_repo/objects/pack/pack-abb44544ae19d590e95822e963f78d069d27ba9e.idx b/modules/git/tests/repos/templates_repo/objects/pack/pack-abb44544ae19d590e95822e963f78d069d27ba9e.idx new file mode 100644 index 0000000000000000000000000000000000000000..b530533e1b850a0d0334e687e2bae1987156bb01 GIT binary patch literal 1212 zcmexg;-AdGz`z8=v;>Sm!-paUh07?WO&Bl(!c^2A_7Kf zI`sDK)C=@Y-}G8#){$UzeN5!Y^*HxP=!O{~2IB_<2onYGY*6@Wt5m&7TDKzSQ(u3) zA5!@&?=A`P#C7SUE;nsG*bpK5QD4kAm1N&@Yy96uJ&xQm7WDy3ggu1026&uvNli;E z%_&jHO)W}K1(LuYN0D2LLIe5AUnAMMSO{)sX2}BI#rI JjRu`3x}K3NxM%