20131028 named braches

Preview:

Citation preview

Named Branches

Recap: Branches

• Unabhängige, parallele Entwicklung –  Z. B. zwei Features

•  „Merge“: Entwicklung von einem Branch auf einen anderen übernehmen –  ... erst, wenn fertig, getestet, abgenommen –  ... in der Reihenfolge, wie es fertig wird

Branch Repos („forks“)

Branch Repos („forks“) - 2

• Getrennte Repos in getrennten Verzeichnissen

Branch Repos („forks“) - 3

• Das kennt ihr schon!

h"p://stevelosh.com/blog/2009/08/a-­‐guide-­‐to-­‐branching-­‐in-­‐mercurial/  

Also warum was ändern?

• Öfter mal was Neues • Geistig fit bleiben

Also warum was ändern? (reloaded)

• Keine wiederholten composer-Downloads der gleichen Dinge (in verschiedenen Ordnern) § Nur ggf. „delta“ bei unterschiedlichen Deps

• Bei composer-Packages müssen wir es so machen § Einheitlichkeit, Gewöhnung

•  Leichter und schneller anzulegen §  Lokaler Befehl statt Kiln-Aktion

Enter named branches

h"p://stevelosh.com/blog/2009/08/a-­‐guide-­‐to-­‐branching-­‐in-­‐mercurial/  

Hands on – Setup •  cd ~/Projekte !•  hg clone http://bit.ly/HeAxhr case-22079-up !

•  hg clone case-22079-up case-22079 !•  cd case-22079 !

Hands on – Branches zeigen und wechseln

•  hg branches!•  hg up –c {branchname} !–  „-c“: Abbrechen, falls lokale Änderungen –  Sonst werden Änderungen mit auf den neuen Branch

genommen –  „-C“: Änderungen wegschmeißen und auf sauberen Stand

wechseln

• Branch-Namen: –  „default“ –  „you name it“ –  Nicht: „tip“ (vergesst „tip“)

PhpStorm - Branches

Hands on – Commit auf Branch

Situa>onal  awareness?  

Hands on – Push it, baby

„-­‐b  .“  meint  „mein  aktueller  Branch“  

Hands on - Pull

Kiln – Branches

Kiln – Eindimensional, bi!e

Kiln – History per-branch

Kiln – etwas komplizierteres Beispiel

auf  „default“  

auf  „0.1.x“  

„branch  heads“  

Kiln - Related

•  „Related“ ist für fork-basiertes Branching gedacht • Zeigt nur branch-Punkte und Heads • Hilfreich?

Probiert‘s aus...

Lokale fork-Repos

• hg clone ... projekt-A !• cd projekt-A ; hg up -c feature_a ; cd .. !• hg clone ... projekt-B !• cd projekt-B ; hg up –c feature_b ; cd .. !

Mögliche Probleme?

• Man „sieht“ nicht so direkt, auf welchem Branch man arbeitet? •  In Kiln nicht ganz so gut unterstützt?

§ Gemeint: Grenzfälle wie Branch-Vergleich etc.

• Nicht zwei Versionen „gleichzeitig“ aktiv? • Branch-Wechsel bei uncommitted

changes?

Take-outs für heute •  Branch-Wechsel macht ggf. „phlough install“ notwendig

•  hg up -c {branchname} !•  hg branches!•  hg [in|out|push|pull] -b . !–  --new-branch, falls neuer Branch erzeugt/

merged •  Konventionen: –  Feature Branches „123_featuretitel “ –  Try-Branches: „try_{initials}_{case|timestamp}_desc“ (Achtung: Permanent und global)

Take-outs (2)

• hg branch {neuer_name} !• hg merge {anderer_branch} + hg commit!• hg ci --close-branch!• hg push -b . --new-branch (bei

Bedarf)

Anhang: Fortgeschri!ene Themen

• Braches anlegen • Cross-Branch merges (spooky!) • Zweige schließen

Branch anlegen

Branches zusammenführen

• hg up default!• hg merge feature!• hg commit -m „...“ !• à feature ist jetzt „inactive“, weil er

keinen Head mehr hat.

Branch schließen

• hg up feature!• hg commit --close-branch -m „...“ !• à Branch ist jetzt „closed“ • Nur hg branches --closed zeigt

ihn noch

Recommended