Quick dirty way to clean git history

Sometimes my git history got messed up due to some strange issues. I use the following quick/dirty way to create a clean new branch.
Step 1: use the “git clone” command to clone the master branch to a separate new folder
Step 2: rsync the changed content of your old branch to the new folder excluding the .git subfolder
rsync -avz --exclude .git old-folder/ new-folder
Step 3: create a new branch out of the new folder and then push
$ cd new-folder
$ git checkout -b my-new-branch

Lastly, we can avoid lots of hassles if using “git pull –rebase” instead of the simple “git pull” command.

Start Apache server on Cygwin 1.7 and Windows 7

I installed the full Cygwin 1.7 package on Windows 7. When I try to start Apache server following the linux style by running command
$ /usr/sbin/apachectl2 start
I got “Bad system call” error.

After some web search and trial and error, I finally got it work. Below are the steps that I’ve tried. Not sure whether all are necessary though.

Step 1: right click the Cygwin terminal and select “Run as adminstrator”

Step 2: create correct user and group info. Not sure whether this step is necessary.
$ mkpasswd.exe -l
$ mkgroup.exe -l

Step 3: configure server by running command
$ cygserver-config

Step 4: start cygserver
$ net start cygserver

Step 5: start apache
$ /usr/sbin/apachectl2 start

RPM builder quick steps

Step 1, install rpm tools
[sourcecode]yum install rpmdevtools rpmlint[/sourcecode]

Step 2, set up working directory

Step 3, create and edit the spec file
cd rpmbuild/SPECS

Miscellaneous commands:

show environment variables
[sourcecode]rpm –showrc[/sourcecode]
show specific variable
[sourcecode]rpm –eval %_usr[/sourcecode]

Procedures to simulate RPM building with Mock
– Build source rpm
rpmbuild -bs SPECS/myproject.spec

– Mock the build, i.e., testing the build in an isolated building environment simulating a specific platform (Redhat or Fedora etc.)
mock -r platform_name SRPMS/myproject.src.rpm

– If it’s a multiple-project task, mock install the first project first, and then mock build the 2nd, i.e.,
mock -r platform_name –install /mock_path/myproject.rpm
mock -r platform_name SRPMS/myproject2.src.rpm