Ini adalah sesuatu yang ada dalam pikiran saya selama beberapa waktu tetapi saya tidak dapat menemukan metode yang tepat untuk melakukannya.
Jadi pada dasarnya, saya bekerja dengan 6 situs web yang berbeda, semuanya menjalankan Magento CE 1.9.2+
Di situs web itu, saya menggunakan banyak ekstensi yang telah saya dan tim saya kerjakan telah kembangkan (di sini kita berbicara lebih dari 50 ekstensi) dan kode untuk ekstensi tersebut disimpan di Bitbucket. Jadi saya bukan satu-satunya orang yang mengelola ekstensi itu, kami 3 orang yang mengerjakannya.
Saat ini, ketika saya ingin menambahkan fitur / memperbaiki bug untuk salah satu ekstensi tersebut, inilah alur kerja saya:
- Instal versi terakhir ekstensi di salah satu situs web melalui Modman
- Perbaiki bug / tambahkan fitur / tes
- Salin perubahan secara manual ke folder lokal yang berisi semua ekstensi saya
- Komit dan dorong melalui GIT dari folder ekstensi ini ke Bitbucket (1 repo Bitbucket per modul)
- Kemudian versi baru modul dapat diinstal melalui Modman
Catatan penting: Saya menggunakan modman dengan hardcopy di sini, tanpa symlink.
Masalah terbesar saya telah disorot dalam huruf tebal: Saya ingin dapat melewati langkah ini karena ini merupakan penyebab masalah yang besar (beberapa file kadang-kadang dilupakan, salah salin / tempel, melibatkan tindakan manusia).
Jadi, bagaimana saya bisa meningkatkan alur kerja saya untuk menyingkirkan langkah copy / paste manual ini? Saya terbuka untuk saran di sini.
sumber
Submodules
fitur git?Jawaban:
Saya sangat sering mengambil pendekatan berikut yang cukup agnostik.
/path/to/my/module
Dalam proyek Anda, tentukan repositori lokal ke salinan lokal modul Anda. Ini agar proyek Anda dapat menarik perubahan yang tidak dicuri dari LFS Anda.
Anda kemudian dapat membuat komposer memerlukan cabang pengembangan spesifik Anda (selama proyek Anda
minimum-stability
mengizinkannya).Anda berkomitmen
/path/to/my/module
,composer update namespace/module
dalam proyek, melihatnya menginstal dan menguji.Saya menemukan pendekatan ini bekerja dengan baik untuk modul M1 menggunakan https://github.com/Cotya/magento-composer-installer , karena instal yang disinkronkan kadang-kadang terasa menyakitkan dan membuat Anda tersandung ketika menambahkan direktori atau jalur baru yang sebelumnya tidak disinkronkan. oleh modman.
Tautan yang mungkin menarik
Debugging
Gunakan
composer require namespace/module dev-branch-name-here -vvv
untuk melihat cabang yang bisa Anda gunakan secara lokal.Periksa ulang yang
minimum-stability
telah diaturdev
dalam proyek Anda menginstal modul ke.Your requirements could not be resolved to an installable set
Ditemukan dengan membaca komentar Patrick Schwisow di sini .
Singkatnya, Anda dapat memperbarui Anda
composer.json
untuk memaksanya ke versi tertentu saat mengembangkan, membuatnya terbaca seperti:sumber
path
repositori tipe untuk modul proyek yang tidak akan saya gunakan kembali dan kemudian git atau packagist untuk modul yang akan saya gunakan kembali.Itu masalahnya. Jika Anda tidak dapat mengubah pengaturan ini untuk penyebaran toko Anda, pertimbangkan untuk bekerja pada ekstensi bersama pada mesin virtual terpisah di mana Anda menggunakan modman dengan symlink.
Saya menggunakan komposer dengan penginstal komposer AOE untuk mengkloning repositori ekstensi langsung ke
.modman
tetapi menginstal modul dari Git dengan modman bekerja juga saya kira. Apa pun cara Anda dapat bekerja secara langsung dalam repositori modul Git.sumber
Jadi ide saya di sini untuk Anda adalah mulai bekerja dengan komposer bahkan untuk Magento1. Jika Anda memiliki pembuat paket sendiri , yang tidak terlalu sulit untuk dikelola sekarang karena aws dan google cloud sudah ada, atau Anda dapat menggunakan pembuat paket publik. Anda akan memiliki akses "mudah" ke versi yang lebih baru di toko Magento1 Anda.
Ini berarti bahwa ketika versi yang lebih baru keluar, Anda dapat
composer update
dan itu akan mengotomatiskan proses penyalinan untuk Anda.Lihatlah https://github.com/Cotya/magento-composer-installer untuk Magento1 via komposer.
Dengan pendekatan ini, Anda juga dapat langsung bekerja di repositori git di bawah folder vendor jika Anda menyetelnya untuk menyalin
.git
dan dengan demikian dapat mendorong diubah kembali ke repo mereka tanpa memiliki checkout terpisah. Meskipun perhatikan Anda harus berhati-hati di sini dan pastikan Anda tahu di cabang mana Anda berada, jika tidak, Anda dapat menghapus kode Anda (melakukannya beberapa kali).sumber