Bagaimana cara menggunakan modman untuk mengelola modul di github?


12

Saya mencoba menggunakan modman( https://github.com/colinmollenhour/modman ) untuk mengelola Extensions saya di github.

Pertama saya mencoba menambahkan MagePsycho_Someextekstensi sebagai demo.

Sejauh ini saya sudah melakukan langkah-langkah berikut

/var/www/magento-dir/ -> My Magento Installation Dir
/var/www/MagePsycho_Extensions/ --> Git Repository Dir
  1. cd /var/www/MagePsycho_Extensions/
  2. git clone git@github.com:magepsycho/Someext.git
  3. touch modman
  4. git commit -am 'Modman file added'
  5. git push origin master
  6. cd /var/www/magento-dir/
  7. modman init
  8. modman clone git@github.com:magepsycho/Someext.git
  9. Mengembangkan ekstensi 'MagePsycho_Someext' di / var / www / magento-dir dengan file berikut
    • app / etc / modules / MagePsycho_Someext.xml
    • app / code / local / MagePsycho / Someext / etc / config.xml
    • app / code / local / MagePsycho / Someext / Helper / Data.php

10 Menambahkan info pemetaan file di /var/www/magento-dir/.modman/Someext/modman sebagai

app/etc/modules/MagePsycho_Someext.xml  app/etc/modules/MagePsycho_Someext.xml
app/code/local/MagePsycho/Someext/etc/config.xml app/code/local/MagePsycho/Someext/etc/config.xml
app/code/local/MagePsycho/Someext/Helper/Data.php app/code/local/MagePsycho/Someext/Helper/Data.php

11 modman update Someext

tetapi mendapat kesalahan berikut:

WARNING: Target does not exist (.modman/Someext/modman):
 app/etc/modules/MagePsycho_Someext.xml  app/etc/modules/MagePsycho_Someext.xml

Catatan : Saya mengembangkan ekstensi di /var/www/magento-dir/. Dan ingin menggunakan ekstensi ini (satu per repositori) di github menggunakan modman. Ketika saya selesai dengan pengembangan modul, saya ingin file-file itu ditambahkan ke repositori. Untuk itu saya telah menggunakan file .modman / * / modman untuk pemetaan. Tetapi tidak bisa membuatnya bekerja.

Di mana dan apa yang saya lewatkan?
Atau apakah ini pendekatan yang salah?

[EDIT]

Saya baru menyadari bahwa pendekatan saya justru bertolak belakang. Pertama, Anda harus menambahkan file ekstensi dan modman dengan pemetaan jalur, dorong ke repo dan kemudian tarik menggunakan modman clone.

Bagaimana yang Anda lakukan jika Anda pertama kali mengembangkan ekstensi dan kemudian menggunakan modman untuk mendorong perubahan pada repo?


1
Tidak dapat memberikan balasan komprehensif saat ini tetapi umumnya Anda tidak boleh memodifikasi hal-hal di folder .modman. Ini adalah titik awal yang bagus github.com/colinmollenhour/modman/wiki/Tutorial
Zifius

Saya tidak yakin di mana mengelola pemetaan. di / var / www / MagePsycho_Extensions / Someext / modman? Jika ya maka harus mendorong perubahan ke github dan menariknya menggunakan pembaruan modman?
MagePsycho

Saya tidak mengerti mengapa Anda merujuk ekstensi secara langsung, jika dalam repo Anda dapat mengunduhnya langsung dari sana.
Allan MacGregor

Di dalam repo root ekstensi Anda harus ada file modman dengan pemetaan yang ditentukan.
Allan MacGregor

Tunggu, apakah Anda mencoba menarik ekstensi dari / var / www / magento-dir / ke repo terpisah?
Allan MacGregor

Jawaban:


7

Akhirnya saya menemukan cara untuk mengelola modul Magento menggunakan modman (bukan cara yang sempurna, tetapi itu bekerja untuk saya)

Asumsi

/var/www/magento-dir/ -> My Magento Installation Dir
/var/www/MagePsycho_Extensions/ --> Git Repo Dir
  1. cd /var/www/MagePsycho_Extensions/
  2. git clone git@github.com:magepsycho/Someext.git
  3. touch modman
  4. git commit -am 'Modman file added'
  5. git push origin master
  6. cd /var/www/magento-dir/
  7. modman init
  8. modman link /var/www/MagePsycho_Extensions/Someext
  9. Sekarang kembangkan ekstensi 'MagePsycho_Someext' di /var/www/magento-dir/.modman/Someext dengan file berikut
    • app / etc / modules / MagePsycho_Someext.xml
    • app / code / local / MagePsycho / Someext / etc / config.xml
    • app / code / local / MagePsycho / Someext / Helper / Data.php

10 Tambahkan info pemetaan file di /var/www/magento-dir/.modman/Someext/modman sebagai

app/etc/modules/MagePsycho_Someext.xml  app/etc/modules/MagePsycho_Someext.xml
app/code/local/MagePsycho/Someext/etc/config.xml app/code/local/MagePsycho/Someext/etc/config.xml
app/code/local/MagePsycho/Someext/Helper/Data.php app/code/local/MagePsycho/Someext/Helper/Data.php

11 modman repair
12 cd /var/www/magento-dir/.modman/Someext
13 git add app/etc/modules/MagePsycho_Someext.xml app/code/local/MagePsycho/Someext/etc/config.xml app/code/local/MagePsycho/Someext/Helper/Data.php
14 git commit -m 'Extension files updated.'
15 git push origin master
16 Itu saja.

Singkatnya, Anda akan mengerjakan direktori magento-dir / .modman / Someext yang disinkronkan dengan magento-dir. Setiap kali Anda menambahkan file baru ke ekstensi Anda, Anda harus memperbarui file modman dan menjalankannya modman repairyang membuat symlink tetap mutakhir.

Jika ada yang memiliki pendekatan yang lebih baik, silakan lakukan berbagi.


6

Jadi saran saya di sini adalah karena Anda tetap memiliki salinan ekstensi lokal lalu gunakan perintah linkdan deploybukanclone

Dalam kasus Anda, Anda cukup menelepon:

  1. modman init
  2. modman link ../Your_Extension_Path (jika ini adalah satu ekstensi)
  3. modman deploy Your_Extension_Path

Metode ini mengharuskan Anda untuk memiliki file modman lengkap di direktori ekstensi Anda dengan pemetaan file tetapi dari komentar Anda tampaknya Anda sudah memiliki ini.

Dari pemahaman saya, file-file tersebut harus berada di dir ekstensi terlebih dahulu, mereka kemudian akan dihubungkan dengan ke magento dir sehingga ketika Anda melakukan pengeditan ke file-file di bawah magento file ekstensi juga diubah. Mungkin ada cara membuat ekstensi modman dari direktori magento tapi sayangnya saya tidak mengetahuinya.

Cara sederhana untuk mengatasi file dari Magento ke dir ekstensi adalah memiliki dua jendela penjelajah terbuka untuk windows dan menyalinnya di seluruh atau menggunakan sesuatu seperti komandan tengah malam

Catatan: Saya hanya menggunakan modman untuk versi php tetapi proses ini berfungsi untuk itu


/ var / www / MagePsycho_Extensions / akan memiliki lebih banyak ekstensi mengatakan: Extension1, Extension2 dengan repositori yang berbeda. Apakah itu akan membuat perbedaan menggunakan pendekatan Anda?
MagePsycho

tidak yakin tapi saya kira Anda hanya perlu dua level untuk menghubungkan seperti ../MagePsycho_extenstion/Extension1dan kemudian menyebarkan akan menjadi MagePsycho_extenstion/Extension1atau Extension1saya tidak yakin tanpa mencobanya.
David Manners

Setelah mengikuti pendekatan tautan & penyebaran Anda, berikan kesalahan yang sama PERINGATAN: Target tidak ada (.modman / MagePsycho_Someext / modman): app / etc / modules / MagePsycho_Someext.xml app / etc / modules / MagePsycho_Someext.xml
MagePsycho

@MagePsycho dan Anda benar-benar memiliki file ini di ekstensi Anda?
David Manners

2
Dari pemahaman saya, file-file tersebut harus berada di dir ekstensi terlebih dahulu, mereka kemudian akan dihubungkan dengan ke magento dir sehingga kemudian ketika Anda melakukan pengeditan ke file-file di bawah magento file ekstensi juga diubah. Mungkin ada cara membuat ekstensi modman dari direktori magento tapi sayangnya saya tidak mengetahuinya.
David Manners
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.