I refactored builtin/branch.c to remove the '--set-upstream' option,successfully. The corresponding patch follows. There's just one issue with the version of git that doesn't have the '--set-upstream' option. It's described in the commit log message of the following patch. I guess it would be difficult to detect the removal of the option in case it's used in scripts and might cause confusion to users? Is it ok to proceed with the removal? BTW, It's now clear to me that removing '--set-upstream' has nothing to do with merging the two parameter of 'validate_new_branchname'. -- Kaartic