17
Verzió követő rendszerek (SCM) SIPOS Péter Szoftverfejlesztési csoportvezető [email protected] +36309280477

(SCM)...2015/12/03  · Ingyenes. • Nem kifejezetten centralizált • A változások csak munkamásolatként léteznek (working copy) • A commitra jelölt változások a stage-be

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: (SCM)...2015/12/03  · Ingyenes. • Nem kifejezetten centralizált • A változások csak munkamásolatként léteznek (working copy) • A commitra jelölt változások a stage-be

Verzió követő rendszerek(SCM)

SIPOS PéterSzoftverfejlesztési csoportvezető[email protected]+36309280477

Page 2: (SCM)...2015/12/03  · Ingyenes. • Nem kifejezetten centralizált • A változások csak munkamásolatként léteznek (working copy) • A commitra jelölt változások a stage-be

Tartalom

• Mire jók a verziókövető rendszerek?

• Mik az alapvető utasítások a verziókövető rendszerek esetében.

• Ismerkedés a GIT-el röviden.

• Hogyan javítsunk a kódminőségen SCM-el?

• Milyen workflow-t alkalmazzunk?

Page 3: (SCM)...2015/12/03  · Ingyenes. • Nem kifejezetten centralizált • A változások csak munkamásolatként léteznek (working copy) • A commitra jelölt változások a stage-be

Verziókövető rendszerek

• SCM – Source Control Mangement

• Kódváltozások archiválása

• Kooperáció a csapaton belül

Page 4: (SCM)...2015/12/03  · Ingyenes. • Nem kifejezetten centralizált • A változások csak munkamásolatként léteznek (working copy) • A commitra jelölt változások a stage-be

Kódváltozások archiválása

„Nobody actually creates perfect code the first time around, except me. But there's only one of me. ”

Linus Torvalds, 2007.

• Könnyebb hibajavítás, ha valaki eltörte a kódot

• Mindennek nyoma marad, nincs véletlenül kidobott kód

• Centralizált esetben a kód biztonságos szerveren van

• Egymástól eltérő kódbázis fenntartása közös alapokon

Page 5: (SCM)...2015/12/03  · Ingyenes. • Nem kifejezetten centralizált • A változások csak munkamásolatként léteznek (working copy) • A commitra jelölt változások a stage-be

Kooperáció a csapaton belül

• Külön fejlesztési ágak létrehozása

• Leegyszerűsített code review

• Könnyebb áttérés egy másik munkára, hibajavításra

• Egymás kódjának megtekintése, azonnali közreműködés

• Release és tesztelési folyamat leegyszerűsödik

Mindig vannak hibák. Az SCM lehetővé teszi ezek nyomon követhetőségét.

Page 6: (SCM)...2015/12/03  · Ingyenes. • Nem kifejezetten centralizált • A változások csak munkamásolatként léteznek (working copy) • A commitra jelölt változások a stage-be

De hogyan is „verziókövessünk”?

• Nem csak magunknak végezzük, sőt elsősorban másoknak

• Mindent részletesen írjunk le

• Alapvető utasítás: „commit”

• Legyen minél gyakoribb és egyértelmű a commit

• Figyeljünk rá, hogy minden lényegeset feltegyünk, a szemetet pedig ne (fordító fájljai, ideiglenes object-ek, stb…)

Page 7: (SCM)...2015/12/03  · Ingyenes. • Nem kifejezetten centralizált • A változások csak munkamásolatként léteznek (working copy) • A commitra jelölt változások a stage-be

A „Commit”

• Lehető leggyakrabban, amikor kis funkció elkészül (akár 10 soronként)

• Csak összetartozó kódok legyenek egy commit-ban (interfacemódosítás, új funkció)

• Nem gond, ha a commit nem működik

• Legyen beszédes és egyértelmű

• Legyen angol nyelvű

Page 8: (SCM)...2015/12/03  · Ingyenes. • Nem kifejezetten centralizált • A változások csak munkamásolatként léteznek (working copy) • A commitra jelölt változások a stage-be

The good commit message*

• Separate subject from body with a blank line

• Limit the subject line to 50 characters

• Capitalize the subject line

• Do not end the subject line with a period

• Use the imperative mood in the subject line

• Wrap the body at 72 characters

• Use the body to explain what and why vs. how

* Source: http://chris.beams.io/posts/git-commit/

Page 9: (SCM)...2015/12/03  · Ingyenes. • Nem kifejezetten centralizált • A változások csak munkamásolatként léteznek (working copy) • A commitra jelölt változások a stage-be

Other commands

• Clone - saját másolat készítése

• Tag - megcímkézés

• Push - feltöltés

• Pull - letöltés

• Merge – összeolvasztás

• Checkout - egy állapot megtekintése

Page 10: (SCM)...2015/12/03  · Ingyenes. • Nem kifejezetten centralizált • A változások csak munkamásolatként léteznek (working copy) • A commitra jelölt változások a stage-be

GIT verziókövető rendszer

Ingyenes.

• Nem kifejezetten centralizált

• A változások csak munkamásolatként léteznek (working copy)

• A commitra jelölt változások a stage-be kerülnek

• Lehetőség van „remote” beállítására

• Init, clone, commit, add, tag, push, pull, fetch, merge, revert, …

http://pcottle.github.io/learnGitBranching/

Page 11: (SCM)...2015/12/03  · Ingyenes. • Nem kifejezetten centralizált • A változások csak munkamásolatként léteznek (working copy) • A commitra jelölt változások a stage-be

Source: http://explainxkcd.com/wiki/index.php/1597:_Git

Page 12: (SCM)...2015/12/03  · Ingyenes. • Nem kifejezetten centralizált • A változások csak munkamásolatként léteznek (working copy) • A commitra jelölt változások a stage-be

Kódminőség javítása

• Visszakövethetőség

• Könnyű hibajavítás

• Könnyű megtalálni egy sor felelősét

• Könnyű code review, így uralni lehet a kódot

• A commitokra bontás átgondolttá teszi a folyamatot

Page 13: (SCM)...2015/12/03  · Ingyenes. • Nem kifejezetten centralizált • A változások csak munkamásolatként léteznek (working copy) • A commitra jelölt változások a stage-be

Workflow

• Stabil (védett) ágak működő verzió érdekében

• Minden funkció külön ágok (branch) fejlődik

• A funkció ágak csak ellenőrzés után kerülnek be a stabil ágba

Page 14: (SCM)...2015/12/03  · Ingyenes. • Nem kifejezetten centralizált • A változások csak munkamásolatként léteznek (working copy) • A commitra jelölt változások a stage-be

Worklow

Soruce: https://www.linkedin.com/pulse/git-merge-resolving-git-merge-conflict-code-branches-gaurav-aggarwal

Page 15: (SCM)...2015/12/03  · Ingyenes. • Nem kifejezetten centralizált • A változások csak munkamásolatként léteznek (working copy) • A commitra jelölt változások a stage-be

Tools

• Gitlab*

• Gitorious

• GitHub

Page 16: (SCM)...2015/12/03  · Ingyenes. • Nem kifejezetten centralizált • A változások csak munkamásolatként léteznek (working copy) • A commitra jelölt változások a stage-be

Kérdések?

Page 17: (SCM)...2015/12/03  · Ingyenes. • Nem kifejezetten centralizált • A változások csak munkamásolatként léteznek (working copy) • A commitra jelölt változások a stage-be

Köszönöm a figyelmet!

Péter SIPOSSoftware Development Team [email protected]+36 30 928 0477