Changes between Version 12 and Version 13 of Documentatie/Ontwikkelaar/Omgeving/Tools


Ignore:
Timestamp:
05/01/13 13:48:28 (13 years ago)
Author:
adriaan
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Documentatie/Ontwikkelaar/Omgeving/Tools

    v12 v13  
    243243 
    244244 
    245  - '''Lokale branch''' Om een ticket op te lossen in een aparte (lokale, heel goedkope) branch, maak je een branch, schakel je daar op over, werk je normaal en doe je gewoon git commits. Af-en-toe controleer je dat je hele geschiedenis van fixes nog werkt ten opzichte van wat er nu in SVN staat. Je kan tussendoor ook wisselen naar andere branches of naar de huidige staat van SVN als je aan iets anders moet werken. Tenslotte maak je de branch af met ''dcommit'' en verdwijnt het als lokale branch -- de commits worden allemaal omgezet in SVN commits. 
    246    - '''Maak branch''' 
    247    - '''Wissel branch''' 
    248    - '''Branch afmaken''' Dit is stiekum nog een gepiel. Je wilt je lokale changesets rebasen naar een recente SVN changeset en dan ''dcommit'' doen; daarna ''git-svn'' en ''mirror/git-svn'' bijwerken en de lokale branch (als naam) verwijderen en de commits uit de oude branch die niet meer bereikbaar zijn, garbage collecten. De kunst is om merge-commits te vermijden. 
    249  
     245 - '''Lokale branch''' Om een ticket op te lossen in een aparte (lokale, heel goedkope) branch, maak je een branch, schakel je daar op over, werk je normaal en doe je gewoon git commits. Af-en-toe controleer je dat je hele geschiedenis van fixes nog werkt ten opzichte van wat er nu in SVN staat. Je kan tussendoor ook wisselen naar andere branches of naar de huidige staat van SVN als je aan iets anders moet werken. Tenslotte maak je de branch af met en verdwijnt die -- de commits worden allemaal omgezet in SVN commits. 
     246   - '''Maak branch''' Kies een naam voor de lokale branch. Als het voor een ticket is, gebruik dan de naam ''ticketNNNN'' met het ticket nummer erin. Hiermee houd je de ticket-branches duidelijk zichtbaar ten opzichte van feature- en experimenteer-branches. Start de branch op ''git-svn'' zodat je vanaf een bekende SVN revisie begint: 
     247   {{{ 
     248git checkout git-svn 
     249git checkout -b ticketNNNN 
     250}}} 
     251   - '''Wissel branch''' Als je tussendoor van branch wilt wisselen -- bijvoorbeeld om verder te werken aan een ander ticket of om ''git-svn'' bij te werken -- dan gebruik je weer `git checkout`, bijvoorbeeld een van deze: 
     252   {{{ 
     253git checkout git-svn 
     254git checkout ticketNNNN 
     255}}} 
     256   - '''SVN bijwerken''' Zoals gewoonlijk kan je de branch ''git-svn'' bijwerken zoals hierboven beschreven. Maar daarmee heb je niet je eigen wijzigingen overgezet naar (git-)commits vanaf de meest recente SVN revisie. Daarvoor moet je eerst bijwerken vanuit SVN, en dan je eigen commits er bovenop zetten: 
     257   {{{ 
     258git checkout git-svn 
     259git pull --rebase 
     260git checkout ticketNNNN 
     261git rebase git-svn 
     262}}} 
     263   - '''Geschiedenis aanpassen''' In git doe je heel vaak kleine commits en er kunnen ook "tussentijdse" tussen zitten die op zichzelf niet interessant zijn. Je kunt een branch met commits interactief herschrijven door commits samen te voegen en log-messages te veranderen, voordat je ze naar SVN stuurt. Daarvoor gebruik je de `-i` vlag bij rebase: 
     264   {{{ 
     265git checkout ticketNNNN 
     266git rebase -i git-svn 
     267}}} 
     268   Dit start een tekst-editor op met instructies over hoe je de commits kunt her-ordenen of anders aanpassen. 
     269   - '''Branch afmaken''' Ben je helemaal klaar met een branch en wil je de commits in die branch overzetten naar SVN zodat ze ook echt in OpenAC zitten, dan doe je eerst SVN bijwerken, daarna SVN push en tot slot gooi je de branch weg -- in feite gooi je alleen de naam van de branch weg, de commits blijven staan want ze zitten dan al in SVN. Bijwerken en push staan hierboven beschreven. Weggooien van de branch gaat tenslotte zo: 
     270   {{{ 
     271git checkout git-svn 
     272git branch -d ticketNNNN 
     273}}} 
    250274 - '''Remote branch''' Als je wilt samenwerken aan een feature, maar niet wilt dat dit meteen zichtbaar is in SVN, of als je een bugfix hebt maar die wilt laten reviewer, dan kan je een lokale branch als '''remote''' branch in de git repository pushen. Dan wordt de branch zichtbaar voor anderen die de git repository gebruiken, maar wordt het niet naar SVN gepusht. Hierdoor kan er "onzichtbaar" aan iets gewerkt worden totdat het af is, en kan iets goed getest worden voordat het in SVN komt. 
    251275   - '''Branch publiceren'''