Subversion Auto Properties
At cf.Objective() I attended "Subversion for Smarties - Do More With Subversion" given by Cameron Childress and it was a good presentation. I picked up a few things that I didn't know before like changelists which were added in Subversion 1.5. The presentation did cover other things like svn properties on files like svn:keywords and how to add them with svn propset. While svn propset works, it is possible to set svn properties on files globally on the create of the file without having to manually setting them. This is done my modifying the subversion client configuration.
On Mac or Linux the subversion client configuration file is:
~/.subversion/config
On Windows the subversion configuration file is:
C:\Documents and Settings\{username}\Application Data\Subversion\config
Or using TortoiseSVN on Windows:
- Right click on any Windows folder
- Select TortoiseSVN -> Setting
- Click on "Edit" for Subversion configuration file
The config file is used by all subversion clients, so that once you make the change it will be used by Subclipse, TortiiseSVN, svnX, etc. The config file is nothing more than a text file with name value pairs. The file uses "#" to denote comments, remove the "#" to uncomment the line.
The first thing you need to do is find the [miscellany] section of the config file to uncomment and modify the line as shown below:
enable-auto-props = yes
Next in the [auto-props] section, remove everything below [auto-props] and replace it with below:
# Code formats
*.as = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
*.bat = svn:eol-style=CRLF; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain; svn:executable
*.cmd = svn:eol-style=CRLF; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain; svn:executable
*.c = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
*.cfc = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
*.cfm = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
*.cgi = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn-mine-type=text/plain
*.cpp = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
*.groovy = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
*.gsp = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
*.h = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
*.java = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
*.js = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/javascript
*.jsp = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
*.m = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
*.php = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/x-php
*.pl = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/x-perl; svn:executable
*.pm = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/x-perl
*.py = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/x-python; svn:executable
*.sh = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/x-sh; svn:executable
# Image formats
*.bmp = svn:mime-type=image/bmp
*.gif = svn:mime-type=image/gif
*.ico = svn:mime-type=image/ico
*.jpeg = svn:mime-type=image/jpeg
*.jpg = svn:mime-type=image/jpeg
*.png = svn:mime-type=image/png
*.tif = svn:mime-type=image/tiff
*.tiff = svn:mime-type=image/tiff
# Data formats
*.avi = svn:mime-type=video/avi
*.doc = svn:mime-type=application/msword
*.eps = svn:mime-type=application/postscript
*.gz = svn:mime-type=application/gzip
*.jar = svn:mime-type=application/java-archive
*.mov = svn:mime-type=video/quicktime
*.mp3 = svn:mime-type=audio/mpeg
*.pdf = svn:mime-type=application/pdf
*.ppt = svn:mime-type=application/vnd.ms-powerpoint
*.ps = svn:mime-type=application/postscript
*.psd = svn:mime-type=application/photoshop
*.rtf = svn:mime-type=text/rtf
*.swf = svn:mime-type=application/x-shockwave-flash
*.tar = svn:mime-type=application/x-tar
*.tgz = svn:mime-type=application/gzip
*.wav = svn:mime-type=audio/wav
*.xls = svn:mime-type=application/vnd.ms-excel
*.zip = svn:mime-type=application/zip
# Text formats
.htaccess = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
*.cfg = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
*.css = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/css
*.csv = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
*.dtd = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/xml
*.htm = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/html
*.html = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/html
*.ini = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
*.properties = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
*.sql = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/x-sql
*.txt = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
*.xhtml = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/xhtml+xml
*.xml = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/xml
*.xsd = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/xml
*.xsl = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/xml
*.xslt = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/xml
*.xul = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/xul
*.yml = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
AUTHORS = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
BUGS = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
CHANGES = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
COPYING* = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
DEPENDENCIES = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
DEPRECATED = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
INSTALL* = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
LICENSE = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
Makefile* = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
MANIFEST* = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
PLATFORMS = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
README = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
TODO = svn:eol-style=native; svn:keywords="Author Date Id Rev URL"; svn:mime-type=text/plain
Make sure none of the lines start with spaces, or you will get an error message. The list above is not complete, but pretty much covers all the file types I have run into. For more information on svn properties the best source is the online book, Version Control with Subversion, in particular chapter 3.
Upgraded to Leopard
So today I finally took the plunge to upgrade my MBP to Leopard. I am not really looking to be a trailblazer and waited for Adobe to release ColdFusion 8.0.1 with official Leopard support and knowing that a new release of an OS always have issues. I didn't want to deal with them. But the main reasons to upgrade for me were Spaces, Time Machine, and full 64-bit OS on Intel.
So I backed up all my important data. Now, I know I could do the upgrade from Tiger to Leopard, but coming from Windows and dealing with other software upgrades, I just distrust them. Clean install for me. I shouldn't have been surprised at how smooth the process was. Rebooted then ran Software Update to get 10.5.2 and all the updates.
Overall, I am happy with with upgrading to Leopard but I have run into the graphics corruption on my MBP, hopefully that will get fixed soon.
Switched to MacBook Pro
For a while now I have been considering switching from a PC to a Mac. I had used Macs previously in college for non-linear video editing at the student-run tv station (STN 49), but never really like Mac OS 8 or 9 and Power Macintoshes. Mac OS X was interesting and started to think about possibly getting a Mac when Apple released the Mac mini. When Apple announced the switch from PowerPC to Intel, I became more interested. When Apple released the MacBook Pro with Intel Core 2 Duo, that finally made me want to get one.
I have never been stuck on only using Windows, for the longest time I had played with different distros of linux (slackware, redhat, ubuntu) either dual-boot or as my primary OS. Hell, I even used IBM OS/2 Warp for a time as my primary OS.
Adding to the decision was the fact that my 5 year old Compaq Presario 2701 laptop was showing it's age. So it was time to upgrade. I set a target price range of about $1,800 that I was willing to spend on a new laptop (not including extended warranty) based upon my older laptop. I also expect to get a minimum of 4 years of use out of it.
I priced out equivilent Dell and HP/Compaq (business class) units to match the specs of a 15" MacBook Pro. Neither Dell or HP/Compaq could exactly match the specs of the MBP but the pricing was more inline with what I wanted. Price for me isn't the sole factor to decide though. Having never owned a Dell, I didn't know what to expect for warranty support or how easy getting it would be. Atleast with HP/Compaq, I knew since I had to send my old laptop back twice for different reasons (CPU heatsink and hard disk). Apple has the added benefit of the retail stores and dealt with them when my 4th generation iPod crapped out.
But the price of the MBP at $2,000 really didn't thrill me. To me, computers are a commodity item and don't believe that a brand is better than another when more or less the parts inside are the same. But the idea of owning a MBP, using OS X, and the "coolness" factor was really appealing to me, so I started to look for ways to cut the price. Explored possibly purchasing from MacMall, but I got some feedback from a friend regarding purchasing from them. Then I found out that I qualified for the Federal Employee Discount (working for a gov't contractor) and that brought the price of the MBP right inline with what I wanted to pay.
Just to maximize the savings, I waited until Black Friday to buy the MBP because it is the only time Apple actually has a sale and there might have been a chance Apple marks it down. No luck, they cut the price on the MacBook. The other benefit is that for Thanksgiving I am at my parent's house in Delaware, the home of tax-free shopping. A new thing that the Christiana Mall did this year was to open at 3am on Black Friday. I wasn't crazy enough to go at 3am, but my brother and I were at the mall at 4am. The mall was packed and there was a line to get into the Apple store. Only spent about 20 minutes there to buy the MBP, AppleCare, and Parallels.
So once I get it to my parent's and out of the box, the first thing I do is pull my Nokia 6822 phone and use bluetooth to sync my contacts to Address Book. It was just so easy and see what they mean by "It Just Works". So far very happy with the purchase.