This commit is contained in:
douboer
2025-09-07 12:39:28 +08:00
parent 1ba01e3c64
commit 4d033257fe
5714 changed files with 15866 additions and 1032 deletions

View File

@@ -0,0 +1,182 @@
e9b1917bd4d7d050e0ff4ec157b5d6e253c84385 not-for-merge branch 'development' of https://github.com/weichsel/ZIPFoundation
82a11218c20504d3be0233ebc6f88afb12f6b29d not-for-merge branch 'feature/swift6' of https://github.com/weichsel/ZIPFoundation
02b6abe5f6eef7e3cbd5f247c5cc24e246efcfe0 not-for-merge branch 'main' of https://github.com/weichsel/ZIPFoundation
1de296878230ca510dbfab5aa8796628aeb71248 not-for-merge 'refs/pull/1/head' of https://github.com/weichsel/ZIPFoundation
e9420c2efba6f86d23f64f6363648c105785acb3 not-for-merge 'refs/pull/10/head' of https://github.com/weichsel/ZIPFoundation
80bf9962cdab5a215950e03376c6a26679a46bf4 not-for-merge 'refs/pull/10/merge' of https://github.com/weichsel/ZIPFoundation
a43be27d41abde7ca9c0830028ae0d5e45e24e97 not-for-merge 'refs/pull/100/head' of https://github.com/weichsel/ZIPFoundation
0c3c97e315e69e1792cdb40714eeae517d2881ab not-for-merge 'refs/pull/101/head' of https://github.com/weichsel/ZIPFoundation
913931f4a003857bd313e14f403947a92b094e5b not-for-merge 'refs/pull/104/head' of https://github.com/weichsel/ZIPFoundation
d3267ec5123cab21e2835810ae334a6e0058b60b not-for-merge 'refs/pull/105/head' of https://github.com/weichsel/ZIPFoundation
793b2cfaba3094f5c4836ede7e00e78fb46af948 not-for-merge 'refs/pull/107/head' of https://github.com/weichsel/ZIPFoundation
73a35c5a8babd83dd66ff8d4d1933220f638de6a not-for-merge 'refs/pull/110/head' of https://github.com/weichsel/ZIPFoundation
2d847ba2f6dbc7d3525b7ecf58819519e80bbbac not-for-merge 'refs/pull/111/head' of https://github.com/weichsel/ZIPFoundation
4ba2661549e034605bd032bd4a975736edefe865 not-for-merge 'refs/pull/117/head' of https://github.com/weichsel/ZIPFoundation
1a261639db4619bab5380ceacc0d708d19f15ed9 not-for-merge 'refs/pull/119/head' of https://github.com/weichsel/ZIPFoundation
2ea4cc8796d01483db6edf7799c0b3fe56b87864 not-for-merge 'refs/pull/125/head' of https://github.com/weichsel/ZIPFoundation
736683e523dcda069396ec1066fad5ce1fdd67d8 not-for-merge 'refs/pull/128/head' of https://github.com/weichsel/ZIPFoundation
026d483dd212b5e4044a52c07dc08091a942ce6e not-for-merge 'refs/pull/134/head' of https://github.com/weichsel/ZIPFoundation
eb67c28c2ba40d6de1764b4cd39dce03588f216d not-for-merge 'refs/pull/137/head' of https://github.com/weichsel/ZIPFoundation
e7f8f23114cf52f8a53c6898dedf6e1501211c98 not-for-merge 'refs/pull/138/head' of https://github.com/weichsel/ZIPFoundation
4a9fec7baf831de76e31d286b3ca8698642133d5 not-for-merge 'refs/pull/139/head' of https://github.com/weichsel/ZIPFoundation
b6ef2cf6e3449580d78228c998bbfd46d3a04803 not-for-merge 'refs/pull/14/head' of https://github.com/weichsel/ZIPFoundation
141d2e93184a85918e7338bf938508b2ec5550b3 not-for-merge 'refs/pull/141/head' of https://github.com/weichsel/ZIPFoundation
5d095ec0cb52de5b2ba46f9537a31829182a4f2a not-for-merge 'refs/pull/143/head' of https://github.com/weichsel/ZIPFoundation
3d18047f9db89947551d78a9305533a81091a442 not-for-merge 'refs/pull/145/head' of https://github.com/weichsel/ZIPFoundation
d90a5f99f79a60d697d9ddd509a7f23fedb9aa1d not-for-merge 'refs/pull/146/head' of https://github.com/weichsel/ZIPFoundation
87d3f79128222797204a235d54b8ce75d8cab04c not-for-merge 'refs/pull/149/head' of https://github.com/weichsel/ZIPFoundation
7c352ef594e292e14853b96f1c8135c18d541889 not-for-merge 'refs/pull/15/head' of https://github.com/weichsel/ZIPFoundation
2d678a64423ce41856c24f80a32cf1d691d9d912 not-for-merge 'refs/pull/15/merge' of https://github.com/weichsel/ZIPFoundation
4adec462243d0969807831089c298283ec0f19f9 not-for-merge 'refs/pull/152/head' of https://github.com/weichsel/ZIPFoundation
5f4946f484124fe9249d5ab71e62a2850b267ee8 not-for-merge 'refs/pull/153/head' of https://github.com/weichsel/ZIPFoundation
0034a5197bc0adffc76cffc8e817725b22e89066 not-for-merge 'refs/pull/154/head' of https://github.com/weichsel/ZIPFoundation
5c8f6a7993f33c5e46beef47f3182aeb21202f0a not-for-merge 'refs/pull/156/head' of https://github.com/weichsel/ZIPFoundation
502174141b22e6e0bcc6b66fea945bfc131b555a not-for-merge 'refs/pull/159/head' of https://github.com/weichsel/ZIPFoundation
7c352ef594e292e14853b96f1c8135c18d541889 not-for-merge 'refs/pull/16/head' of https://github.com/weichsel/ZIPFoundation
baf48ab9c171dc7a2ffc90963828322b42311d23 not-for-merge 'refs/pull/16/merge' of https://github.com/weichsel/ZIPFoundation
f4717860355d0b638dd36e7f4df8a39b3659ad0f not-for-merge 'refs/pull/160/head' of https://github.com/weichsel/ZIPFoundation
2a0e53203d2c5f2a1469a9918f9fd299b49e55fa not-for-merge 'refs/pull/160/merge' of https://github.com/weichsel/ZIPFoundation
ddc5df9905db4431c26ddd34e0008367793af3ee not-for-merge 'refs/pull/162/head' of https://github.com/weichsel/ZIPFoundation
d7a037153f79434da7f56e79fa723a506489ff4f not-for-merge 'refs/pull/169/head' of https://github.com/weichsel/ZIPFoundation
65b65e5a82d61d6d22dfa2c5ab57d7496ba82570 not-for-merge 'refs/pull/171/head' of https://github.com/weichsel/ZIPFoundation
01b4d418af14070e4a22ef3dd96fef5bf26e6d63 not-for-merge 'refs/pull/18/head' of https://github.com/weichsel/ZIPFoundation
3611a92cc71f5a04d10d97851fc57654db376dbf not-for-merge 'refs/pull/180/head' of https://github.com/weichsel/ZIPFoundation
3fcc281d83de361cc7673ac112b75b847c549b85 not-for-merge 'refs/pull/182/head' of https://github.com/weichsel/ZIPFoundation
4814bc033864b3acf68ea2861743429efe48562f not-for-merge 'refs/pull/183/head' of https://github.com/weichsel/ZIPFoundation
f491635852a9dc43f3c4dfab1405baf3d53da248 not-for-merge 'refs/pull/186/head' of https://github.com/weichsel/ZIPFoundation
dda2ccfe81c39600bb43125afd6e3d9157a112fb not-for-merge 'refs/pull/187/head' of https://github.com/weichsel/ZIPFoundation
a89744fdff43272a11c9a8326721fcfe30a74559 not-for-merge 'refs/pull/188/head' of https://github.com/weichsel/ZIPFoundation
f3cbad73ea3ec20ffc6f639090f0f68947f38e02 not-for-merge 'refs/pull/190/head' of https://github.com/weichsel/ZIPFoundation
1c17b140aadb122fc9d7ab470abe5acd872af401 not-for-merge 'refs/pull/192/head' of https://github.com/weichsel/ZIPFoundation
a132a76c5100f5552cbc5e4d0ea58e6843efc381 not-for-merge 'refs/pull/193/head' of https://github.com/weichsel/ZIPFoundation
f02efbfe865562bd55c46c9241ee323f4e47d794 not-for-merge 'refs/pull/196/head' of https://github.com/weichsel/ZIPFoundation
7a7eae70309389feb12f7ac363c40c0b9f2f18ee not-for-merge 'refs/pull/199/head' of https://github.com/weichsel/ZIPFoundation
0cc7afbc30ba18f6d7f62ceeb84ed6d046c8e392 not-for-merge 'refs/pull/200/head' of https://github.com/weichsel/ZIPFoundation
73b6199600baa4b6ad441400577bc477502b155b not-for-merge 'refs/pull/201/head' of https://github.com/weichsel/ZIPFoundation
0d664a367ddd44dca0a4e54d554bf4e44bd5a385 not-for-merge 'refs/pull/203/head' of https://github.com/weichsel/ZIPFoundation
eb12286be5fac98cdd9c7961f7eb8a466613c2be not-for-merge 'refs/pull/205/head' of https://github.com/weichsel/ZIPFoundation
6794180e07abf0f2f349e72ffe2fe37fc92b887d not-for-merge 'refs/pull/206/head' of https://github.com/weichsel/ZIPFoundation
28f7aaad0a1cc2b047644e7b1f1632b9552dbf80 not-for-merge 'refs/pull/208/head' of https://github.com/weichsel/ZIPFoundation
3596cfcfc9a393c72a1bec357dc68bc3806d8416 not-for-merge 'refs/pull/209/head' of https://github.com/weichsel/ZIPFoundation
698887ee09db0a2c10fb437b4e1a01bdf2fd7a9c not-for-merge 'refs/pull/210/head' of https://github.com/weichsel/ZIPFoundation
3c2ecb5d1c33015fd0e72f811ea7bd8ea5ada144 not-for-merge 'refs/pull/212/head' of https://github.com/weichsel/ZIPFoundation
5ee2a907baa1b7dda27582319d4e02653e8b1159 not-for-merge 'refs/pull/215/head' of https://github.com/weichsel/ZIPFoundation
02cd4a1113cc4e487e5f7cea9bd3e6d5782ac6d1 not-for-merge 'refs/pull/220/head' of https://github.com/weichsel/ZIPFoundation
4e6bc95f221c8c1b29e50650ff54e40d30e0adc1 not-for-merge 'refs/pull/223/head' of https://github.com/weichsel/ZIPFoundation
8c9d74ada68b5082f14ac1106b85f8f8aefe0bb7 not-for-merge 'refs/pull/227/head' of https://github.com/weichsel/ZIPFoundation
49f80265e66510fbd016cd70a5c791a55bd30cdd not-for-merge 'refs/pull/230/head' of https://github.com/weichsel/ZIPFoundation
b7bde1ac6ab0291e73ed89abe34107791eedb2b3 not-for-merge 'refs/pull/231/head' of https://github.com/weichsel/ZIPFoundation
f61b8651029beeea251be542c90807f3d1153e7e not-for-merge 'refs/pull/234/head' of https://github.com/weichsel/ZIPFoundation
7dd6f553cf067a367f91ab8e5af28df68ff58676 not-for-merge 'refs/pull/239/head' of https://github.com/weichsel/ZIPFoundation
d269179820091d4ac173a6a89f925a48068318fb not-for-merge 'refs/pull/24/head' of https://github.com/weichsel/ZIPFoundation
d25ff70398eafb3ebd7d81dfe7dfbedfb51c4e39 not-for-merge 'refs/pull/243/head' of https://github.com/weichsel/ZIPFoundation
6acdb421bd4d48c1a9dcd0a6563a3ff664215792 not-for-merge 'refs/pull/249/head' of https://github.com/weichsel/ZIPFoundation
c97765e4ebfeedc8e58b8055e9798f700dcbfe7d not-for-merge 'refs/pull/250/head' of https://github.com/weichsel/ZIPFoundation
6a4e9e21ade919b356bd8a603a8f0a1c25531da0 not-for-merge 'refs/pull/255/head' of https://github.com/weichsel/ZIPFoundation
154115ededac10d6d09ba33eb7127bbe08c3b510 not-for-merge 'refs/pull/256/head' of https://github.com/weichsel/ZIPFoundation
bce5c78265901cdee844b88594cedd8b6de8e4f7 not-for-merge 'refs/pull/26/head' of https://github.com/weichsel/ZIPFoundation
d7f3c1d628c1044e86bd9bce553b3fced517dcfd not-for-merge 'refs/pull/263/head' of https://github.com/weichsel/ZIPFoundation
f3c7d923c1a265bee6d17215cb1f7b3afc5993ab not-for-merge 'refs/pull/269/head' of https://github.com/weichsel/ZIPFoundation
68fae6484e5a8034c07307b82f671e2748c7bd30 not-for-merge 'refs/pull/27/head' of https://github.com/weichsel/ZIPFoundation
7ce63861211f61ddbff119ed1cb80518255425db not-for-merge 'refs/pull/270/head' of https://github.com/weichsel/ZIPFoundation
e629186eb49da715e1d515ad24dd83bcaaab5715 not-for-merge 'refs/pull/271/head' of https://github.com/weichsel/ZIPFoundation
af1746fd90fb5c9a5ab9ad9d4bdf9008dda289f8 not-for-merge 'refs/pull/275/head' of https://github.com/weichsel/ZIPFoundation
ad465ee2545392153a64c0976d6e59227d0c1c70 not-for-merge 'refs/pull/276/head' of https://github.com/weichsel/ZIPFoundation
dde21fa45839b289a461b459d8bca038b684db08 not-for-merge 'refs/pull/276/merge' of https://github.com/weichsel/ZIPFoundation
8db2f7a853d81a384781ef241786cc830eabf26f not-for-merge 'refs/pull/277/head' of https://github.com/weichsel/ZIPFoundation
4169b600084f80423b3227030bc6d38b9acfff9d not-for-merge 'refs/pull/278/head' of https://github.com/weichsel/ZIPFoundation
e504d6be035e4c3bf45c55e06eed39e7c4bc0f82 not-for-merge 'refs/pull/283/head' of https://github.com/weichsel/ZIPFoundation
b4eadfabec81d20f4fb97b14614a05377f84b2a6 not-for-merge 'refs/pull/289/head' of https://github.com/weichsel/ZIPFoundation
8caea03f308521e4fbf50214319ad5c3c8b7d023 not-for-merge 'refs/pull/295/head' of https://github.com/weichsel/ZIPFoundation
d273725661596d9f734982e6ea69593b51536c88 not-for-merge 'refs/pull/295/merge' of https://github.com/weichsel/ZIPFoundation
c2d9d73b37e74cbf814950a926adab8ebc7d431d not-for-merge 'refs/pull/297/head' of https://github.com/weichsel/ZIPFoundation
935a41207dbe5adb77d246d5c5de086615df3b0c not-for-merge 'refs/pull/297/merge' of https://github.com/weichsel/ZIPFoundation
ce4b18d8c6462c80ade30755f6732d537e26e685 not-for-merge 'refs/pull/299/head' of https://github.com/weichsel/ZIPFoundation
7d932ffc4b203268d5978a1758d4ee9c432fbd06 not-for-merge 'refs/pull/301/head' of https://github.com/weichsel/ZIPFoundation
d99f75ec5baae5690d76cd918db46682781b6946 not-for-merge 'refs/pull/304/head' of https://github.com/weichsel/ZIPFoundation
35d31a10b4835e7f4beee989bd4a915f2954ccba not-for-merge 'refs/pull/306/head' of https://github.com/weichsel/ZIPFoundation
62f8daddbd3d424c857755a39f9be1212590dc25 not-for-merge 'refs/pull/308/head' of https://github.com/weichsel/ZIPFoundation
e0850b401149b97fa1042e7c7bcbaf5dd57f998b not-for-merge 'refs/pull/308/merge' of https://github.com/weichsel/ZIPFoundation
6fe97cffe26097dc1d825e3185281b71d1bd741e not-for-merge 'refs/pull/31/head' of https://github.com/weichsel/ZIPFoundation
420874fbc8c36262e3eaa36afc1f01e7be4fa906 not-for-merge 'refs/pull/310/head' of https://github.com/weichsel/ZIPFoundation
7b8b9c9cb053ea7ac36fe78365b99dcde650d895 not-for-merge 'refs/pull/314/head' of https://github.com/weichsel/ZIPFoundation
a5f7263bfb174df9587291e808ce547f2249e95b not-for-merge 'refs/pull/319/head' of https://github.com/weichsel/ZIPFoundation
6bf3f3fa49b5b5af84c8570066baca317f9aed5d not-for-merge 'refs/pull/319/merge' of https://github.com/weichsel/ZIPFoundation
33f5ab729ea9e8e697feb70882f333ea5d8eb148 not-for-merge 'refs/pull/322/head' of https://github.com/weichsel/ZIPFoundation
dcea71ae6bffbf7de49e7d53b28ce74e12bfd43b not-for-merge 'refs/pull/323/head' of https://github.com/weichsel/ZIPFoundation
d737c6ba14e2c890c0f7088ad56923cc6010b38f not-for-merge 'refs/pull/325/head' of https://github.com/weichsel/ZIPFoundation
2938ae1b525d5089a69036fa6f290e4add660b54 not-for-merge 'refs/pull/328/head' of https://github.com/weichsel/ZIPFoundation
27abbfb642df92ef77137c846aff4c81f357cca3 not-for-merge 'refs/pull/328/merge' of https://github.com/weichsel/ZIPFoundation
ad927f58e377410c35ee1f4d1c78dc238320ea8b not-for-merge 'refs/pull/331/head' of https://github.com/weichsel/ZIPFoundation
e715253d6ef754147338097c1ad28337e6b7d813 not-for-merge 'refs/pull/332/head' of https://github.com/weichsel/ZIPFoundation
1f04cc7343e78a58e73e0eb2ad9f106aa177f727 not-for-merge 'refs/pull/333/head' of https://github.com/weichsel/ZIPFoundation
b0efe02264b5bac8a2bb65eec05d984af84ee542 not-for-merge 'refs/pull/333/merge' of https://github.com/weichsel/ZIPFoundation
464782ac63314b7cc5c49f65028ef79e4b859e76 not-for-merge 'refs/pull/334/head' of https://github.com/weichsel/ZIPFoundation
3e8c5586efd0c5105156a9b951d38067c559084c not-for-merge 'refs/pull/335/head' of https://github.com/weichsel/ZIPFoundation
88c63addf32cca759dd9acf4b8be878a7448dc90 not-for-merge 'refs/pull/337/head' of https://github.com/weichsel/ZIPFoundation
35fc1335c17596a291300f7e704f473caa7a7a3b not-for-merge 'refs/pull/337/merge' of https://github.com/weichsel/ZIPFoundation
c1ce2fb03473eee23f44d483f14ed39fe7141ff8 not-for-merge 'refs/pull/339/head' of https://github.com/weichsel/ZIPFoundation
e9d0bfe88331d56d55819c35a98b7ee8390f90d5 not-for-merge 'refs/pull/342/head' of https://github.com/weichsel/ZIPFoundation
e29b053268059cf28c9665d9dfec38d3b3f2b001 not-for-merge 'refs/pull/343/head' of https://github.com/weichsel/ZIPFoundation
6ffd997bab75a3354e6c5446fdff51fb5b7ccbfc not-for-merge 'refs/pull/344/head' of https://github.com/weichsel/ZIPFoundation
82a11218c20504d3be0233ebc6f88afb12f6b29d not-for-merge 'refs/pull/345/head' of https://github.com/weichsel/ZIPFoundation
6b696b6718480bb3d40624616493b9d847449d21 not-for-merge 'refs/pull/345/merge' of https://github.com/weichsel/ZIPFoundation
a3f3ce2fb62a161e9013483911c9911501d3c4a5 not-for-merge 'refs/pull/348/head' of https://github.com/weichsel/ZIPFoundation
7204c3c7784b5a4fc17111e1426e570423d81007 not-for-merge 'refs/pull/35/head' of https://github.com/weichsel/ZIPFoundation
74a25e73bfb7ee91ffa0d716fbbabc8ec3f29461 not-for-merge 'refs/pull/350/head' of https://github.com/weichsel/ZIPFoundation
e3d9c723e186f812c81b53cc1a604de8f8ad6807 not-for-merge 'refs/pull/350/merge' of https://github.com/weichsel/ZIPFoundation
be91127310c95fe26148893024dc3f751b04ccb5 not-for-merge 'refs/pull/351/head' of https://github.com/weichsel/ZIPFoundation
62dba9b0b29718afe036dd6369afd9ecd6fe68ad not-for-merge 'refs/pull/353/head' of https://github.com/weichsel/ZIPFoundation
4064cb73f9501496d3d33774444cdb761c2aec10 not-for-merge 'refs/pull/353/merge' of https://github.com/weichsel/ZIPFoundation
0de55e41439c4c0cb2114f27bdaf8eb28d6f6738 not-for-merge 'refs/pull/358/head' of https://github.com/weichsel/ZIPFoundation
234f9019fc85880e95c15420bf33edbfca74f9b3 not-for-merge 'refs/pull/358/merge' of https://github.com/weichsel/ZIPFoundation
91d01cf7afacf118df1c15c2b45320c0681733de not-for-merge 'refs/pull/359/head' of https://github.com/weichsel/ZIPFoundation
bcbd32475e364c12f10b194339b1611c43a427ed not-for-merge 'refs/pull/359/merge' of https://github.com/weichsel/ZIPFoundation
a7c062d5c6f292f4b74daadaddbdf80e89431d85 not-for-merge 'refs/pull/361/head' of https://github.com/weichsel/ZIPFoundation
07d592a562b06265c34f425dd98b907e4741b615 not-for-merge 'refs/pull/361/merge' of https://github.com/weichsel/ZIPFoundation
4266c862157f2efc1ac62041757b41f734425214 not-for-merge 'refs/pull/39/head' of https://github.com/weichsel/ZIPFoundation
d77342b26af805703cec4bda528766a7f1061957 not-for-merge 'refs/pull/41/head' of https://github.com/weichsel/ZIPFoundation
787ab24c773cccd6d95e6db56ea129842bd1a28b not-for-merge 'refs/pull/45/head' of https://github.com/weichsel/ZIPFoundation
ac7cef762fff5e9ac9d476797292e20e761f86aa not-for-merge 'refs/pull/46/head' of https://github.com/weichsel/ZIPFoundation
dd465babaf6265d6376b72d84855ed4c6dc25f0e not-for-merge 'refs/pull/48/head' of https://github.com/weichsel/ZIPFoundation
e3f0e24fb70ca4dd9297e31f7f2d4d14c5743ab9 not-for-merge 'refs/pull/5/head' of https://github.com/weichsel/ZIPFoundation
5c33a9a02ef2cde0725eeff5973375b47c488990 not-for-merge 'refs/pull/53/head' of https://github.com/weichsel/ZIPFoundation
ffd340cf6b3c2df87f0500829cd8179abf24ac30 not-for-merge 'refs/pull/56/head' of https://github.com/weichsel/ZIPFoundation
a2f8fe3b9344b3073ba76a774aa4fa7ce5d91544 not-for-merge 'refs/pull/60/head' of https://github.com/weichsel/ZIPFoundation
a54b8d082253d2c0cc41a1a677eac5f1809697c7 not-for-merge 'refs/pull/68/head' of https://github.com/weichsel/ZIPFoundation
2d2509bedfef4a75ef602a2d110939d7d67e44d1 not-for-merge 'refs/pull/7/head' of https://github.com/weichsel/ZIPFoundation
9151c7efd1c2148004174eb596f66be95bcf199b not-for-merge 'refs/pull/76/head' of https://github.com/weichsel/ZIPFoundation
cea92162b7da61894728d2f4814fc176c9b7f027 not-for-merge 'refs/pull/76/merge' of https://github.com/weichsel/ZIPFoundation
8792ff87761ed304ee5ddcad2adc42ddf8fed4fa not-for-merge 'refs/pull/78/head' of https://github.com/weichsel/ZIPFoundation
2be533724388bb3243709fbf893fe2341406dee0 not-for-merge 'refs/pull/79/head' of https://github.com/weichsel/ZIPFoundation
b931b3a9ac917c4d27657ebc7c6830559d767d30 not-for-merge 'refs/pull/81/head' of https://github.com/weichsel/ZIPFoundation
f5ecf3aa76d9ee0da266f08e821510e7f5fbae2c not-for-merge 'refs/pull/83/head' of https://github.com/weichsel/ZIPFoundation
d96cabcab4b430b34eb56294ba9f3fbc6ed08073 not-for-merge 'refs/pull/85/head' of https://github.com/weichsel/ZIPFoundation
116ba9a7ed3054f69521f2b00ea3e813b69cf5d7 not-for-merge 'refs/pull/86/head' of https://github.com/weichsel/ZIPFoundation
70f1e396f5d24ced50e46ea112675e48f73adc35 not-for-merge 'refs/pull/87/head' of https://github.com/weichsel/ZIPFoundation
31cae3ae922deb15a9e25534bbbf6d61a27bffba not-for-merge 'refs/pull/9/head' of https://github.com/weichsel/ZIPFoundation
ff744f99acc5ff0d07156624db6f9f3c0974cf65 not-for-merge 'refs/pull/91/head' of https://github.com/weichsel/ZIPFoundation
3067b4c73825f940d16fb3f746dbe45b3e4927e0 not-for-merge 'refs/pull/92/head' of https://github.com/weichsel/ZIPFoundation
bd48f125843f46682e94c1d98a41d9e9b0789951 not-for-merge 'refs/pull/95/head' of https://github.com/weichsel/ZIPFoundation
c2b8c6b40ea963dd86517b20ccbd44f1b7aa6dfa not-for-merge 'refs/pull/96/head' of https://github.com/weichsel/ZIPFoundation
682694c1df7d7dc5e43789609cce666f9eaf2d9f not-for-merge 'refs/pull/99/head' of https://github.com/weichsel/ZIPFoundation
1b14c52575fd62566793281110124a737c56f0ff not-for-merge tag '0.9.0' of https://github.com/weichsel/ZIPFoundation
d3a5baac97097e40f4e2af4548ae7c19f9d5ea75 not-for-merge tag '0.9.1' of https://github.com/weichsel/ZIPFoundation
3f38d518c5e41f1cf25ff6a1d28c46db5e79a0b9 not-for-merge tag '0.9.10' of https://github.com/weichsel/ZIPFoundation
ec32d62d412578542c0ffb7a6ce34d3e64b43b94 not-for-merge tag '0.9.11' of https://github.com/weichsel/ZIPFoundation
cf10bbff6ac3b873e97b36b9784c79866a051a8e not-for-merge tag '0.9.12' of https://github.com/weichsel/ZIPFoundation
855df7f61cde092adff08dd1b6509285d791c748 not-for-merge tag '0.9.13' of https://github.com/weichsel/ZIPFoundation
caec45914e701c2bff612432b417a7baa7b4422b not-for-merge tag '0.9.14' of https://github.com/weichsel/ZIPFoundation
e690f79eca896e830b46087718d67f94f9770180 not-for-merge tag '0.9.15' of https://github.com/weichsel/ZIPFoundation
3c52849f88e6c376322ecd5d9a7193e202d7d35b not-for-merge tag '0.9.16' of https://github.com/weichsel/ZIPFoundation
a3f5c2bae0f04b0bce9ef3c4ba6bd1031a0564c4 not-for-merge tag '0.9.17' of https://github.com/weichsel/ZIPFoundation
f16552494456ce96b45fcbf60e8e4f7bd292195e not-for-merge tag '0.9.18' of https://github.com/weichsel/ZIPFoundation
02b6abe5f6eef7e3cbd5f247c5cc24e246efcfe0 not-for-merge tag '0.9.19' of https://github.com/weichsel/ZIPFoundation
fa1fdfd7b14ec345f749b8e455a2e6bcd114abf4 not-for-merge tag '0.9.2' of https://github.com/weichsel/ZIPFoundation
4c9cf98fb4c66899178cd7e854b8f140384d7615 not-for-merge tag '0.9.3' of https://github.com/weichsel/ZIPFoundation
c4673da9cf86b34b12b5c43d3ed11e1e4fc4486d not-for-merge tag '0.9.4' of https://github.com/weichsel/ZIPFoundation
937d152a0ecec51b80ceead2358a37f0767673f4 not-for-merge tag '0.9.5' of https://github.com/weichsel/ZIPFoundation
b5c53bef2deb7b20659b03b1223f0942599e5c41 not-for-merge tag '0.9.6' of https://github.com/weichsel/ZIPFoundation
12bc71d67c5208c99ca850055e9c6a61df2ff695 not-for-merge tag '0.9.7' of https://github.com/weichsel/ZIPFoundation
d9bb1c47984baa035e3960338551d9b0b7128e79 not-for-merge tag '0.9.8' of https://github.com/weichsel/ZIPFoundation
edbeaa39b426e54702194b0a601342322f01e400 not-for-merge tag '0.9.9' of https://github.com/weichsel/ZIPFoundation

View File

@@ -0,0 +1 @@
ref: refs/heads/development

View File

@@ -0,0 +1,10 @@
[core]
repositoryformatversion = 0
filemode = true
bare = true
ignorecase = true
precomposeunicode = true
[remote "origin"]
url = https://github.com/weichsel/ZIPFoundation
fetch = +refs/*:refs/*
mirror = true

View File

@@ -0,0 +1 @@
Unnamed repository; edit this file 'description' to name the repository.

View File

@@ -0,0 +1,15 @@
#!/bin/sh
#
# An example hook script to check the commit log message taken by
# applypatch from an e-mail message.
#
# The hook should exit with non-zero status after issuing an
# appropriate message if it wants to stop the commit. The hook is
# allowed to edit the commit message file.
#
# To enable this hook, rename this file to "applypatch-msg".
. git-sh-setup
commitmsg="$(git rev-parse --git-path hooks/commit-msg)"
test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"}
:

View File

@@ -0,0 +1,24 @@
#!/bin/sh
#
# An example hook script to check the commit log message.
# Called by "git commit" with one argument, the name of the file
# that has the commit message. The hook should exit with non-zero
# status after issuing an appropriate message if it wants to stop the
# commit. The hook is allowed to edit the commit message file.
#
# To enable this hook, rename this file to "commit-msg".
# Uncomment the below to add a Signed-off-by line to the message.
# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
# hook is more suited to it.
#
# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
# This example catches duplicate Signed-off-by lines.
test "" = "$(grep '^Signed-off-by: ' "$1" |
sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
echo >&2 Duplicate Signed-off-by lines.
exit 1
}

View File

@@ -0,0 +1,174 @@
#!/usr/bin/perl
use strict;
use warnings;
use IPC::Open2;
# An example hook script to integrate Watchman
# (https://facebook.github.io/watchman/) with git to speed up detecting
# new and modified files.
#
# The hook is passed a version (currently 2) and last update token
# formatted as a string and outputs to stdout a new update token and
# all files that have been modified since the update token. Paths must
# be relative to the root of the working tree and separated by a single NUL.
#
# To enable this hook, rename this file to "query-watchman" and set
# 'git config core.fsmonitor .git/hooks/query-watchman'
#
my ($version, $last_update_token) = @ARGV;
# Uncomment for debugging
# print STDERR "$0 $version $last_update_token\n";
# Check the hook interface version
if ($version ne 2) {
die "Unsupported query-fsmonitor hook version '$version'.\n" .
"Falling back to scanning...\n";
}
my $git_work_tree = get_working_dir();
my $retry = 1;
my $json_pkg;
eval {
require JSON::XS;
$json_pkg = "JSON::XS";
1;
} or do {
require JSON::PP;
$json_pkg = "JSON::PP";
};
launch_watchman();
sub launch_watchman {
my $o = watchman_query();
if (is_work_tree_watched($o)) {
output_result($o->{clock}, @{$o->{files}});
}
}
sub output_result {
my ($clockid, @files) = @_;
# Uncomment for debugging watchman output
# open (my $fh, ">", ".git/watchman-output.out");
# binmode $fh, ":utf8";
# print $fh "$clockid\n@files\n";
# close $fh;
binmode STDOUT, ":utf8";
print $clockid;
print "\0";
local $, = "\0";
print @files;
}
sub watchman_clock {
my $response = qx/watchman clock "$git_work_tree"/;
die "Failed to get clock id on '$git_work_tree'.\n" .
"Falling back to scanning...\n" if $? != 0;
return $json_pkg->new->utf8->decode($response);
}
sub watchman_query {
my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty')
or die "open2() failed: $!\n" .
"Falling back to scanning...\n";
# In the query expression below we're asking for names of files that
# changed since $last_update_token but not from the .git folder.
#
# To accomplish this, we're using the "since" generator to use the
# recency index to select candidate nodes and "fields" to limit the
# output to file names only. Then we're using the "expression" term to
# further constrain the results.
my $last_update_line = "";
if (substr($last_update_token, 0, 1) eq "c") {
$last_update_token = "\"$last_update_token\"";
$last_update_line = qq[\n"since": $last_update_token,];
}
my $query = <<" END";
["query", "$git_work_tree", {$last_update_line
"fields": ["name"],
"expression": ["not", ["dirname", ".git"]]
}]
END
# Uncomment for debugging the watchman query
# open (my $fh, ">", ".git/watchman-query.json");
# print $fh $query;
# close $fh;
print CHLD_IN $query;
close CHLD_IN;
my $response = do {local $/; <CHLD_OUT>};
# Uncomment for debugging the watch response
# open ($fh, ">", ".git/watchman-response.json");
# print $fh $response;
# close $fh;
die "Watchman: command returned no output.\n" .
"Falling back to scanning...\n" if $response eq "";
die "Watchman: command returned invalid output: $response\n" .
"Falling back to scanning...\n" unless $response =~ /^\{/;
return $json_pkg->new->utf8->decode($response);
}
sub is_work_tree_watched {
my ($output) = @_;
my $error = $output->{error};
if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) {
$retry--;
my $response = qx/watchman watch "$git_work_tree"/;
die "Failed to make watchman watch '$git_work_tree'.\n" .
"Falling back to scanning...\n" if $? != 0;
$output = $json_pkg->new->utf8->decode($response);
$error = $output->{error};
die "Watchman: $error.\n" .
"Falling back to scanning...\n" if $error;
# Uncomment for debugging watchman output
# open (my $fh, ">", ".git/watchman-output.out");
# close $fh;
# Watchman will always return all files on the first query so
# return the fast "everything is dirty" flag to git and do the
# Watchman query just to get it over with now so we won't pay
# the cost in git to look up each individual file.
my $o = watchman_clock();
$error = $output->{error};
die "Watchman: $error.\n" .
"Falling back to scanning...\n" if $error;
output_result($o->{clock}, ("/"));
$last_update_token = $o->{clock};
eval { launch_watchman() };
return 0;
}
die "Watchman: $error.\n" .
"Falling back to scanning...\n" if $error;
return 1;
}
sub get_working_dir {
my $working_dir;
if ($^O =~ 'msys' || $^O =~ 'cygwin') {
$working_dir = Win32::GetCwd();
$working_dir =~ tr/\\/\//;
} else {
require Cwd;
$working_dir = Cwd::cwd();
}
return $working_dir;
}

View File

@@ -0,0 +1,8 @@
#!/bin/sh
#
# An example hook script to prepare a packed repository for use over
# dumb transports.
#
# To enable this hook, rename this file to "post-update".
exec git update-server-info

View File

@@ -0,0 +1,14 @@
#!/bin/sh
#
# An example hook script to verify what is about to be committed
# by applypatch from an e-mail message.
#
# The hook should exit with non-zero status after issuing an
# appropriate message if it wants to stop the commit.
#
# To enable this hook, rename this file to "pre-applypatch".
. git-sh-setup
precommit="$(git rev-parse --git-path hooks/pre-commit)"
test -x "$precommit" && exec "$precommit" ${1+"$@"}
:

View File

@@ -0,0 +1,49 @@
#!/bin/sh
#
# An example hook script to verify what is about to be committed.
# Called by "git commit" with no arguments. The hook should
# exit with non-zero status after issuing an appropriate message if
# it wants to stop the commit.
#
# To enable this hook, rename this file to "pre-commit".
if git rev-parse --verify HEAD >/dev/null 2>&1
then
against=HEAD
else
# Initial commit: diff against an empty tree object
against=$(git hash-object -t tree /dev/null)
fi
# If you want to allow non-ASCII filenames set this variable to true.
allownonascii=$(git config --type=bool hooks.allownonascii)
# Redirect output to stderr.
exec 1>&2
# Cross platform projects tend to avoid non-ASCII filenames; prevent
# them from being added to the repository. We exploit the fact that the
# printable range starts at the space character and ends with tilde.
if [ "$allownonascii" != "true" ] &&
# Note that the use of brackets around a tr range is ok here, (it's
# even required, for portability to Solaris 10's /usr/bin/tr), since
# the square bracket bytes happen to fall in the designated range.
test $(git diff --cached --name-only --diff-filter=A -z $against |
LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
then
cat <<\EOF
Error: Attempt to add a non-ASCII file name.
This can cause problems if you want to work with people on other platforms.
To be portable it is advisable to rename the file.
If you know what you are doing you can disable this check using:
git config hooks.allownonascii true
EOF
exit 1
fi
# If there are whitespace errors, print the offending file names and fail.
exec git diff-index --check --cached $against --

View File

@@ -0,0 +1,13 @@
#!/bin/sh
#
# An example hook script to verify what is about to be committed.
# Called by "git merge" with no arguments. The hook should
# exit with non-zero status after issuing an appropriate message to
# stderr if it wants to stop the merge commit.
#
# To enable this hook, rename this file to "pre-merge-commit".
. git-sh-setup
test -x "$GIT_DIR/hooks/pre-commit" &&
exec "$GIT_DIR/hooks/pre-commit"
:

View File

@@ -0,0 +1,53 @@
#!/bin/sh
# An example hook script to verify what is about to be pushed. Called by "git
# push" after it has checked the remote status, but before anything has been
# pushed. If this script exits with a non-zero status nothing will be pushed.
#
# This hook is called with the following parameters:
#
# $1 -- Name of the remote to which the push is being done
# $2 -- URL to which the push is being done
#
# If pushing without using a named remote those arguments will be equal.
#
# Information about the commits which are being pushed is supplied as lines to
# the standard input in the form:
#
# <local ref> <local oid> <remote ref> <remote oid>
#
# This sample shows how to prevent push of commits where the log message starts
# with "WIP" (work in progress).
remote="$1"
url="$2"
zero=$(git hash-object --stdin </dev/null | tr '[0-9a-f]' '0')
while read local_ref local_oid remote_ref remote_oid
do
if test "$local_oid" = "$zero"
then
# Handle delete
:
else
if test "$remote_oid" = "$zero"
then
# New branch, examine all commits
range="$local_oid"
else
# Update to existing branch, examine new commits
range="$remote_oid..$local_oid"
fi
# Check for WIP commit
commit=$(git rev-list -n 1 --grep '^WIP' "$range")
if test -n "$commit"
then
echo >&2 "Found WIP commit in $local_ref, not pushing"
exit 1
fi
fi
done
exit 0

View File

@@ -0,0 +1,169 @@
#!/bin/sh
#
# Copyright (c) 2006, 2008 Junio C Hamano
#
# The "pre-rebase" hook is run just before "git rebase" starts doing
# its job, and can prevent the command from running by exiting with
# non-zero status.
#
# The hook is called with the following parameters:
#
# $1 -- the upstream the series was forked from.
# $2 -- the branch being rebased (or empty when rebasing the current branch).
#
# This sample shows how to prevent topic branches that are already
# merged to 'next' branch from getting rebased, because allowing it
# would result in rebasing already published history.
publish=next
basebranch="$1"
if test "$#" = 2
then
topic="refs/heads/$2"
else
topic=`git symbolic-ref HEAD` ||
exit 0 ;# we do not interrupt rebasing detached HEAD
fi
case "$topic" in
refs/heads/??/*)
;;
*)
exit 0 ;# we do not interrupt others.
;;
esac
# Now we are dealing with a topic branch being rebased
# on top of master. Is it OK to rebase it?
# Does the topic really exist?
git show-ref -q "$topic" || {
echo >&2 "No such branch $topic"
exit 1
}
# Is topic fully merged to master?
not_in_master=`git rev-list --pretty=oneline ^master "$topic"`
if test -z "$not_in_master"
then
echo >&2 "$topic is fully merged to master; better remove it."
exit 1 ;# we could allow it, but there is no point.
fi
# Is topic ever merged to next? If so you should not be rebasing it.
only_next_1=`git rev-list ^master "^$topic" ${publish} | sort`
only_next_2=`git rev-list ^master ${publish} | sort`
if test "$only_next_1" = "$only_next_2"
then
not_in_topic=`git rev-list "^$topic" master`
if test -z "$not_in_topic"
then
echo >&2 "$topic is already up to date with master"
exit 1 ;# we could allow it, but there is no point.
else
exit 0
fi
else
not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"`
/usr/bin/perl -e '
my $topic = $ARGV[0];
my $msg = "* $topic has commits already merged to public branch:\n";
my (%not_in_next) = map {
/^([0-9a-f]+) /;
($1 => 1);
} split(/\n/, $ARGV[1]);
for my $elem (map {
/^([0-9a-f]+) (.*)$/;
[$1 => $2];
} split(/\n/, $ARGV[2])) {
if (!exists $not_in_next{$elem->[0]}) {
if ($msg) {
print STDERR $msg;
undef $msg;
}
print STDERR " $elem->[1]\n";
}
}
' "$topic" "$not_in_next" "$not_in_master"
exit 1
fi
<<\DOC_END
This sample hook safeguards topic branches that have been
published from being rewound.
The workflow assumed here is:
* Once a topic branch forks from "master", "master" is never
merged into it again (either directly or indirectly).
* Once a topic branch is fully cooked and merged into "master",
it is deleted. If you need to build on top of it to correct
earlier mistakes, a new topic branch is created by forking at
the tip of the "master". This is not strictly necessary, but
it makes it easier to keep your history simple.
* Whenever you need to test or publish your changes to topic
branches, merge them into "next" branch.
The script, being an example, hardcodes the publish branch name
to be "next", but it is trivial to make it configurable via
$GIT_DIR/config mechanism.
With this workflow, you would want to know:
(1) ... if a topic branch has ever been merged to "next". Young
topic branches can have stupid mistakes you would rather
clean up before publishing, and things that have not been
merged into other branches can be easily rebased without
affecting other people. But once it is published, you would
not want to rewind it.
(2) ... if a topic branch has been fully merged to "master".
Then you can delete it. More importantly, you should not
build on top of it -- other people may already want to
change things related to the topic as patches against your
"master", so if you need further changes, it is better to
fork the topic (perhaps with the same name) afresh from the
tip of "master".
Let's look at this example:
o---o---o---o---o---o---o---o---o---o "next"
/ / / /
/ a---a---b A / /
/ / / /
/ / c---c---c---c B /
/ / / \ /
/ / / b---b C \ /
/ / / / \ /
---o---o---o---o---o---o---o---o---o---o---o "master"
A, B and C are topic branches.
* A has one fix since it was merged up to "next".
* B has finished. It has been fully merged up to "master" and "next",
and is ready to be deleted.
* C has not merged to "next" at all.
We would want to allow C to be rebased, refuse A, and encourage
B to be deleted.
To compute (1):
git rev-list ^master ^topic next
git rev-list ^master next
if these match, topic has not merged in next at all.
To compute (2):
git rev-list master..topic
if this is empty, it is fully merged to "master".
DOC_END

View File

@@ -0,0 +1,24 @@
#!/bin/sh
#
# An example hook script to make use of push options.
# The example simply echoes all push options that start with 'echoback='
# and rejects all pushes when the "reject" push option is used.
#
# To enable this hook, rename this file to "pre-receive".
if test -n "$GIT_PUSH_OPTION_COUNT"
then
i=0
while test "$i" -lt "$GIT_PUSH_OPTION_COUNT"
do
eval "value=\$GIT_PUSH_OPTION_$i"
case "$value" in
echoback=*)
echo "echo from the pre-receive-hook: ${value#*=}" >&2
;;
reject)
exit 1
esac
i=$((i + 1))
done
fi

View File

@@ -0,0 +1,42 @@
#!/bin/sh
#
# An example hook script to prepare the commit log message.
# Called by "git commit" with the name of the file that has the
# commit message, followed by the description of the commit
# message's source. The hook's purpose is to edit the commit
# message file. If the hook fails with a non-zero status,
# the commit is aborted.
#
# To enable this hook, rename this file to "prepare-commit-msg".
# This hook includes three examples. The first one removes the
# "# Please enter the commit message..." help message.
#
# The second includes the output of "git diff --name-status -r"
# into the message, just before the "git status" output. It is
# commented because it doesn't cope with --amend or with squashed
# commits.
#
# The third example adds a Signed-off-by line to the message, that can
# still be edited. This is rarely a good idea.
COMMIT_MSG_FILE=$1
COMMIT_SOURCE=$2
SHA1=$3
/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE"
# case "$COMMIT_SOURCE,$SHA1" in
# ,|template,)
# /usr/bin/perl -i.bak -pe '
# print "\n" . `git diff --cached --name-status -r`
# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;;
# *) ;;
# esac
# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE"
# if test -z "$COMMIT_SOURCE"
# then
# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE"
# fi

View File

@@ -0,0 +1,78 @@
#!/bin/sh
# An example hook script to update a checked-out tree on a git push.
#
# This hook is invoked by git-receive-pack(1) when it reacts to git
# push and updates reference(s) in its repository, and when the push
# tries to update the branch that is currently checked out and the
# receive.denyCurrentBranch configuration variable is set to
# updateInstead.
#
# By default, such a push is refused if the working tree and the index
# of the remote repository has any difference from the currently
# checked out commit; when both the working tree and the index match
# the current commit, they are updated to match the newly pushed tip
# of the branch. This hook is to be used to override the default
# behaviour; however the code below reimplements the default behaviour
# as a starting point for convenient modification.
#
# The hook receives the commit with which the tip of the current
# branch is going to be updated:
commit=$1
# It can exit with a non-zero status to refuse the push (when it does
# so, it must not modify the index or the working tree).
die () {
echo >&2 "$*"
exit 1
}
# Or it can make any necessary changes to the working tree and to the
# index to bring them to the desired state when the tip of the current
# branch is updated to the new commit, and exit with a zero status.
#
# For example, the hook can simply run git read-tree -u -m HEAD "$1"
# in order to emulate git fetch that is run in the reverse direction
# with git push, as the two-tree form of git read-tree -u -m is
# essentially the same as git switch or git checkout that switches
# branches while keeping the local changes in the working tree that do
# not interfere with the difference between the branches.
# The below is a more-or-less exact translation to shell of the C code
# for the default behaviour for git's push-to-checkout hook defined in
# the push_to_deploy() function in builtin/receive-pack.c.
#
# Note that the hook will be executed from the repository directory,
# not from the working tree, so if you want to perform operations on
# the working tree, you will have to adapt your code accordingly, e.g.
# by adding "cd .." or using relative paths.
if ! git update-index -q --ignore-submodules --refresh
then
die "Up-to-date check failed"
fi
if ! git diff-files --quiet --ignore-submodules --
then
die "Working directory has unstaged changes"
fi
# This is a rough translation of:
#
# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX
if git cat-file -e HEAD 2>/dev/null
then
head=HEAD
else
head=$(git hash-object -t tree --stdin </dev/null)
fi
if ! git diff-index --quiet --cached --ignore-submodules $head --
then
die "Working directory has staged changes"
fi
if ! git read-tree -u -m "$commit"
then
die "Could not update working tree to new HEAD"
fi

View File

@@ -0,0 +1,128 @@
#!/bin/sh
#
# An example hook script to block unannotated tags from entering.
# Called by "git receive-pack" with arguments: refname sha1-old sha1-new
#
# To enable this hook, rename this file to "update".
#
# Config
# ------
# hooks.allowunannotated
# This boolean sets whether unannotated tags will be allowed into the
# repository. By default they won't be.
# hooks.allowdeletetag
# This boolean sets whether deleting tags will be allowed in the
# repository. By default they won't be.
# hooks.allowmodifytag
# This boolean sets whether a tag may be modified after creation. By default
# it won't be.
# hooks.allowdeletebranch
# This boolean sets whether deleting branches will be allowed in the
# repository. By default they won't be.
# hooks.denycreatebranch
# This boolean sets whether remotely creating branches will be denied
# in the repository. By default this is allowed.
#
# --- Command line
refname="$1"
oldrev="$2"
newrev="$3"
# --- Safety check
if [ -z "$GIT_DIR" ]; then
echo "Don't run this script from the command line." >&2
echo " (if you want, you could supply GIT_DIR then run" >&2
echo " $0 <ref> <oldrev> <newrev>)" >&2
exit 1
fi
if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
echo "usage: $0 <ref> <oldrev> <newrev>" >&2
exit 1
fi
# --- Config
allowunannotated=$(git config --type=bool hooks.allowunannotated)
allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch)
denycreatebranch=$(git config --type=bool hooks.denycreatebranch)
allowdeletetag=$(git config --type=bool hooks.allowdeletetag)
allowmodifytag=$(git config --type=bool hooks.allowmodifytag)
# check for no description
projectdesc=$(sed -e '1q' "$GIT_DIR/description")
case "$projectdesc" in
"Unnamed repository"* | "")
echo "*** Project description file hasn't been set" >&2
exit 1
;;
esac
# --- Check types
# if $newrev is 0000...0000, it's a commit to delete a ref.
zero=$(git hash-object --stdin </dev/null | tr '[0-9a-f]' '0')
if [ "$newrev" = "$zero" ]; then
newrev_type=delete
else
newrev_type=$(git cat-file -t $newrev)
fi
case "$refname","$newrev_type" in
refs/tags/*,commit)
# un-annotated tag
short_refname=${refname##refs/tags/}
if [ "$allowunannotated" != "true" ]; then
echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
exit 1
fi
;;
refs/tags/*,delete)
# delete tag
if [ "$allowdeletetag" != "true" ]; then
echo "*** Deleting a tag is not allowed in this repository" >&2
exit 1
fi
;;
refs/tags/*,tag)
# annotated tag
if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1
then
echo "*** Tag '$refname' already exists." >&2
echo "*** Modifying a tag is not allowed in this repository." >&2
exit 1
fi
;;
refs/heads/*,commit)
# branch
if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then
echo "*** Creating a branch is not allowed in this repository" >&2
exit 1
fi
;;
refs/heads/*,delete)
# delete branch
if [ "$allowdeletebranch" != "true" ]; then
echo "*** Deleting a branch is not allowed in this repository" >&2
exit 1
fi
;;
refs/remotes/*,commit)
# tracking branch
;;
refs/remotes/*,delete)
# delete tracking branch
if [ "$allowdeletebranch" != "true" ]; then
echo "*** Deleting a tracking branch is not allowed in this repository" >&2
exit 1
fi
;;
*)
# Anything else (is there anything else?)
echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
exit 1
;;
esac
# --- Finished
exit 0

View File

@@ -0,0 +1,6 @@
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~

View File

@@ -0,0 +1,188 @@
# pack-refs with: peeled fully-peeled sorted
e9b1917bd4d7d050e0ff4ec157b5d6e253c84385 refs/heads/development
82a11218c20504d3be0233ebc6f88afb12f6b29d refs/heads/feature/swift6
02b6abe5f6eef7e3cbd5f247c5cc24e246efcfe0 refs/heads/main
1de296878230ca510dbfab5aa8796628aeb71248 refs/pull/1/head
e9420c2efba6f86d23f64f6363648c105785acb3 refs/pull/10/head
80bf9962cdab5a215950e03376c6a26679a46bf4 refs/pull/10/merge
a43be27d41abde7ca9c0830028ae0d5e45e24e97 refs/pull/100/head
0c3c97e315e69e1792cdb40714eeae517d2881ab refs/pull/101/head
913931f4a003857bd313e14f403947a92b094e5b refs/pull/104/head
d3267ec5123cab21e2835810ae334a6e0058b60b refs/pull/105/head
793b2cfaba3094f5c4836ede7e00e78fb46af948 refs/pull/107/head
73a35c5a8babd83dd66ff8d4d1933220f638de6a refs/pull/110/head
2d847ba2f6dbc7d3525b7ecf58819519e80bbbac refs/pull/111/head
4ba2661549e034605bd032bd4a975736edefe865 refs/pull/117/head
1a261639db4619bab5380ceacc0d708d19f15ed9 refs/pull/119/head
2ea4cc8796d01483db6edf7799c0b3fe56b87864 refs/pull/125/head
736683e523dcda069396ec1066fad5ce1fdd67d8 refs/pull/128/head
026d483dd212b5e4044a52c07dc08091a942ce6e refs/pull/134/head
eb67c28c2ba40d6de1764b4cd39dce03588f216d refs/pull/137/head
e7f8f23114cf52f8a53c6898dedf6e1501211c98 refs/pull/138/head
4a9fec7baf831de76e31d286b3ca8698642133d5 refs/pull/139/head
b6ef2cf6e3449580d78228c998bbfd46d3a04803 refs/pull/14/head
141d2e93184a85918e7338bf938508b2ec5550b3 refs/pull/141/head
5d095ec0cb52de5b2ba46f9537a31829182a4f2a refs/pull/143/head
3d18047f9db89947551d78a9305533a81091a442 refs/pull/145/head
d90a5f99f79a60d697d9ddd509a7f23fedb9aa1d refs/pull/146/head
87d3f79128222797204a235d54b8ce75d8cab04c refs/pull/149/head
7c352ef594e292e14853b96f1c8135c18d541889 refs/pull/15/head
2d678a64423ce41856c24f80a32cf1d691d9d912 refs/pull/15/merge
4adec462243d0969807831089c298283ec0f19f9 refs/pull/152/head
5f4946f484124fe9249d5ab71e62a2850b267ee8 refs/pull/153/head
0034a5197bc0adffc76cffc8e817725b22e89066 refs/pull/154/head
5c8f6a7993f33c5e46beef47f3182aeb21202f0a refs/pull/156/head
502174141b22e6e0bcc6b66fea945bfc131b555a refs/pull/159/head
7c352ef594e292e14853b96f1c8135c18d541889 refs/pull/16/head
baf48ab9c171dc7a2ffc90963828322b42311d23 refs/pull/16/merge
f4717860355d0b638dd36e7f4df8a39b3659ad0f refs/pull/160/head
2a0e53203d2c5f2a1469a9918f9fd299b49e55fa refs/pull/160/merge
ddc5df9905db4431c26ddd34e0008367793af3ee refs/pull/162/head
d7a037153f79434da7f56e79fa723a506489ff4f refs/pull/169/head
65b65e5a82d61d6d22dfa2c5ab57d7496ba82570 refs/pull/171/head
01b4d418af14070e4a22ef3dd96fef5bf26e6d63 refs/pull/18/head
3611a92cc71f5a04d10d97851fc57654db376dbf refs/pull/180/head
3fcc281d83de361cc7673ac112b75b847c549b85 refs/pull/182/head
4814bc033864b3acf68ea2861743429efe48562f refs/pull/183/head
f491635852a9dc43f3c4dfab1405baf3d53da248 refs/pull/186/head
dda2ccfe81c39600bb43125afd6e3d9157a112fb refs/pull/187/head
a89744fdff43272a11c9a8326721fcfe30a74559 refs/pull/188/head
f3cbad73ea3ec20ffc6f639090f0f68947f38e02 refs/pull/190/head
1c17b140aadb122fc9d7ab470abe5acd872af401 refs/pull/192/head
a132a76c5100f5552cbc5e4d0ea58e6843efc381 refs/pull/193/head
f02efbfe865562bd55c46c9241ee323f4e47d794 refs/pull/196/head
7a7eae70309389feb12f7ac363c40c0b9f2f18ee refs/pull/199/head
0cc7afbc30ba18f6d7f62ceeb84ed6d046c8e392 refs/pull/200/head
73b6199600baa4b6ad441400577bc477502b155b refs/pull/201/head
0d664a367ddd44dca0a4e54d554bf4e44bd5a385 refs/pull/203/head
eb12286be5fac98cdd9c7961f7eb8a466613c2be refs/pull/205/head
6794180e07abf0f2f349e72ffe2fe37fc92b887d refs/pull/206/head
28f7aaad0a1cc2b047644e7b1f1632b9552dbf80 refs/pull/208/head
3596cfcfc9a393c72a1bec357dc68bc3806d8416 refs/pull/209/head
698887ee09db0a2c10fb437b4e1a01bdf2fd7a9c refs/pull/210/head
3c2ecb5d1c33015fd0e72f811ea7bd8ea5ada144 refs/pull/212/head
5ee2a907baa1b7dda27582319d4e02653e8b1159 refs/pull/215/head
02cd4a1113cc4e487e5f7cea9bd3e6d5782ac6d1 refs/pull/220/head
4e6bc95f221c8c1b29e50650ff54e40d30e0adc1 refs/pull/223/head
8c9d74ada68b5082f14ac1106b85f8f8aefe0bb7 refs/pull/227/head
49f80265e66510fbd016cd70a5c791a55bd30cdd refs/pull/230/head
b7bde1ac6ab0291e73ed89abe34107791eedb2b3 refs/pull/231/head
f61b8651029beeea251be542c90807f3d1153e7e refs/pull/234/head
7dd6f553cf067a367f91ab8e5af28df68ff58676 refs/pull/239/head
d269179820091d4ac173a6a89f925a48068318fb refs/pull/24/head
d25ff70398eafb3ebd7d81dfe7dfbedfb51c4e39 refs/pull/243/head
6acdb421bd4d48c1a9dcd0a6563a3ff664215792 refs/pull/249/head
c97765e4ebfeedc8e58b8055e9798f700dcbfe7d refs/pull/250/head
6a4e9e21ade919b356bd8a603a8f0a1c25531da0 refs/pull/255/head
154115ededac10d6d09ba33eb7127bbe08c3b510 refs/pull/256/head
bce5c78265901cdee844b88594cedd8b6de8e4f7 refs/pull/26/head
d7f3c1d628c1044e86bd9bce553b3fced517dcfd refs/pull/263/head
f3c7d923c1a265bee6d17215cb1f7b3afc5993ab refs/pull/269/head
68fae6484e5a8034c07307b82f671e2748c7bd30 refs/pull/27/head
7ce63861211f61ddbff119ed1cb80518255425db refs/pull/270/head
e629186eb49da715e1d515ad24dd83bcaaab5715 refs/pull/271/head
af1746fd90fb5c9a5ab9ad9d4bdf9008dda289f8 refs/pull/275/head
ad465ee2545392153a64c0976d6e59227d0c1c70 refs/pull/276/head
dde21fa45839b289a461b459d8bca038b684db08 refs/pull/276/merge
8db2f7a853d81a384781ef241786cc830eabf26f refs/pull/277/head
4169b600084f80423b3227030bc6d38b9acfff9d refs/pull/278/head
e504d6be035e4c3bf45c55e06eed39e7c4bc0f82 refs/pull/283/head
b4eadfabec81d20f4fb97b14614a05377f84b2a6 refs/pull/289/head
8caea03f308521e4fbf50214319ad5c3c8b7d023 refs/pull/295/head
d273725661596d9f734982e6ea69593b51536c88 refs/pull/295/merge
c2d9d73b37e74cbf814950a926adab8ebc7d431d refs/pull/297/head
935a41207dbe5adb77d246d5c5de086615df3b0c refs/pull/297/merge
ce4b18d8c6462c80ade30755f6732d537e26e685 refs/pull/299/head
7d932ffc4b203268d5978a1758d4ee9c432fbd06 refs/pull/301/head
d99f75ec5baae5690d76cd918db46682781b6946 refs/pull/304/head
35d31a10b4835e7f4beee989bd4a915f2954ccba refs/pull/306/head
62f8daddbd3d424c857755a39f9be1212590dc25 refs/pull/308/head
e0850b401149b97fa1042e7c7bcbaf5dd57f998b refs/pull/308/merge
6fe97cffe26097dc1d825e3185281b71d1bd741e refs/pull/31/head
420874fbc8c36262e3eaa36afc1f01e7be4fa906 refs/pull/310/head
7b8b9c9cb053ea7ac36fe78365b99dcde650d895 refs/pull/314/head
a5f7263bfb174df9587291e808ce547f2249e95b refs/pull/319/head
6bf3f3fa49b5b5af84c8570066baca317f9aed5d refs/pull/319/merge
33f5ab729ea9e8e697feb70882f333ea5d8eb148 refs/pull/322/head
dcea71ae6bffbf7de49e7d53b28ce74e12bfd43b refs/pull/323/head
d737c6ba14e2c890c0f7088ad56923cc6010b38f refs/pull/325/head
2938ae1b525d5089a69036fa6f290e4add660b54 refs/pull/328/head
27abbfb642df92ef77137c846aff4c81f357cca3 refs/pull/328/merge
ad927f58e377410c35ee1f4d1c78dc238320ea8b refs/pull/331/head
e715253d6ef754147338097c1ad28337e6b7d813 refs/pull/332/head
1f04cc7343e78a58e73e0eb2ad9f106aa177f727 refs/pull/333/head
b0efe02264b5bac8a2bb65eec05d984af84ee542 refs/pull/333/merge
464782ac63314b7cc5c49f65028ef79e4b859e76 refs/pull/334/head
3e8c5586efd0c5105156a9b951d38067c559084c refs/pull/335/head
88c63addf32cca759dd9acf4b8be878a7448dc90 refs/pull/337/head
35fc1335c17596a291300f7e704f473caa7a7a3b refs/pull/337/merge
c1ce2fb03473eee23f44d483f14ed39fe7141ff8 refs/pull/339/head
e9d0bfe88331d56d55819c35a98b7ee8390f90d5 refs/pull/342/head
e29b053268059cf28c9665d9dfec38d3b3f2b001 refs/pull/343/head
6ffd997bab75a3354e6c5446fdff51fb5b7ccbfc refs/pull/344/head
82a11218c20504d3be0233ebc6f88afb12f6b29d refs/pull/345/head
6b696b6718480bb3d40624616493b9d847449d21 refs/pull/345/merge
a3f3ce2fb62a161e9013483911c9911501d3c4a5 refs/pull/348/head
7204c3c7784b5a4fc17111e1426e570423d81007 refs/pull/35/head
74a25e73bfb7ee91ffa0d716fbbabc8ec3f29461 refs/pull/350/head
e3d9c723e186f812c81b53cc1a604de8f8ad6807 refs/pull/350/merge
be91127310c95fe26148893024dc3f751b04ccb5 refs/pull/351/head
62dba9b0b29718afe036dd6369afd9ecd6fe68ad refs/pull/353/head
4064cb73f9501496d3d33774444cdb761c2aec10 refs/pull/353/merge
0de55e41439c4c0cb2114f27bdaf8eb28d6f6738 refs/pull/358/head
234f9019fc85880e95c15420bf33edbfca74f9b3 refs/pull/358/merge
91d01cf7afacf118df1c15c2b45320c0681733de refs/pull/359/head
bcbd32475e364c12f10b194339b1611c43a427ed refs/pull/359/merge
a7c062d5c6f292f4b74daadaddbdf80e89431d85 refs/pull/361/head
07d592a562b06265c34f425dd98b907e4741b615 refs/pull/361/merge
4266c862157f2efc1ac62041757b41f734425214 refs/pull/39/head
d77342b26af805703cec4bda528766a7f1061957 refs/pull/41/head
787ab24c773cccd6d95e6db56ea129842bd1a28b refs/pull/45/head
ac7cef762fff5e9ac9d476797292e20e761f86aa refs/pull/46/head
dd465babaf6265d6376b72d84855ed4c6dc25f0e refs/pull/48/head
e3f0e24fb70ca4dd9297e31f7f2d4d14c5743ab9 refs/pull/5/head
5c33a9a02ef2cde0725eeff5973375b47c488990 refs/pull/53/head
ffd340cf6b3c2df87f0500829cd8179abf24ac30 refs/pull/56/head
a2f8fe3b9344b3073ba76a774aa4fa7ce5d91544 refs/pull/60/head
a54b8d082253d2c0cc41a1a677eac5f1809697c7 refs/pull/68/head
2d2509bedfef4a75ef602a2d110939d7d67e44d1 refs/pull/7/head
9151c7efd1c2148004174eb596f66be95bcf199b refs/pull/76/head
cea92162b7da61894728d2f4814fc176c9b7f027 refs/pull/76/merge
8792ff87761ed304ee5ddcad2adc42ddf8fed4fa refs/pull/78/head
2be533724388bb3243709fbf893fe2341406dee0 refs/pull/79/head
b931b3a9ac917c4d27657ebc7c6830559d767d30 refs/pull/81/head
f5ecf3aa76d9ee0da266f08e821510e7f5fbae2c refs/pull/83/head
d96cabcab4b430b34eb56294ba9f3fbc6ed08073 refs/pull/85/head
116ba9a7ed3054f69521f2b00ea3e813b69cf5d7 refs/pull/86/head
70f1e396f5d24ced50e46ea112675e48f73adc35 refs/pull/87/head
31cae3ae922deb15a9e25534bbbf6d61a27bffba refs/pull/9/head
ff744f99acc5ff0d07156624db6f9f3c0974cf65 refs/pull/91/head
3067b4c73825f940d16fb3f746dbe45b3e4927e0 refs/pull/92/head
bd48f125843f46682e94c1d98a41d9e9b0789951 refs/pull/95/head
c2b8c6b40ea963dd86517b20ccbd44f1b7aa6dfa refs/pull/96/head
682694c1df7d7dc5e43789609cce666f9eaf2d9f refs/pull/99/head
1b14c52575fd62566793281110124a737c56f0ff refs/tags/0.9.0
d3a5baac97097e40f4e2af4548ae7c19f9d5ea75 refs/tags/0.9.1
3f38d518c5e41f1cf25ff6a1d28c46db5e79a0b9 refs/tags/0.9.10
ec32d62d412578542c0ffb7a6ce34d3e64b43b94 refs/tags/0.9.11
cf10bbff6ac3b873e97b36b9784c79866a051a8e refs/tags/0.9.12
855df7f61cde092adff08dd1b6509285d791c748 refs/tags/0.9.13
caec45914e701c2bff612432b417a7baa7b4422b refs/tags/0.9.14
^1b662e2e7a091710ad8a963263939984e2ebf527
e690f79eca896e830b46087718d67f94f9770180 refs/tags/0.9.15
^f6a22e7da26314b38bf9befce34ae8e4b2543090
3c52849f88e6c376322ecd5d9a7193e202d7d35b refs/tags/0.9.16
^43ec568034b3731101dbf7670765d671c30f54f3
a3f5c2bae0f04b0bce9ef3c4ba6bd1031a0564c4 refs/tags/0.9.17
f16552494456ce96b45fcbf60e8e4f7bd292195e refs/tags/0.9.18
^b979e8b52c7ae7f3f39fa0182e738e9e7257eb78
02b6abe5f6eef7e3cbd5f247c5cc24e246efcfe0 refs/tags/0.9.19
fa1fdfd7b14ec345f749b8e455a2e6bcd114abf4 refs/tags/0.9.2
^f37a158856d652f9e58647e4d2ac2fde6867dc28
4c9cf98fb4c66899178cd7e854b8f140384d7615 refs/tags/0.9.3
c4673da9cf86b34b12b5c43d3ed11e1e4fc4486d refs/tags/0.9.4
937d152a0ecec51b80ceead2358a37f0767673f4 refs/tags/0.9.5
b5c53bef2deb7b20659b03b1223f0942599e5c41 refs/tags/0.9.6
12bc71d67c5208c99ca850055e9c6a61df2ff695 refs/tags/0.9.7
d9bb1c47984baa035e3960338551d9b0b7128e79 refs/tags/0.9.8
edbeaa39b426e54702194b0a601342322f01e400 refs/tags/0.9.9