Jaký je nejlepší proces kontroly kódu při použití GIT? Máme externího poskytovatele GIT (Unfuddle) a máme omezení využití zdrojů – takže nemůžeme mít vyhrazená vzdálená úložiště pro každého vývojáře.

Aktuální proces:

  • My mít server GIT s master větví, ke kterému se každý zaváže
  • Devs pracovat mimo místní master zrcadlo nebo místní funkce
  • Devs push to server „s master větev
  • Devs požaduje kontrolu kódu při posledním potvrzení

Problém:

  • Jakákoli chyba v kontrole kódu je již v době, kdy je chycena, v hlavní verzi.
  • Horší je, že se obvykle někdo několik hodin spálil abychom zjistili, co se stalo …

Takže bychom chtěli

  • Před dodáním do „master“ provést kontrolu kódu.
  • Mít proces, který funguje s globálním týmem (žádné přes rameno recenze!)
  • něco, co nevyžaduje, aby byl individuální vývojář u svého stolu / stroje být napájen, aby někdo jiný mohl vzdáleně i n (odstranit závislost člověka, vývojáři jdou domů v různých časových pásmech)

TortoiseGIT používáme k vizuální reprezentaci seznamu změněných souborů, různých souborů atd. Někteří z nás spadnou do GIT shell, když GUI není dost, ale v ideálním případě bychom chtěli, aby byl pracovní postup jednoduchý a založený na GUI (chci, aby nástroj zvedl jakoukoli zátěž, ne mé vývojáře).

Komentáře

  • Děláte test jednotky před zahájením práce?
  • @GuyCoder: Většinou ano.
  • Pokud váš hostitel neposkytuje kontrolu kódu schopnost získat lepšího hostitele. Podívejte se na Gerrita a zjistěte, zda nenajdete hostitele, který jej poskytuje.

Odpovědět

A jednoduchým, ale efektivním modelem je model požadavku na vyžádání GitHub , kde přispěvatelé podávají žádosti „prosím sloučte můj kód“. Správce zkontroluje sady změn a rozhodne, zda potřebují více práce nebo zda jsou vhodné ke sloučení. Poté se může sloučit do hlavní větve. Committers obecně nemají povoleno tlačit přímo do hlavní pobočky (toto lze přizpůsobit vašemu vkusu, povolujeme „minor“ zavázání jít přímo dovnitř).

Komentáře

  • Máme globálně úzký tým 7 profesionálních vývojářů (vs. anonymních přispěvatelů), takže je bezpečné nechat každého přímo tlačit na našeho vzdáleného pána. Ačkoli je to ' s link + intro a samostatné odpovědi, které dávám přednost, v tomto případě to dává smysl. Skvělý zápis na odkaz, díky!
  • @Sid S týmem 3 bych je ' nenechal všechny tlačit na zvládnutí.
  • Požadavky na vytažení jsou k dispozici také v Rhodecode a Atlassian Stash
  • @Andrew: Proč ne? Existuje mnoho problémů, které mohou být generovány tím, že bude fungovat, že celé týmy budou pracovat, i když se zadusí. To vše lze zmírnit, ale jednobodová struktura příkazu a ovládání je pro některé situace vhodnější než jiné.

Odpověď

Git je distribuovaný systém pro správu verzí: nemáte pouze jedno repo s jednou větví!

Můžete nastavit více repozitářů – jedno pro každého vývojáře – a další, které je hlavním repo. Když je jedna z jejich větví připravena ke sloučení, vývojář požaduje sloučení a jejich změny se stáhnou z jejich větve / repo do hlavní.

Předtím, než ke sloučení skutečně dojde, může recenzent stáhnout změny do jejich prostředí a zkontrolovat je, než je přiměje k zvládnutí.

Přidané výhody spočívají v tom, že tímto způsobem může mít vývojář tolik větví, kolik chce, pojmenovaných, ať už chtějí, aniž by se navzájem rušili nebo dokonce měli vidět se navzájem tolik špinavé prádlo.


Naučte se také žargon: výrazem „Devs zavázat k hlavní větvi serveru“ myslíte, že push jejich změny zvládnout?

Komentáře

  • ano, push jejich práce. Na serveru GIT nemůžeme ' mít jedinečná vzdálená úložiště, protože platíme hostiteli GIT a účtují za každé úložiště. Měli jste na mysli mít více vzdálených poboček na vývojáře? A když řeknete the reviewer can pull the changes into their environment jaké přesné příkazy GIT (nebo tok TortoiseGIT) máte na mysli?
  • Ne, mám na mysli mít více úložišť; jeden na vývojáře a na tomto úložišti mohou mít tolik poboček, kolik chtějí. Pokud jde o pull, nevím ', jaký by byl příkaz v TortoiseGIT – ale příkaz je git pull . Je to ' opak opakování – vytahujete změny ze vzdáleného úložiště a aktualizujete tak své prostředí pomocí práce, kterou mohli ostatní vývojáři udělat.
  • Znám git pull 🙂 …Požádal jsem o úplnou syntaxi, abych zkontroloval systém repo / pobočky / značky pro push / pull, které jste odkazovali. Právě teď git pull stejně, ' je to právě mimo remote: master – což způsobuje problémy. Stevenovy ' odkazy byly skvělé. Díky
  • V tomto případě je pobočka v hostovaném repozitáři pro všechny praktické účely stejná jako jiná repo.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *