Modul letöltése a drupal.org-ról gittel, és git submodule-ként kezelése

Kategória: 
Leírás

Néhány napja harcolok csak a gittel, egy a tuti: igencsak kezdem megkedvelni. Mivel még drupalosok körében is elég képlékeny a workflow, amivel teljes drupal projecteket lehet kezelni, így én is több forrás alapján, nagyjából így csinálom:

A drupal a main repository. Nincsenek külön branchek modul, meg smink, inicializálás után egy szem devel ág, és abba megy a fejlesztés fő vonala. Ha egy részfeladat szépen leírható, (pl user_interface, ahol a wysiwyg-t, filtereket alakítom), akkor lesz egy külön branch neki. Ha az megvan, szépen visszamergelem a devel ágba, és haladok tovább. Ha van már mit mutatni, akkor a devel ág merge a masterbe, és megy ki valami public oldalra, ahol nézegethetik.

Nade pont most vagyok olyan munkában, ahol igencsak bántani kell a modulokat, patchek, próbálkozások etc.
A modulokat alapból letöltöm drush-sal, hozzáadom, majd commitolom az adott ágba.
Egészen addig, amíg a modulba bele nem kell nyúlni. Na ekkor jön képbe a git submodule rendszere.

Ilyenkor törlöm a modult, és submoduleként kezelem tovább. Na ez elég pepecselős mutatvány, sok gépeléssel, úgyhogy ennek kiváltására megalkottam subát! Ő egy git alias, amit a .gitconfig nevű fileba kell elhelyezni imígyen:

[alias]
suba = !sh -c 'echo -n \"Biztosan törölhető a $2 könyvtár? (i/n) \" && read answer && [ $answer = \"i\" ] || exit && echo \"\n $2 könyvtár törlése \n \" && rm -rf --preserve-root $2 && echo \"\nIndex törlése\n\" && git commit $2 -m \"Autocommit from suba: remove $2 dir from index\" && echo \"\nSubmodule hozzáadása\n\" && git submodule add -b $1 git://git.drupal.org/project/$0 $2 && echo \"\nSubmodule inicializálása\" && git submodule init && echo \"\nSubmodule commit\n\" && git add .gitmodules && git commit $2 .gitmodules -m \"Autocommit from suba: Add $0 drupal project as submodule tracking remote branch: $1.\"'

Használata a következő: git suba devel 6.x-2.x sites/all/modules/devel

Az első paraméter a modul neve, a második a drupal branch. Ez elvileg lehet tag is, vagyis ha 6.x.2.3-at írunk be, akkor akár a releaset is leszedhetjük vele, viszont releasebe meg nem turkálunk, úgyhogy jöjjön csak a branch egészében. A 3. paraméter meg a hely, ahová a modulunkat szeretnénk pakolni.
Ezt a drupal főkönyvtárában kell indítani, vagyis a repo főkönyvtárába, mert csak ott lehet submodulet hozzáadni. A 3. paraméterben ne legyen a végén / jel, mert attól az uccsó commit meghal.

Először szépen rákérdez, hogy tuti jót akarunk-e törölni. Ezután törli a könyvtárat, majd commitolja, enélkül ugyanis a git submodule add összeakad, hiszen a git indexében már szerepel a könyvtár. Ezután leszedi a drupal.org-ról a modult, beállítja a local branchet arra, amit a második paraméterként megadtunk, majd elcommitolja. A git add .gitmodules elvileg csak az első alkalommal kell, amikor submodule-t adunk hozzá, de ahogy észrevettem enni nem kér, szóval nincs gond, ha benne marad.

Na, és miután az első ilyen próbálkozásomról kiderült, hogy görcs nélkül tudtam volna törölni vele bármit kérdés nélkül, valamint mindössze 4 napja használom a gitet, léccci kapjátok le a fejemet, ha valami ordenáré hülyeséget írnék!

Hozzászólások

Hozzászólás

A mező tartalma nem nyilvános.
  • Internal paths in double quotes, written as "internal:node/99", for example, are replaced with the appropriate absolute URL or relative path.
  • Engedélyezett HTML elemek: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <del> <img>
  • A webcímek és email címek automatikusan linkekké alakulnak.
  • A sorokat és bekezdéseket a rendszer automatikusan felismeri.
  • Engedélyezett HTML elemek: <a> <blockquote> <br> <cite> <code> <dd> <del> <div> <dl> <dt> <em> <li> <ol> <p> <span> <strong> <ul>
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <bash>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <mysql>, <php>, <python>, <ruby>, <sql>. The supported tag styles are: <foo>, [foo].
  • Minden email cím át lesz alakítva ember által olvasható módon, vagy (ha a JavaScript engedélyezett) ki lesz cserélve kattintható, de biztonságos hivatkozásra.
By submitting this form, you accept the Mollom privacy policy.