Archives: February 2014

Git: push/pull new branches to/from a remote repository

To push the branch newbranch to the remote repository origin:

$ git push -u origin newbranch

The -u option (we can also use the more verbose --set-upstream option) tells Git to also track this branch, thus allowing us to pull automatically future upstream commits using git pull.

To pull the branch newbranch from a remote repository origin, we first update our local repository:

$ git fetch origin

Then we create a local branch called newbranch and set it to track the upstream one:

$ git checkout --track origin/newbranch

Linux: check if your SSD supports TRIM

I have read a lot of articles about optimizing solid-state drives. Most of them talk about the TRIM feature but we need to make sure that our SSD is compatible. To check it:

$ sudo hdparm -I /dev/sda | grep TRIM

If the output is similar to the following, we are good to go:

*    Data Set Management TRIM supported (limit 8 blocks)
*    Deterministic read data after TRIM

Note that hdparm was not installed by default on my Arch Linux installation, but the package is available in core.

PHP: write var_dump output directly into a log file

I just encountered a bug in a production environment that I could not reproduce in development. In order to debug it without disrupting the users, I used the following snippet to directly send the debug output into a log file.

$contents = ob_get_contents();

Prefer var_dump to print_r as it would transform NULL and booleans (for example, FALSE would appear as an empty string).