Fix git branch parsing.
In git version 2.4 the git branch command prints "* (HEAD detached at"
or "* (HEAD detached from" instead of "* (detached from". Adjust the parsing to make our tests
still work with git 2.4.
BUG=487172
Review URL: https://codereview.chromium.org/1162763003
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@295578 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/git_common.py b/git_common.py
index 6b21050..a01f8e5 100644
--- a/git_common.py
+++ b/git_common.py
@@ -293,7 +293,7 @@
def branches(*args):
- NO_BRANCH = ('* (no branch', '* (detached from ')
+ NO_BRANCH = ('* (no branch', '* (detached', '* (HEAD detached')
key = 'depot-tools.branch-limit'
limit = 20
diff --git a/tests/git_common_test.py b/tests/git_common_test.py
index 5ba00b2..5c6febe 100755
--- a/tests/git_common_test.py
+++ b/tests/git_common_test.py
@@ -230,7 +230,6 @@
self.repo.git('checkout', 'branch_D')
self.assertEqual(self.repo.run(self.gc.current_branch), 'branch_D')
- @unittest.skip('broken by git 2.4')
def testBranches(self):
# This check fails with git 2.4 (see crbug.com/487172)
self.assertEqual(self.repo.run(set, self.gc.branches()),
@@ -448,7 +447,6 @@
self.repo.git('branch', '--set-upstream-to', 'root_A', 'branch_G')
self.repo.git('branch', '--set-upstream-to', 'root_X', 'root_A')
- @unittest.skip('broken by git 2.4')
def testTooManyBranches(self):
for i in xrange(30):
self.repo.git('branch', 'a'*i)
@@ -535,7 +533,6 @@
self.assertIsNone(
self.repo.run(self.gc.get_or_create_merge_base, 'branch_DOG'))
- @unittest.skip('broken by git 2.4')
def testGetBranchTree(self):
skipped, tree = self.repo.run(self.gc.get_branch_tree)
# This check fails with git 2.4 (see crbug.com/487172)
@@ -731,6 +728,4 @@
if __name__ == '__main__':
sys.exit(coverage_utils.covered_main(
- os.path.join(DEPOT_TOOLS_ROOT, 'git_common.py'),
- required_percentage=88.0
- ))
+ os.path.join(DEPOT_TOOLS_ROOT, 'git_common.py')))
diff --git a/tests/git_rebase_update_test.py b/tests/git_rebase_update_test.py
index f374948..ea12d16 100755
--- a/tests/git_rebase_update_test.py
+++ b/tests/git_rebase_update_test.py
@@ -6,7 +6,6 @@
"""Unit tests for git_rebase_update.py"""
import os
-import unittest
import sys
DEPOT_TOOLS_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
@@ -69,7 +68,6 @@
self.origin.nuke()
super(GitRebaseUpdateTest, self).tearDown()
- @unittest.skip('broken by git 2.4')
def testRebaseUpdate(self):
self.repo.git('checkout', 'branch_K')
@@ -342,4 +340,4 @@
os.path.join(DEPOT_TOOLS_ROOT, 'git_new_branch.py'),
os.path.join(DEPOT_TOOLS_ROOT, 'git_reparent_branch.py'),
os.path.join(DEPOT_TOOLS_ROOT, 'git_rename_branch.py')
- ), required_percentage=85.0))
+ )))