git: Please properly rename / move files and directories

I get frustrated when I browse a file from a git repository only to realize its history was lost due to improper renaming/moving of the file. It seems common for developers to manually rename/move a file in a git repository by using regular file system commands rather than git commands.

For example, let’s look at the following:

So what have we here? We start off by creating a new directory called test. We then go into the directory and start a new local git repository using git init. Next we create a new file called test.txt that contains simple text “hi”. test.txt is then added and committed to the repository. Finally, we use the mv command to rename the file to test2.txt.

git status shows us the result:

Git status after 'mv'
Result of git status

This is not what we were expecting. This shows that the original file test.txt was deleted and now there is an untracked new file called test2.txt, when it really should say that test.txt was renamed to test2.txt.

Btw, this goes for moving files as well. For example, rather than renaming the file, if it was moved to, say, a different folder, e.g. newFolder/test.txt, the result would be the same.

So how can this be solved? It’s actually not far off from the steps above. Let’s start with backtracking by reverting the rename:

Running the above commands produces the following result:

Use 'git mv' to rename/move files
Use ‘git mv’ to rename/move files

Much better, isn’t it? Renaming/moving files from git repositories the proper way will allow retention of their history, which is what we want.

Homebrew PHP Upgrade: “configure: error: Cannot find libz”

I was routinely upgrading my packages on Homebrew when I ran into the following error:

Of course, I did the first thing I always do when running into an error, Google it! And I found this link that suggested running the following:

After that,

ran fine.

PHP: Connect to SQL Server Database on Linux (and Mac OS X)

Microsoft SQL Server
Microsoft SQL Server

I have used PHP to connect to SQL Server plenty of time, and every time I would use the SQLSRV extension. The problem with that is, PHP’s SQLSRV extension is only available for Windows servers. Which wasn’t a problem for me because I would normally develop PHP on Windows machines. It wasn’t until recently I needed SQL Server access on a Linux machine.

It wasn’t as straightforward as I had hoped, and it certainly did not help to learn that the MSSQL PHP extension was removed in version 7.0, which took me a few hours to discover. I am writing this post in hopes that I save some people a few hours of pain, including my future self.
Continue reading “PHP: Connect to SQL Server Database on Linux (and Mac OS X)”

Help: My MacBook (Air/Pro) Won’t Charge!

I had a panic attack today. I had left my MacBook Air inside its sleeves and on my bookshelf for a week since I didn’t have an immediate need for it and I didn’t want someone stealing it. I took it out today to prepare it for a trip overseas, only to find that my MacBook Air wasn’t charging and the charger LED wasn’t turning on. I opted not to buy the extended AppleCare, and mine expired a few months ago. I looked up the cost for a new charger to find out it’ll cost me $79. $79!!! I knew of Apple and their premium prices, but I still found it shocking.

Continue reading “Help: My MacBook (Air/Pro) Won’t Charge!”