Aug 052009

i just came accross an unliked but necessary task. Due to a missunderstanding I was required to merge 2 branches. As I was the very lucky external consultant volunteering in absense for this task I didn’t know what changes where made in the versions stored in the vcs. Luckily the other version was available as patch – containing a bit more then 400 files. As there were no tools which would help to merge it automatically i’ve choosed the bloody painful way of manual merging. At the end it took me less than a day and I was quite happy about the environment I’ve setup to make merge easier. Because I’m unbelievably generous I share this setup with you…

For a short while I was considering just setting up a git repository on the original version and applying both change sets to different branches. As the result wasn’t predictable and my current git guru didn’t recommend this way at all for this particular task. I was considering a few more options but none of them did allow an almost automatic merge. Basically there was an additional requirement – the software needed to be compilable at the end ;)

“I’m German, I’m efficient” .. and I’m lazy .. i hate repeating the same steps again and again.. so I configured my working environment a bit to get rid of some of the steps. I’ve used Total Commander with the ShellDetails plugin. I’ve configured ShellDetails to see the revision of a file in the file list to be able to identify which file was already customized and which one not. This allowed my to decide quickly what to replace.

Additionally I’ve installed Examdiff a nice diff tool for Windows. After getting tired by dragging and dropping files into it I’ve also installed AutoHotKey and started writing a small script to call ExamDiff to be started as soon as I have selected 2 files. I’ve basically changed the existing sample to get rid of the use of total commander’s own compare tool. Unfortunately it didn’t work as easy as I expected – I left this part for further investigation. I struggeled when I tried to identify the selected files in the file view. I have no idea how to get their names and paths. When I’ve started to spend too much time on it I’ve just stopped and left it for further investigation.

Any hints are much appreciated :)

Configuring ShellDetails

  • Donwload and install it from the mentioned source. Open the zip in Total Commander it will trigger the plugin install process automatically.
  • Open the ShellDetails.ini (in the same folder as the wincmd.ini) and add the folders containing vcs content.
  • Go back to Total Commander and open Configuration > Options. Select Display > Custom Columns. Click on New and add custom columns for your desired configuration.

That’s all. Now you can choose a different view for the vcs folders.

Configuring ExamDiff

Nothing much to do. I’ve just changed the editor to Ultraedit. So Right Click > View / Edit on a file opens it directly in my favourite text editor.

Configuring AutoHotKey

Install. Write a script. Double click your script. Done.

Popularity: 3% [?]

Tags: , , , , , , ,