Jak używać modmana do zarządzania modułami w github?

12

Próbuję używać modman( https://github.com/colinmollenhour/modman ) do zarządzania moimi rozszerzeniami w github.

Najpierw próbuję dodać MagePsycho_Someextrozszerzenie jako wersję demo.

Do tej pory wykonałem następujące kroki

/var/www/magento-dir/ -> My Magento Installation Dir
/var/www/MagePsycho_Extensions/ --> Git Repository Dir
  1. cd /var/www/MagePsycho_Extensions/
  2. git clone [email protected]: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 [email protected]:magepsycho/Someext.git
  9. Opracował rozszerzenie „MagePsycho_Someext” w / var / www / magento-dir z następującymi plikami
    • app / etc / modules / MagePsycho_Someext.xml
    • app / code / local / MagePsycho / Someext / etc / config.xml
    • app / code / local / MagePsycho / Someext / Helper / Data.php

10 Dodano informacje o mapowaniu plików w /var/www/magento-dir/.modman/Someext/modman jako

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

ale wystąpiły następujące błędy:

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

Uwagi : Rozwijam rozszerzenia w /var/www/magento-dir/. I chcę wdrożyć te rozszerzenia (jedno na repozytorium) w github przy użyciu modmana. Kiedy skończę tworzenie modułów, chcę, aby te pliki zostały dodane do repozytorium. Do tego użyłem pliku .modman / * / modman do mapowania. Ale nie można go uruchomić.

Gdzie i czego mi brakuje?
Czy to niewłaściwe podejście?

[EDYTOWAĆ]

Właśnie zdałem sobie sprawę, że moje podejście jest wręcz przeciwne. Najpierw musisz dodać pliki rozszerzeń i modmana z mapowaniem ścieżek, wypchnąć go do repozytorium, a następnie wyciągnąć za pomocą modman clone.

Jak byś zrobił, gdybyś najpierw rozwinął rozszerzenie, a następnie użył modmana do wypychania zmian do repozytorium?

MagePsycho
źródło
1
W tej chwili nie można udzielić wyczerpującej odpowiedzi, ale ogólnie nie powinieneś modyfikować elementów w folderze .modman. To dobry punkt wyjścia github.com/colinmollenhour/modman/wiki/Tutorial
Zifius
Nie jestem pewien, gdzie zarządzać mapowaniami. w / var / www / MagePsycho_Extensions / Someext / modman? Jeśli tak, to musisz przesłać zmiany do github i wyciągnąć go za pomocą aktualizacji modmana?
MagePsycho
Nie rozumiem, dlaczego odwołujesz się bezpośrednio do rozszerzenia, jeśli jest w repozytorium, możesz je pobrać bezpośrednio z tego miejsca.
Allan MacGregor
W repozytorium root rozszerzeń powinien znajdować się plik modmana ze zdefiniowanymi mapowaniami.
Allan MacGregor
Czekaj, próbujesz wyciągnąć rozszerzenie z / var / www / magento-dir / do osobnego repozytorium?
Allan MacGregor

Odpowiedzi:

7

W końcu wymyśliłem sposób zarządzania modułami Magento za pomocą modmana (choć nie jest to idealny sposób, ale działa dla mnie)

Założenia

/var/www/magento-dir/ -> My Magento Installation Dir
/var/www/MagePsycho_Extensions/ --> Git Repo Dir
  1. cd /var/www/MagePsycho_Extensions/
  2. git clone [email protected]: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. Teraz opracuj rozszerzenie „MagePsycho_Someext” w /var/www/magento-dir/.modman/Someext z następującymi plikami
    • app / etc / modules / MagePsycho_Someext.xml
    • app / code / local / MagePsycho / Someext / etc / config.xml
    • app / code / local / MagePsycho / Someext / Helper / Data.php

10 Dodaj informacje o mapowaniu plików w /var/www/magento-dir/.modman/Someext/modman jako

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 To wszystko.

Podsumowując, będziesz pracował nad katalogiem magento-dir / .modman / Someext, który jest dowiązany symbolicznie do magento-dir. Za każdym razem, gdy dodajesz nowe pliki do rozszerzenia, musisz zaktualizować plik modmana i uruchomić go, modman repairdzięki czemu dowiązania symboliczne będą aktualne.

Jeśli ktoś ma lepsze podejście, udostępnij.

MagePsycho
źródło
6

Moja rada tutaj jest taka, że ​​i tak masz lokalną kopię rozszerzenia, a następnie użyj poleceń linki deployzamiastclone

W twoim przypadku wystarczy po prostu zadzwonić:

  1. modman init
  2. modman link ../Your_Extension_Path (jeśli jest to pojedyncze rozszerzenie)
  3. modman deploy Your_Extension_Path

Ta metoda wymaga uzupełnienia pliku modmana w katalogu rozszerzeń o odwzorowania plików, ale z twoich komentarzy wynika, że ​​już go masz.

Z mojego zrozumienia, pliki muszą najpierw znajdować się w katalogu dir rozszerzenia, a następnie zostaną połączone z katalogiem magento, więc kiedy wprowadzisz przyszłe edycje plików w magento, pliki rozszerzeń również zostaną zmienione. Być może istnieje sposób na stworzenie rozszerzenia modmana z katalogu magento, ale niestety nie wiem.

Prostym sposobem kopiowania plików z Magento do katalogu rozszerzenia jest albo otwarcie dwóch Eksploratorów Windows dla Windows i skopiowanie ich na drugą stronę lub użycie czegoś w rodzaju północnego dowódcy

Uwaga: Użyłem tylko modmana dla wersji php, ale ten proces działa dla tego

David Manners
źródło
/ var / www / MagePsycho_Extensions / będzie mieć więcej rozszerzeń powiedz: Extension1, Extension2 z różnymi repozytoriami. Czy to wpłynie na twoje podejście?
MagePsycho
nie jestem pewien, ale myślę, że potrzebujesz tylko dwóch poziomów, aby połączyć się, ../MagePsycho_extenstion/Extension1a następnie wdrożyć albo MagePsycho_extenstion/Extension1albo Extension1nie jestem pewien bez wypróbowania go.
David Manners
Po zastosowaniu metody łączenia i wdrażania wyświetla ten sam błąd OSTRZEŻENIE: Obiekt docelowy nie istnieje (.modman / MagePsycho_Someext / modman): app / etc / modules / MagePsycho_Someext.xml app / etc / modules / MagePsycho_Someext.xml
MagePsycho
@MagePsycho i faktycznie masz ten plik w swoim rozszerzeniu?
David Manners
2
Z mojego zrozumienia, pliki muszą najpierw znajdować się w katalogu dir rozszerzenia, a następnie zostaną połączone z katalogiem magento, więc kiedy wprowadzisz przyszłe edycje plików w magento, pliki rozszerzeń również zostaną zmienione. Być może istnieje sposób na stworzenie rozszerzenia modmana z katalogu magento, ale niestety nie wiem.
David Manners