Nak: [kteam-tools][PATCH] ktl: Git.current_branch() optimization
Brad Figg
brad.figg at canonical.com
Thu May 30 19:15:52 UTC 2013
On 05/24/2013 03:06 PM, Kamal Mostafa wrote:
> Query 'git symbolic-ref HEAD' instead of iterating the 'git branch' list.
>
> Also changed behavior if current_branch() is called in a detached HEAD state:
> before: returned the string "(no branch)"
> now: throws an exception ktl.git.GetError GitError("no current branch")
>
> No existing caller depends on the old "(no branch)" behavior.
>
> Signed-off-by: Kamal Mostafa <kamal at canonical.com>
> ---
> ktl/git.py | 15 ++++-----------
> 1 file changed, 4 insertions(+), 11 deletions(-)
>
> diff --git a/ktl/git.py b/ktl/git.py
> index 9483ad4..7b18275 100644
> --- a/ktl/git.py
> +++ b/ktl/git.py
> @@ -94,17 +94,10 @@ class Git:
> #
> @classmethod
> def current_branch(cls):
> - retval = ""
> - status, result = run_command("git branch", cls.debug)
> - if status == 0:
> - for line in result:
> - if line != '' and line[0] == '*':
> - retval = line[1:].strip()
> - break
> - else:
> - raise GitError(result)
> -
> - return retval
> + status, result = run_command("git symbolic-ref --short HEAD", cls.debug)
> + if status != 0:
> + raise GitError("no current branch")
> + return result[0]
>
> # show
> #
>
This doesn't work correctly on Precise, probably different git version. Feel
free to try again.
--
Brad Figg brad.figg at canonical.com http://www.canonical.com
More information about the kernel-team
mailing list