merge

svnX – Use DiffMerge as diff tool

So, I use svnX on MacOSX and I find DiffMerge a much nicer application than the default FileMerge, but I couldn’t get it to load. I was getting some spurious error about a missing .sh file:

Can’t find tool ‘diffmerge.sh’ required to use DiffMerge

Anyway. I found this file in the following folder:

/Applications/DiffMerge.app/Contents/Resources/

And I simply copied it to a folder within the path env,

cp /Applications/DiffMerge.app/Contents/Resources/diffmerge.sh /usr/local/bin/

Sorted. Don’t forget you actually have to change the application preferences.

Git, trying to ignore a database config

If you are trying to ignore a file and git is mucking you about, it may be because the file you are trying to ignore is already in the repository, and therefore it sees it as a change, and will probably delete the file.

Instead, run this command line function:

git update-index --assume-unchanged

i.e.

git update-index --assume-unchanged application/config/database.php

Run this for all the files you need to ignore after the initial checkout.

MyODBC and Access – Urgh

Well. I have had to sort out a report for someone who likes using Microsoft Access.

We use the MySQL ODBC driver, called MyODBC Connector. But its relationship with Access is riddled with bugs. Can’t decide who to blame, but its pretty horrific.

So I created a blank Access database and connected the tables I required for my report. Alas, one of the fields has a name length of 16 or so characters, so this crashes Access completely. Great.

I made a copy of the MySQL table and renamed it to something shorter. This worked. So, I needed to alias the table somehow.

I created a VIEW in MySQL with a shorter name:

CREATE VIEW smallname SELECT * FROM longernamedtable;

I was able to link this in Access fine. Not a problem, however, all the VARCHAR fields in the view came out as chinese characters. AARGH

So, I managed to utililise the MERGE engine. Here goes:

CREATE TABLE smallname SELECT * FROM longernamedtable;
DELETE FROM smallname;
ALTER TABLE smallname ENGINE=MERGE;
ALTER TABLE smallname UNION=(longernamedtable);

Now, we have a mirrored table. Brilliant. It linked to Access fine, and the VARCHAR’s were back to normal.

Thought I would share that with you. Because this little problem was starting to drain all the life out of me…

 

PS. The tables need to be ISAM for this to work.