Share via


Elágazás stratégiailag

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

A forráskód fontos eszköz a fejlesztési munkában. A forrásfájlok hatékony kezelése és fejlesztése azonban kihívást jelenthet, ha egyszerre több fejlesztő dolgozik a fájlfrissítéseken. A verziókövetési rendszer segítségével megosztott adattárakban tárolhatja a forráskódot, elkülönítheti a párhuzamos fejlesztési erőfeszítéseket, integrálhatja a kódmódosításokat, és visszaállíthatja a korábbi fájlverziókat. A verziókövetés egyik kulcsfontosságú eleme az elágaztatás, amely lehetővé teszi az egyidejű fejlesztést. Ha stratégiailag elágazik, fenntarthatja a szoftver több verziójának sorrendjét és konzisztenciáját.

A Team Foundation rugalmas és megbízható verziókövetési rendszert biztosít. A Team Foundation verziókövetésével több változatot is kezelhet a forráskód, a dokumentumok, a munkaelemek és a csapat által használt egyéb kritikus információk fejlesztése során.

Hogyan kezeli a csapat a kódot, miközben egyszerre több módosítást vezet be több projektkiadáson keresztül?

Ha verziókövetési rendszerrel dolgozik, meg kell fontolnia az ágstruktúra beállítását. Ágat a forráskódfájl tükrözésével hozhat létre. Ezután a forrás befolyásolása nélkül módosíthatja az ágat. Az alábbi ábrán látható ágszerkezet például azt mutatja, hogy a FŐ ág olyan befejezett funkciókat tartalmaz, amelyek sikeres integrációs teszteken mentek át, a FEJLESZTÉSI ág pedig a fejlesztés alatt álló kódot tartalmazza. Ha a FEJLESZTÉSI ág új funkciója befejeződött, és át tud adni integrációs teszteket, előléptetheti a kódot a DEVELOPMENT ágból a FŐ ágba. Ezt a folyamatot fordított integrációnak nevezzük. Ezzel szemben, ha a kódot a FŐ ágból a DEVELOPMENT ágba egyesíti, a folyamatot továbbítási integrációnak nevezzük.

Főág
A kódágak létrehozásáról és egyesítéséről a CodePlex webhelyén található alábbi oldalon talál további információt: Team Foundation Server Branching Guide 2.0.

Az elágaztatás és az egyesítés a következő alapelveket foglalja magában:

  1. Minden ágnak rendelkeznie kell egy meghatározott szabályzattal a kód ebbe az ágba való integrálására vonatkozóan. Az előző ábra ágszerkezetében például hozzárendelhet egy csapattagot a FŐ ág tulajdonosához és kezeléséhez. Ez a tag felelős a kezdeti ágművelet végrehajtásáért, a FEJLESZTÉS ág módosításainak a FŐ ágba való visszaalakításáért, valamint a FŐ ág változásainak a FEJLESZTÉSI ágba való továbbításáért. A továbbítási integráció akkor fontos, ha a FŐ ág más ágak módosításait is integrálja.

  2. A FŐ ágnak olyan kódot kell tartalmaznia, amely megfelelt az integrációs teszteknek, hogy mindig készen álljon a kiadásra.

  3. A FEJLESZTÉSI (vagy munkahelyi) ág folyamatosan fejlődik, mert a csapattagok rendszeresen ellenőrzik a módosításokat.

  4. A címkék egy ág fájljainak pillanatképei egy adott időpontban.

    További információ: Címkék használata a fájlok pillanatképének készítéséhez.

A Team Foundation Build segítségével többféle típusú build közül választhat az ágakhoz: manuális, folyamatos, kapus, gördülő és ütemezett. Javasoljuk, hogy a FŐ ághoz egy kapus bejelentkezési buildtípus tartozik. Ez azt jelenti, hogy a FEJLESZTÉSI ágnak meg kell felelnie a FŐ ágra vonatkozó összes követelménynek, mielőtt véglegesítheti a fordított integrációt. A FEJLESZTŐI ágnak folyamatos buildtípust kell futtatnia, mert a csapatnak a lehető leghamarabb tudnia kell, ha egy új bejelentkezés hatással van a FEJLESZTŐI ágra.

Milyen gyakran kell a csapat integrálása és továbbítása?

Az alábbi ábrán látható módon a fordított integrációnak és a továbbítási integrációnak legalább a felhasználói történet befejezésekor kell történnie. Bár az egyes csapatok eltérően határozhatják meg a teljességet, a felhasználói történet befejezése általában azt jelenti, hogy a funkció és a megfelelő egységtesztek is befejeződnek. A FŐ ágba csak akkor integrálható, ha az egységtesztek igazolták a FEJLESZTÉSI ág stabilitását.

Ág két futam között
Ha egynél több munkaág (DEVELOPMENT) ága van, az integrációt az összes munkaágba azonnal továbbítania kell, amint bármely ág integrálódik a FŐ ágba. Mivel a MAIN ág stabil, a továbbítási integráció biztonságos. Ütközések vagy hibák fordulhatnak elő a munkaágakban, mert nem garantálható, hogy a munkaágak stabilak.

Fontos, hogy az összes ütközést a lehető leghamarabb feloldja. A FŐ ághoz tartozó kapus bejelentkezéssel sokkal egyszerűbbé teheti a fordított integrációt, mivel a minőségi kapuk segítenek elkerülni az ütközéseket vagy hibákat a MAIN ágban. További információ: Bejelentkezés egy olyan mappába, amelyet egy kapus bejelentkezési buildelési folyamat vezérel.

Hogyan kezeli a csapata a különböző felhasználói történeteket megvalósító forrásokat?

Ahogy az alábbi ábrán látható, a felhasználói szövegegységek befejezéséhez rendszeres időközönként be lehet jelentkezni a munkaág módosításaiba. Egyszerre több felhasználói történetet is implementálhat ugyanabban az ágban. A FŐ ágba való integrálást azonban csak akkor fordíthatja vissza, ha az összes folyamatban lévő munkát befejezi. Javasoljuk, hogy a felhasználói történeteket hasonló méretűre csoportosítsa, mert nem szeretné, hogy egy nagy felhasználói történet sok kisebb integrációját blokkolja. A felhasználói történetek két csoportját két ágra oszthatja.

A bejelentkezés befejezi a felhasználói történetet

Mikor kell a csapatnak ágat hozzáadnia?

Az alábbi helyzetekben érdemes ágakat létrehoznia:

  • Ha a kódot a meglévő ágaktól eltérő ütemezésben/ciklusban kell kiadnia.

  • Ha a kódhoz más ágházirend szükséges. Ha új ágat hoz létre, amely rendelkezik az új szabályzattal, stratégiai értéket adhat a projekthez.

  • Ha egy ügyfél számára kiadják a funkciókat, és a csapat olyan módosításokat tervez végrehajtani, amelyek nem befolyásolják a tervezett kiadási ciklust.

Ne hozzon létre elágaztatást minden felhasználói történethez, mert az magas integrációs költséget eredményez. Bár a TFVC megkönnyíti az elágaztatást, az ágak kezelésének többlettere jelentőssé válhat, ha sok ága van.

Hogyan kezeli a csapat a kiadásokat a verziókövetés szempontjából?

A csapatnak képesnek kell lennie a kód kiadására bármely futam végén. A Team Foundation Server használatával megjelölhet egy ágat, hogy pillanatképet készítsen a kódról egy adott időpontban. Ahogy az alábbi ábrán látható, a KIADÁS FŐ ágát címkézheti. Ez lehetővé teszi, hogy az ág ezen a ponton visszatérjen az állapotához.

Ág címkézése a kód pillanatképének készítéséhez
Mivel frissítéseket kell implementálnia a kiadásokhoz, egy kiadáshoz tartozó ág létrehozásával a csapat önállóan dolgozhat a következő futamon anélkül, hogy ütközések léptek fel a jövőbeli kiadásokkal. Az alábbi ábra egy olyan ágat mutat be, amely egy frissítés kódját tartalmazza, és amely vissza van integrálva a MAIN ágba a második futam végén történő kiadás után.

Frissítést tartalmazó ág fordított integrálása
Amikor létrehoz egy ágat egy kiadáshoz, ezt az ágat a MAIN ágból kell létrehoznia, amely a legstabilabb. Ha elágaztat egy munkaágból való kiadást, az integrációs problémákat okozhat, mivel a munkaágak stabilitása nem garantált.