Advanced Git branch filtering

Branch filters is an advanced Git feature, which is used less frequently, but there are situations where it can be quite handy. The branch filters can be used to manipulate (rewrite) multiple Git commits in the repository in a single step. It can be either a specific set of commits, the entire branch, or even all…

Lenovo ThinkPad Edge E540: SSD installation

The Lenovo ThinkPad Edge E-540, which I recently chose as my new laptop, is available in various hardware configurations. There are not only different CPU/GPU/memory options, but also the storage subsystem can somewhat vary. Nevertheless, the usual configurations available at big resellers (like Amazon, NewEgg etc.) come with either 1 TB 5400 rpm or 500 GB 7200 rpm rotational regular drive, coupled with an optional 16 GB SSD cache module.

There are multiple options to get a bigger SSD for the notebook, each having its advantages and disadvantages. The article describes a procedure to replace the original 16 GB SSD module by a bigger one, and use it as a boot drive with the system instead of cache. This way the big original HDD can stay in the machine, while still having the option to boot from the system from SSD.

Clean OEM Windows installation

If you bought a new computer or laptop with a pre-installed OEM Windows version, the standard way to (re)install the system is to use the Recovery partition, or the recovery media disks. However, there are cases, where someone might want to perform a clean system installation.

Conversion of SVN repository to Git

Migration of a Subversion (SVN) repository to the Git distributed version control system. In contrary to the CVS-to-Git migration, the guide does not make use of external scripts (like svn2git), as the Git built-in support of SVN is working reasonably well. For the following steps, it is recommended to use the GitBash command line under…

Migrate CVS to Git with cvs2svn

The following article describes how to migrate an existing CVS legacy repository to the more recent Git version control system, using the cvs2svn script.

The Git actually has some sort of direct support to import from CVS repositories, the git cvsimport command. However, although this command is better suited for incremental conversion from CVS to Git than the other alternatives, for one-time migrations there are some known issues. Therefore I prefer to use the cvs2svn bundle (specifically its cvs2git module) for one-time CVS-to-Git migrations.

Restore lost commits in Git

So, you’ve called a git reset –hard on a wrong branch or did some other destructive action (perhaps a wrong rebase, amend etc.), and lost some important commit(s) in the repository.

Well, fortunately nothing is actually lost, and Git allows us to recover such detached commits. Even amended commits can be restored back to the previous state using the following technique.