Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar versi pseudo modul Golang menjadi komit git?

Bagaimana untuk menukar versi pseudo modul Golang menjadi komit git?

王林
王林ke hadapan
2024-02-08 23:00:221126semak imbas

如何将 Golang 模块的伪版本转换为 git 提交?

Editor PHP Youzi akan berkongsi dengan anda cara menukar versi pseudo modul Golang kepada penyerahan git. Dalam pengurusan modul Golang, versi pseudo digunakan untuk mengekalkan kebergantungan dalam modul yang belum dikeluarkan. Walau bagaimanapun, apabila anda bersedia untuk menerbitkan modul ke repositori git, anda perlu menukar versi pseudo ini kepada git commit konkrit. Artikel ini akan memperkenalkan secara terperinci cara melaksanakan proses ini dan membantu anda mengurus dan mengekalkan kebergantungan modul Golang dengan lebih baik.

Kandungan soalan

Saya mempunyai dua repositori git yang mengandungi modul go, mari kita panggil mereka controllerapicontroller 导入 api,因此 controller 存储库中的 go.mod 文件依赖于 api modul yang terkandung dalam repositori.

Masalah saya ialah, untuk menjalankan folder controller 中的代码,我不仅需要 api 中的 go 代码,还需要存储库中包含的一些静态文件(从代码生成)。据我所知,没有办法将这些静态文件打包到go模块中,以便它们自动导入到我的vendor.

Pendekatan semasa saya adalah untuk mencuba dan menambah folder yang mengandungi fail statik sebagai submodul git yang jarang diperiksa. Walau bagaimanapun, untuk menjadikan submodul itu berfungsi dengan komit yang dirujuk daripada versi modul api 导入的 go 源代码保持同步,我想要一个小的 shell 脚本,自动检查 go.mod 文件中 api.

Walaupun ini mungkin berfungsi untuk binaan yang dikeluarkan, saya juga mahu ia berfungsi untuk binaan yang belum dikeluarkan, yang merupakan versi pseudo go.mod 文件中具有 <semantic version>-<commit 时间戳 >-<commit 哈希前缀 >.

Adakah terdapat cara untuk mengira lengkap serahkan cincang versi pseudo ini? Saya mengandaikan ini sedikit sebanyak mungkin, kerana go modvendor dapat menyemak versi yang betul, tetapi satu-satunya proses yang boleh saya fikirkan ialah mencari komit yang berlaku merentas semua cawangan pada masa tertentu, dan kemudian pilih komit antara yang mana awalan cincang sepadan ..Ini kedengaran sukar untuk dilakukan dalam bash.

Ada idea bagaimana untuk menyelesaikan masalah ini? Alternatif untuk mengimport fail statik saya daripada api ke dalam controller juga dihargai, dengan cara ini memastikan fail tersebut disegerakkan dengan versi modul api yang dibekalkan. . api 导入 controller 的替代方法也值得赞赏,这种方式使它们与 api 模块的供应版本保持同步。

解决方法

感谢 Volker 提供正确答案。使用 embed

Penyelesaian

Terima kasih kepada Volker kerana memberikan jawapan yang betul. Menggunakan pakej embed sebenarnya sangat mudah dan berfungsi dengan baik. 🎜 🎜Satu kelemahan penyelesaian ini ialah hanya fail dalam pakej go boleh dibenamkan. Memandangkan fail yang saya hasilkan berada dalam folder peringkat atas yang tidak mengandungi sebarang kod go, saya perlu membungkusnya dalam pakej maya untuk membenamkannya. 🎜

Atas ialah kandungan terperinci Bagaimana untuk menukar versi pseudo modul Golang menjadi komit git?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam