Saturday, June 11, 2016

Initializing a bare git repository for a remote server

# Creating a bare repository
# -------------------------------
# inside remote server
# -------------------------------
$ mkdir myproject
$ cd myproject/
$ mkdir gitdir.git
$ mkdir workingtree
$ cd gitdir.git/
$ git init --bare
Initialized empty Git repository in /absolute/path/to/myproject/gitdir.git/
$ touch hooks/post-receive
$ echo "git --git-dir=/absolute/path/to/myproject/gitdir.git --work-tree=/absolute/path/to/myproject/workingtree checkout -f" > hooks/post-receive 



# Pushing to a bare repository
# -------------------------------
# inside local machine
# -------------------------------
$ cd /path/to/myproject
$ git remote add remoteserver [email protected]:/absolute/path/to/myproject/gitdir.git
$ git push remoteserver master



# Looking at git branches and working tree files in bare repository
# -------------------------------
# inside remote server
# -------------------------------
$ cd /path/to/myproject/gitdir.git
$ git branch
$ cd ../workingtree
$ ls



# Pushing multiple branches to a bare repository
# -------------------------------
# inside local machine
# -------------------------------
$ cd /path/to/myproject
$ git push remoteserver staging
$ git push remoteserver nightly
# etc
# -------------------------------
# inside local machine
# -------------------------------
cd /path/to/myproject/gitdir.git
git branch



# Checking out a different branch in bare repository
# -------------------------------
# inside remote server
# -------------------------------
$ cd /path/to/myproject/gitdir.git
$ git checkout staging
fatal: This operation must be run in a work tree
$ cd ../workingtree
$ git checkout staging
fatal: Not a git repository (or any of the parent directories): .git



# So what do we do here?
# We shall edit the bare git repository's configuration file slightly
# -------------------------------
# inside remote server
# -------------------------------
$ cd /path/to/myproject/gitdir.git
$ nano config 
# add a new entry 'worktree' inside core group
# set its value to 'absolute/path/to/myproject/workingtree' inside double-quotes
# like this:
    [core]
        repositoryformatversion = 0
        filemode = true
        bare = true
        worktree = "/absolute/path/to/myproject/workingtree"
# refer to this stackoverflow discussion here 



# Unfortunately, even setting the worktree explicitly didn't solve the problem.
# This time, I got a new fatal error
# -------------------------------
# inside remote server
# -------------------------------
$ cd /path/to/myproject/gitdir.git
$ git checkout staging
fatal: core.bare and core.worktree do not make sense
# Hence, I edited the git repository's configuration file once again 
# There I changed the value of core.bare to False



# Checking out a different branch in bare repository
# -------------------------------
# inside remote server
# -------------------------------
$ cd /path/to/myproject/gitdir.git
$ git checkout staging
Switched to branch 'alpha'
# I am not convinced this is a completely correct solution. 
# Maybe this is a hack approach. 
# But it worked for my case.



# Comments / criticisms / suggestions / improvements welcome below


Thursday, May 26, 2016

Cannot sympathize with her because she killed herself

I am left wondering why all the people are commenting "Allah apnake jannat nazil koruk (May Allah grant you paradise)" etc under a Facebook video of a Bangladeshi model attempting to commit suicide in her room. [P.S. It's a video of a model's failed attempt at committing suicide which she happened to publish on her own Facebook profile later on - she blamed her ex boyfriend for trying to commit suicide]

[BTW, soon afterwards, she took another attempt at taking her own life and she succeeded - there is no published video of that, duh!].

Is this how we think by default about death and about our lives? That after death it's all about just white clouds, skies, pearls and paradise?

Friday, December 25, 2015

Christmas and Eid-e-Milaad-un-Nabi - some celebrations don't need any basis to it

A rare case when Christians are celebrating Christmas [25th December claimed to be the birthday of prophet Jesus (PBUH)] and Muslims are celebrating Eid-e-Milaad-un-Nabi [12th Rabi-al-Awwal claimed to be the birthday of prophet Muhammad (PBUH)] on the same day - Gregorian calendar meets Lunar calendar. Turns out, none of these celebrations have any real basis in the history of their respective religions - sorry to hurt you if I have done so by saying this.