The power of image – merging in SVN

October 22, 2007 on 12:08 am | In Uncategorized | 1 Comment

I’ve recently read a short explanation of joining in SQL. I was simply amazed how ease it was to explain fairly complicated matter with few well chosen pictures. Please read it, no matter how good are you in SQL – it will surely help you next time you will have to explain joining in SQL to someone else.

I’ve decided to try the same way to taking SVN branching and merging as a target.

To remind you. When you are using the source control system like Subversion (SVN) you can always branch. Meaning you can take a copy of your current sandbox and check it in as a new “path of development” in your SVN server. From now on can work either on your origin branch or newly created branch. The two branches are not separated eternally. You can always merge them. But it is not so ease at the first time. It will take a while to grasp the details.

Lets say we have a main branch of development placed in /trunk and we’ve branched it at revision 101 to /branches/x (r102). Someone works on /trunk (fixing bugs) and someone else on /branches/x (making a new design). The /branches/x is to by merged someday with /trunk, but in a mean while you don’t want the two branches to drift to far apart.

What will you do? Merge your last revision in /branches/x with your last revision in /trunk right? Well it is not so easy! You have to merge the /trunk at revision you branched to the HEAD with you working copy. Not so clear, right? Lets look at this image.

image

You’ve branched at revision 101 and right now you are on revision 110 at you /trunk. And you want all the changes in your /branches/x – not to drift to far away. So you have to start at r101 and go all the way to r110 and apply all the changes to your working copy.

In tortoise it would like this:

image

The same thing is when you are merging the changes in your /branches/x with the /trunk.

image

You have to traverse all over you /branches/x from the time you’ve separated from /trunk to the last change you’ve made in /branches/x and apply everything to your working copy. Voila!

IProgrammable goes multilanguage

October 14, 2007 on 7:55 pm | In Uncategorized | No Comments

Dobra bez żartów. Właśnie zainstalowałem plugin do WordPress o nazwie Gengo i sprawdzam jak na IProgrammable wyglądają polskie ogonki. Żeby nie zostawiać was z bezsensownym postem testowym rzucę trochę treści.

Przytoczę wam małą anegdotę. Uczestniczę w moim pierwszym kursie programistycznym Microsoftu. Prowadzący najwyraźniej programistą .NET nie jest ale myślę sobie będzie dobrze. W końcu prowadzący przede wszystkim powinien być dydaktykiem i porządnie przekazać mi wiedz, ze którą moja firma płaci prawie trzy tysiące złotych. Prowadzący pyta:

- A wiedzą państwo jak w C# tworzy się parametry opcjonalne?

Ki czort, myślę sobie. Nigdy o czymś takim w .NET nie słyszałem i próbuję naiwnie:

- Nie wiem ale spróbowałbym polimorfizmem.

- A właśnie, że nie wystarczy użyć słówka optional – odpowiada pewnie prowadzący.

Kompletnie zwątpiwszy w swoją wiedzę i po troszę ciesząc się faktem, że będę mógł pochwalić nowo zdobytą wiedzą na blogu przeskakuję do VS by przekuć metal puki gorący. Niestety efekt był opłakany. W C# nie ma czegoś takiego jak parametry opcjonalne. Po prostu!

Powered by WordPress with Pool theme design by Borja Fernandez.
Text © Marcin Kawalerowicz. Hosting CODEFUSION.