| 195 | | '''TODO:''' |
| 196 | | Geen van ons heeft git echt uitgeprobeerd, maar het heet dat git-subversion bridging eenvoudig is (en ongeveer net zo werkt als bij Mercurial). |
| | 195 | Git is een gedistribueerd versiebeheer systeem met een zeer uitgebreide toolset en een nogal cryptische ''core'' -- een kern waarmee je wel alles kunt. Git beschikt ook over een goeie SVN bridge, zodat je met git kunt werken en de gedistribueerde kenmerken van git kunt gebruiken en '''tegelijk''' ook gecontroleerd met Subversion om kunt gaan. Hierdoor wordt het mogelijk om samen te werken in git en dan af te ronden in Subversion. |
| | 196 | |
| | 197 | === Starten === |
| | 198 | |
| | 199 | - '''Initiele Clone''' Maakt een clone in de directory `openac-git` en gaat vervolgens |
| | 200 | de (remote) development branch volgen. Bij de eerste clone komt er een foutmelding |
| | 201 | dat er geen checkout gemaakt kan worden omdat HEAD geen remote-ref heeft. Die kan |
| | 202 | je negeren, want je wilt toch een andere branch volgen. |
| | 203 | {{{ |
| | 204 | git clone -o mirror ssh://trac2/home/svn/openac-git |
| | 205 | cd openac-git/ |
| | 206 | git svn init --prefix=mirror/ https://svn.openac.fenac.nl/development |
| | 207 | git svn dcommit |
| | 208 | }}} |
| | 209 | - '''Update''' Dit werkt de checked out working-directory bij naar de |
| | 210 | huidige stand van SVN, met behoud van eigen commits sinds de laatste keer |
| | 211 | (zoals `svn up`). |
| | 212 | {{{ |
| | 213 | git checkout git-svn |
| | 214 | git pull --rebase |
| | 215 | }}} |
| | 216 | - '''Commit''' In git kan je altijd lokaal committen. Deze commits gaan niet (direct) naar de centrale server, en je kan dus experimenteren en/of een feature in meerdere commits opbouwen zonder dat dat zichtbaar is voor de buitenwereld. Hoe git commits te doen staat in de git handleidingen. |
| | 217 | - '''SVN Push''' Als je iets af hebt en dat om wilt zetten naar SVN changesets, doe je |
| | 218 | {{{ |
| | 219 | git svn dcommit |
| | 220 | }}} |
| | 221 | Hiermee worden je git commits een-voor-een naar SVN gestuurd als SVN commits. Je checkout wordt ook (net als bij update) bijgewerkt naar de meest recente SVN checkout. |
| | 222 | |
| | 223 | === Workflow === |
| | 224 | |
| | 225 | (advanced dingen zoals samenwerken aan een branch in git en later afmaken naar SVN) |
| | 226 | |
| | 227 | === Infrastructuur === |
| | 228 | |
| | 229 | (dit is de documentatie over hoe de git-svn infrastructuur op de server is geconfigureerd) |