Friday, 13 January 2012

Q: What is a blog?

Q on Yammer:

"now what about the question - is an online journal the same as blog?
although technically a blog is a weblog, blogs have grown into a
public domain where people discuss and banter over a certain topic or
discussion raised by the blogger. an online journal on the other hand
could be a dear diary or a "whate happened to me today". any thoughts
on this?"

A:

a blog is a blog
you can use it to share
or you can use it to care
you can use it to joke
or you can use it to poke
you can talk to other people
or stay alone in your steeple

its just a way to go 'bla bla bla'
and the only difference is
WHY you go 'bla bla bla'

(apologies to Dr Seuss)

Wednesday, 11 January 2012

Reintegration merge in SVN using TortoiseSvn

Currently doing some reintegration merges in SVN, and one thing
tripped me up. I forgot to commit the mergeinfo file that got created
during the merge!! This would have meant that SVN would have no
knowledge that a branch was already reintegrated back into trunk (or
another branch).

The process using TortoiseSVN would be:

For example, where we are merging big_branch_1 into trunk

1. Checkout trunk into working directory and go into this directory in Explorer

2. Using TortoiseSvn right-click and select TortoiseSvn --> Merge

3. On the Merge dialog box, select "Reintegrate a branch" radio
button, click Next

4. Under "Tree merge", and under "From URL" select the branch we want
to reintegrate, then click on Next.

5. Under "Merge options", you can select options such as ignoring or
comparing whitespace differences, etc.
I normally click on "Test merge" so it can go through a test of the
merge and show in advance any potential conflicts. (I haven't seen
any, but I think that's what it does)

7. Click on "Merge", and fix any conflicts that come up.

6. After that's done, do a commit, and put in an appropriate message
to indicate what you've done

7. NOTE 1: During the commit, make sure "Show unversioned files"
checkbox is ticked

NOTE 2: There will be an additional, unversioned change listed in the
commit list. At first I thought it was a new file, but it's actually
an updated SVN property.
The svn:mergeinfo property make sure you commit this change,
otherwise, SVN doesn't know that a branch has been reintegrated.

If you leave out this file from a commit, all that SVN knows is that
you put in a bunch of changes to a number of files.

In one earlier merge, I rolled back the "file". So I just went back
into that directory, ran through the merge again, and committed the
updated svn:mergeinfo.
There shouldn't be any other changes to commit since the changed files
have already committed. I only did this so that svn:mergeinfo was up
to date.

Some information in this post may be incorrect as I've never had to do
these types of merges before. I'll update them once I've read up more
on this.

Further reading:

http://durak.org/sean/pubs/software/version-control-with-subversion-1.6/svn.branchmerge.basicmerging.html
http://www.collab.net/community/subversion/articles/merge-info.html