Reland "git-cl: Remove unused and duplicate functions."

This is a reland of e3a49aa40576da2427447f7fedb670d5d59216e5

GetRelativeRoot was fixed to use '.' instead of None

Original change's description:
> git-cl: Remove unused and duplicate functions.
>
> Remove unused functions, and use scm.GIT where possible to reduce
> duplication.
>
> Change-Id: I24f05e7b3ae04743e97b6665ee668f44d6acc294
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2116938
> Reviewed-by: Anthony Polito <apolito@google.com>
> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>

Change-Id: I54bd1d34d3501a38bf8af2f9e70059d58fa538a5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2125293
Reviewed-by: Anthony Polito <apolito@google.com>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
diff --git a/tests/git_cl_test.py b/tests/git_cl_test.py
index 521a097..85dc4b7 100755
--- a/tests/git_cl_test.py
+++ b/tests/git_cl_test.py
@@ -302,187 +302,6 @@
     self.assertEqual(f('v8', 'chromium:123,456,v8:123'),
                      ['v8:456', 'chromium:123', 'v8:123'])
 
-  def _test_git_number(self, parent_msg, dest_ref, child_msg,
-                       parent_hash='parenthash'):
-    desc = git_cl.ChangeDescription(child_msg)
-    desc.update_with_git_number_footers(parent_hash, parent_msg, dest_ref)
-    return desc.description
-
-  def assertEqualByLine(self, actual, expected):
-    self.assertEqual(actual.splitlines(), expected.splitlines())
-
-  def test_git_number_bad_parent(self):
-    with self.assertRaises(ValueError):
-      self._test_git_number('Parent', 'refs/heads/master', 'Child')
-
-  def test_git_number_bad_parent_footer(self):
-    with self.assertRaises(AssertionError):
-      self._test_git_number(
-          'Parent\n'
-          '\n'
-          'Cr-Commit-Position: wrong',
-          'refs/heads/master', 'Child')
-
-  def test_git_number_bad_lineage_ignored(self):
-    actual = self._test_git_number(
-        'Parent\n'
-        '\n'
-        'Cr-Commit-Position: refs/heads/master@{#1}\n'
-        'Cr-Branched-From: mustBeReal40CharHash-branch@{#pos}',
-        'refs/heads/master', 'Child')
-    self.assertEqualByLine(
-        actual,
-        'Child\n'
-        '\n'
-        'Cr-Commit-Position: refs/heads/master@{#2}\n'
-        'Cr-Branched-From: mustBeReal40CharHash-branch@{#pos}')
-
-  def test_git_number_same_branch(self):
-    actual = self._test_git_number(
-        'Parent\n'
-        '\n'
-        'Cr-Commit-Position: refs/heads/master@{#12}',
-        dest_ref='refs/heads/master',
-        child_msg='Child')
-    self.assertEqualByLine(
-        actual,
-        'Child\n'
-        '\n'
-        'Cr-Commit-Position: refs/heads/master@{#13}')
-
-  def test_git_number_same_branch_mixed_footers(self):
-    actual = self._test_git_number(
-        'Parent\n'
-        '\n'
-        'Cr-Commit-Position: refs/heads/master@{#12}',
-        dest_ref='refs/heads/master',
-        child_msg='Child\n'
-                  '\n'
-                  'Broken-by: design\n'
-                  'BUG=123')
-    self.assertEqualByLine(
-        actual,
-        'Child\n'
-        '\n'
-        'Broken-by: design\n'
-        'BUG=123\n'
-        'Cr-Commit-Position: refs/heads/master@{#13}')
-
-  def test_git_number_same_branch_with_originals(self):
-    actual = self._test_git_number(
-        'Parent\n'
-        '\n'
-        'Cr-Commit-Position: refs/heads/master@{#12}',
-        dest_ref='refs/heads/master',
-        child_msg='Child\n'
-        '\n'
-        'Some users are smart and insert their own footers\n'
-        '\n'
-        'Cr-Whatever: value\n'
-        'Cr-Commit-Position: refs/copy/paste@{#22}')
-    self.assertEqualByLine(
-        actual,
-        'Child\n'
-        '\n'
-        'Some users are smart and insert their own footers\n'
-        '\n'
-        'Cr-Original-Whatever: value\n'
-        'Cr-Original-Commit-Position: refs/copy/paste@{#22}\n'
-        'Cr-Commit-Position: refs/heads/master@{#13}')
-
-  def test_git_number_new_branch(self):
-    actual = self._test_git_number(
-        'Parent\n'
-        '\n'
-        'Cr-Commit-Position: refs/heads/master@{#12}',
-        dest_ref='refs/heads/branch',
-        child_msg='Child')
-    self.assertEqualByLine(
-        actual,
-        'Child\n'
-        '\n'
-        'Cr-Commit-Position: refs/heads/branch@{#1}\n'
-        'Cr-Branched-From: parenthash-refs/heads/master@{#12}')
-
-  def test_git_number_lineage(self):
-    actual = self._test_git_number(
-        'Parent\n'
-        '\n'
-        'Cr-Commit-Position: refs/heads/branch@{#1}\n'
-        'Cr-Branched-From: somehash-refs/heads/master@{#12}',
-        dest_ref='refs/heads/branch',
-        child_msg='Child')
-    self.assertEqualByLine(
-        actual,
-        'Child\n'
-        '\n'
-        'Cr-Commit-Position: refs/heads/branch@{#2}\n'
-        'Cr-Branched-From: somehash-refs/heads/master@{#12}')
-
-  def test_git_number_moooooooore_lineage(self):
-    actual = self._test_git_number(
-        'Parent\n'
-        '\n'
-        'Cr-Commit-Position: refs/heads/branch@{#5}\n'
-        'Cr-Branched-From: somehash-refs/heads/master@{#12}',
-        dest_ref='refs/heads/mooore',
-        child_msg='Child')
-    self.assertEqualByLine(
-        actual,
-        'Child\n'
-        '\n'
-        'Cr-Commit-Position: refs/heads/mooore@{#1}\n'
-        'Cr-Branched-From: parenthash-refs/heads/branch@{#5}\n'
-        'Cr-Branched-From: somehash-refs/heads/master@{#12}')
-
-  def test_git_number_ever_moooooooore_lineage(self):
-    self.maxDiff = 10000  # pylint: disable=attribute-defined-outside-init
-    actual = self._test_git_number(
-        'CQ commit on fresh new branch + numbering.\n'
-        '\n'
-        'NOTRY=True\n'
-        'NOPRESUBMIT=True\n'
-        'BUG=\n'
-        '\n'
-        'Review-Url: https://codereview.chromium.org/2577703003\n'
-        'Cr-Commit-Position: refs/heads/gnumb-test/br@{#1}\n'
-        'Cr-Branched-From: 0749ff9edc-refs/heads/gnumb-test/cq@{#4}\n'
-        'Cr-Branched-From: 5c49df2da6-refs/heads/master@{#41618}',
-        dest_ref='refs/heads/gnumb-test/cl',
-        child_msg='git cl on fresh new branch + numbering.\n'
-                  '\n'
-                  'Review-Url: https://codereview.chromium.org/2575043003 .\n')
-    self.assertEqualByLine(
-        actual,
-        'git cl on fresh new branch + numbering.\n'
-        '\n'
-        'Review-Url: https://codereview.chromium.org/2575043003 .\n'
-        'Cr-Commit-Position: refs/heads/gnumb-test/cl@{#1}\n'
-        'Cr-Branched-From: parenthash-refs/heads/gnumb-test/br@{#1}\n'
-        'Cr-Branched-From: 0749ff9edc-refs/heads/gnumb-test/cq@{#4}\n'
-        'Cr-Branched-From: 5c49df2da6-refs/heads/master@{#41618}')
-
-  def test_git_number_cherry_pick(self):
-    actual = self._test_git_number(
-        'Parent\n'
-        '\n'
-        'Cr-Commit-Position: refs/heads/branch@{#1}\n'
-        'Cr-Branched-From: somehash-refs/heads/master@{#12}',
-        dest_ref='refs/heads/branch',
-        child_msg='Child, which is cherry-pick from master\n'
-        '\n'
-        'Cr-Commit-Position: refs/heads/master@{#100}\n'
-        '(cherry picked from commit deadbeef12345678deadbeef12345678deadbeef)')
-    self.assertEqualByLine(
-        actual,
-        'Child, which is cherry-pick from master\n'
-        '\n'
-        '(cherry picked from commit deadbeef12345678deadbeef12345678deadbeef)\n'
-        '\n'
-        'Cr-Original-Commit-Position: refs/heads/master@{#100}\n'
-        'Cr-Commit-Position: refs/heads/branch@{#2}\n'
-        'Cr-Branched-From: somehash-refs/heads/master@{#12}')
-
   @mock.patch('gerrit_util.GetAccountDetails')
   def test_valid_accounts(self, mockGetAccountDetails):
     mock_per_account = {
@@ -679,7 +498,6 @@
     mock.patch(
         'git_common.get_or_create_merge_base',
         lambda *a: self._mocked_call('get_or_create_merge_base', *a)).start()
-    mock.patch('git_cl.BranchExists', return_value=True).start()
     mock.patch('git_cl.FindCodereviewSettingsFile', return_value='').start()
     mock.patch(
         'git_cl.SaveDescriptionBackup',
@@ -721,6 +539,8 @@
     self.mockGit = GitMocks()
     mock.patch('scm.GIT.GetBranchRef', self.mockGit.GetBranchRef).start()
     mock.patch('scm.GIT.GetConfig', self.mockGit.GetConfig).start()
+    mock.patch('scm.GIT.ResolveCommit', return_value='hash').start()
+    mock.patch('scm.GIT.IsValidRevision', return_value=True).start()
     mock.patch('scm.GIT.SetConfig', self.mockGit.SetConfig).start()
     mock.patch(
         'git_new_branch.create_new_branch', self.mockGit.NewBranch).start()
@@ -1140,9 +960,6 @@
             notify),
            ''),
       ]
-    calls += [
-        ((['git', 'rev-parse', 'HEAD'],), 'hash'),
-    ]
     return calls
 
   def _run_gerrit_upload_test(
@@ -1213,7 +1030,6 @@
               list(args))).start()
     mock.patch('os.path.isfile',
               lambda path: self._mocked_call(['os.path.isfile', path])).start()
-    mock.patch('git_cl.Changelist.GitSanityChecks', return_value=True).start()
     mock.patch(
         'git_cl._create_description_from_log',
         return_value=log_description or description).start()
@@ -1731,7 +1547,7 @@
         scm.GIT.GetBranchConfig('', branch, 'gerritserver'))
 
   def _patch_common(self, git_short_host='chromium'):
-    mock.patch('git_cl.IsGitVersionAtLeast', return_value=True).start()
+    mock.patch('scm.GIT.ResolveCommit', return_value='deadbeef').start()
     self.mockGit.config['remote.origin.url'] = (
         'https://%s.googlesource.com/my/repo' % git_short_host)
     gerrit_util.GetChangeDetail.return_value = {
@@ -1760,7 +1576,6 @@
       ((['git', 'fetch', 'https://chromium.googlesource.com/my/repo',
          'refs/changes/56/123456/7'],), ''),
       ((['git', 'cherry-pick', 'FETCH_HEAD'],), ''),
-      ((['git', 'rev-parse', 'FETCH_HEAD'],), 'deadbeef'),
     ]
     self.assertEqual(git_cl.main(['patch', '123456']), 0)
     self.assertIssueAndPatchset()
@@ -1771,7 +1586,6 @@
       ((['git', 'fetch', 'https://chromium.googlesource.com/my/repo',
          'refs/changes/56/123456/7'],), ''),
       ((['git', 'cherry-pick', 'FETCH_HEAD'],), ''),
-      ((['git', 'rev-parse', 'FETCH_HEAD'],), 'deadbeef'),
     ]
     self.assertEqual(git_cl.main(['patch', '-b', 'feature', '123456']), 0)
     self.assertIssueAndPatchset(branch='feature')
@@ -1782,7 +1596,6 @@
       ((['git', 'fetch', 'https://host.googlesource.com/my/repo',
          'refs/changes/56/123456/7'],), ''),
       ((['git', 'reset', '--hard', 'FETCH_HEAD'],), ''),
-      ((['git', 'rev-parse', 'FETCH_HEAD'],), 'deadbeef'),
     ]
     self.assertEqual(git_cl.main(['patch', '123456', '--force']), 0)
     self.assertIssueAndPatchset(git_short_host='host')
@@ -1793,7 +1606,6 @@
       ((['git', 'fetch', 'https://else.googlesource.com/my/repo',
          'refs/changes/56/123456/1'],), ''),
       ((['git', 'cherry-pick', 'FETCH_HEAD'],), ''),
-      ((['git', 'rev-parse', 'FETCH_HEAD'],), 'deadbeef'),
     ]
     self.assertEqual(git_cl.main(
       ['patch', 'https://else-review.googlesource.com/#/c/123456/1']), 0)
@@ -1805,7 +1617,6 @@
       ((['git', 'fetch', 'https://else.googlesource.com/my/repo',
          'refs/changes/56/123456/1'],), ''),
       ((['git', 'cherry-pick', 'FETCH_HEAD'],), ''),
-      ((['git', 'rev-parse', 'FETCH_HEAD'],), 'deadbeef'),
     ]
     self.assertEqual(git_cl.main(
       ['patch', 'https://else-review.googlesource.com/c/my/repo/+/123456/1']),