I didn't mention it before, I was thinking to move directly everything from git-bisect.sh to bisect.c . But then I would have to redirect to a shell script. And ultimately remove bisect--helper.c Your suggestions is a lot better. I could first move individual functions to bisect--helper.c. This would not affect the current status of the project. When I complete this, I can shift all the methods to bisect.c and place it in the directory builtin/. Then I would remove linking of the git-bisect.sh and introduce builtin/bisect.c thus completing the process. When I am writing functions, I am thinking to make some tests which will be copied contents of t/t6030-bisect-porcelain.sh with s/bisect/bisect--helper/g uncommenting tests as I implement more functions. Should I keep these tests restricted to myself or I send it as a patch along with the corresponding function? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html