Dariusz on Software Quality & Performance


Time Tracking in Bug Trackers

Filed under: en — Tags: , — dariusz.cieslak @

Modern bug tracking software are not only the bug trackers. There are more features. Typical additional components that are included are:

  • Wiki systems: to share knowledge
  • Estimations
  • Time tracking

I'd like to focus today on time tracking capabilities and compare few mainstream bug trackers: Trac, Redmine, FogBugz, Jira.



Bazaar to GIT migration

Filed under: en — Tags: , , , — dariusz.cieslak @

Today I've moved using site-uptime.net development from Bazaar repository to GIT using elegant bzr2git script. The why:

  • In-place branches (I used to use them heavily)
  • Faster (no Python libs loading during "cold" start)
  • Can't live without "git rebase -i" now :-)


Fixing invalid comment / branch name in GIT

Filed under: en — Tags: , — dariusz.cieslak @

Recently I was asked to help with fixing branch that had:

  • invalid name (wrong artifact number)
  • invalid comment inside (also based on wrong artifact number)

it was a mistake and programmer wanted to preserve changes done on branch, but using different name.

The solution I proposed was to:



GIT: importing remote branches

Filed under: en — Tags: , — dariusz.cieslak @

GIT is a fast version control system that handles branching very efficiently and allow for most operations to be done offline (is a distributed VCS). Of course sometimes you have to exchange code with external GIT repos (maybe central storage). Being distributed forces some design decisions: local/remote branches distrinction were introduced.

Remote branch in GIT is a head that tracks branch stored on server. You shouldn't update (commit) directly that branch. You can update local branches instead then use "push" to publish changes from local branch to remote. Remote branch can be used to answer the following questions:

  • is my local branch up to date regarding to server state?
  • what changes (diff/log) were added to my local branch and aren't submitted (push) yet?

In order to use properly remote branches you have to create maching local branch for every remote branch. Boring and error-prone task. Let's automate it:!

git branch -a | awk \
    '/RELEASE/ { sub("remotes/origin/", "", $1); \
    print "git branch --track " $1 " origin/" $1 }' | sh

Above command imports all branches that contain string "RELEASE" (I assume we may be interested in checking release status).


"git cherry-pick" for Perforce

Filed under: en — Tags: , , — dariusz.cieslak @

Cherry-picking is a technique of porting only selected commits from one branch to another. It's directly supported in GIT by special command:

git cherry-pick <SHA-COMMIT-ID>

Also SVN has simple merge mode that supports selecting of single commit:

svn merge -c <REV-NO> <URL>

What about Perforce? After checking Perforce documentation for merging I hit the following syntax for selecting subset of changelists to merge:


Older Posts »

Powered by WordPress