| 224 | = Branches maken = |
| 225 | |
| 226 | Soms kan het handig zijn een zogenaamde ''branch'' te maken. |
| 227 | |
| 228 | Dit betekend dat je een bepaalde directory naar een appart deel op de SVN server kopieerd. Op deze manier kun je langere tijd aan grote wijzigingen werken, zonder dat mensen daar last van hebben. |
| 229 | |
| 230 | == Een nieuwe branch starten. == |
| 231 | |
| 232 | Stel je bent al een tijdje bezig en je hebt nog niet gecommit. En je denkt: Ik wil dit niet comitten in de hoofd tree (trunk) want dan heeft iedereen last van mijn wijzigingen: |
| 233 | {{{ |
| 234 | psy /home/psy/syn3/install # svn status |
| 235 | M meebezig |
| 236 | }}} |
| 237 | |
| 238 | Kopieer de huidige versie, inclusief wijzigingen naar een branch: |
| 239 | {{{ |
| 240 | psy /home/psy/syn3/install # svn copy . https://tracy.datux.nl/syn3/svndav/syn3/branches/installer-edwin |
| 241 | |
| 242 | Committed revision 4292. |
| 243 | }}} |
| 244 | |
| 245 | Nu is er een nieuwe installer branch gemaakt op de SVN server. Om nu te zorgen dat je huidige werkdir aan die branch 'gekoppeld zit': |
| 246 | {{{ |
| 247 | psy /home/psy/syn3/install # svn switch https://tracy.datux.nl/syn3/svndav/syn3/branches/installer-edwin |
| 248 | G meebezig |
| 249 | Updated to revision 4292. |
| 250 | psy /home/psy/syn3/install # svn status |
| 251 | psy /home/psy/syn3/install # |
| 252 | }}} |
| 253 | |
| 254 | Nu is in jou werk directory alleen /home/psy/syn3/install gekoppeld aan de branch. De rest van je tree zit nog gewoon aan trunk: |
| 255 | {{{ |
| 256 | psy /home/psy/syn3/install # svn info |
| 257 | Path: . |
| 258 | URL: https://tracy.datux.nl/syn3/svndav/syn3/branches/installer-edwin |
| 259 | Repository Root: https://tracy.datux.nl/syn3/svndav/syn3 |
| 260 | Repository UUID: 32fb8cd9-e6f8-0310-8218-8ae0250c70fb |
| 261 | Revision: 4292 |
| 262 | Node Kind: directory |
| 263 | Schedule: normal |
| 264 | Last Changed Author: edwin |
| 265 | Last Changed Rev: 4292 |
| 266 | Last Changed Date: 2008-11-06 10:31:18 +0100 (Thu, 06 Nov 2008) |
| 267 | |
| 268 | psy /home/psy/syn3/install # cd .. |
| 269 | psy /home/psy/syn3 # svn info |
| 270 | Path: . |
| 271 | URL: https://tracy.datux.nl/syn3/svndav/syn3/trunk |
| 272 | Repository Root: https://tracy.datux.nl/syn3/svndav/syn3 |
| 273 | Repository UUID: 32fb8cd9-e6f8-0310-8218-8ae0250c70fb |
| 274 | Revision: 4287 |
| 275 | Node Kind: directory |
| 276 | Schedule: normal |
| 277 | Last Changed Author: edwin |
| 278 | Last Changed Rev: 4285 |
| 279 | Last Changed Date: 2008-11-03 00:53:54 +0100 (Mon, 03 Nov 2008) |
| 280 | }}} |
| 281 | |
| 282 | Zodra alle commits komen nu dus in je eigen branch, en niemand heeft hier last van. |
| 283 | |
| 284 | == Terug switchen naar trunk == |
| 285 | |
| 286 | Dit kan zo: |
| 287 | {{{ |
| 288 | psy /home/psy/syn3/install # svn switch https://tracy.datux.nl/syn3/svndav/syn3/trunk/install |
| 289 | U meebezig |
| 290 | Updated to revision 4292. |
| 291 | }}} |
| 292 | |
| 293 | Een switch doet ook meteen een svn update zoals je ziet. Als je nu in de file 'meebezig' kijkt, zie je de trunk versie en niet je eigen branch. |
| 294 | |
| 295 | Op deze manier kan je snel en makkelijk heen en weer switchen tussen trunk en je eigen branch. |
| 296 | |
| 297 | == Je branch terug mergen in trunk == |
| 298 | |
| 299 | Als je branch zo ver is dat je de wijzigingen in trunk wilt mergen, switch je eerst terug naar trunk en tik je het volgende: |
| 300 | {{{ |
| 301 | psy /home/psy/syn3/install # svn merge https://tracy.datux.nl/syn3/svndav/syn3/branches/installer-edwin |
| 302 | --- Merging r4288 through r4292 into '.': |
| 303 | U meebezig |
| 304 | psy /home/psy/syn3/install # svn status |
| 305 | M . |
| 306 | M meebezig |
| 307 | }}} |
| 308 | |
| 309 | Nu zijn de wijzigingen in je werk directory gemerged. Je kan controleren of de merge goed gegaan is en dan een svn commit doen als alles klopt. |
| 310 | |
| 311 | Je kan ook de nieuwste wijzigingen in de trunk naar jou branch mergen, op dezelfde manier. Switch dan eerst naar je branch en merge de trunk. |
| 312 | |
| 313 | |
| 314 | == Huidige grote branches == |
| 315 | |
| 316 | Op dit moment is er ook een gcc4 branch, met daarin de nieuwste gcc4 en glibc2.7. |
| 317 | |
| 318 | Deze kan handig zijn als je hiermee wilt experimenteren. Het project 'xbmc' compiled bijv. alleen maar met gcc4 en niet met de huidige gcc3. |
| 319 | |
| 320 | Je KAN je werkdirectory omswitchten naar de branch, maar het is handiger om een apparte checkout te doen. Het is namelijk een complete syn-3 tree. |
| 321 | |
| 322 | Dus, ''svn co https://tracy.datux.nl/syn3/svndav/syn3/branches/gcc4'' |
| 323 | |