| 
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -943,9 +943,16 @@ class TestGitCl(TestCase):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        self._dcommit_calls_3())
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    git_cl.main(['dcommit', '--bypass-hooks'])
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  def _land_rietveld_common(self, debug_stdout=False):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    if not debug_stdout:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  def _land_rietveld_common(self, debug=False):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    if debug:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      # Very useful due to finally clause in git cl land raising exceptions and
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      # shadowing real cause of failure.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      self.mock(git_cl, '_IS_BEING_TESTED', True)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    else:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      self.mock(git_cl.sys, 'stdout', StringIO.StringIO())
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.mock(git_cl._GitNumbererState, 'load', classmethod(lambda _, url, ref:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        self._mocked_call(['_GitNumbererState', url, ref])))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.mock(RietveldMock, 'update_description', staticmethod(
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              lambda i, d: self._mocked_call(['update_description', i, d])))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.mock(RietveldMock, 'add_comment', staticmethod(
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -1012,9 +1019,14 @@ class TestGitCl(TestCase):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    ]
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  def test_land_rietveld(self):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self._land_rietveld_common()
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self._land_rietveld_common(debug=False)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.calls += [
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      ((['git', 'config', 'rietveld.pending-ref-prefix'],), CERR1),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      ((['git', 'config', 'remote.origin.url'],),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				       'https://chromium.googlesource.com/infra/infra'),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      ((['_GitNumbererState',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				         'https://chromium.googlesource.com/infra/infra',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				         'refs/heads/master'],),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				       git_cl._GitNumbererState(None, False)),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      ((['git', 'push', '--porcelain', 'origin', 'HEAD:refs/heads/master'],),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				       ''),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      ((['git', 'rev-parse', 'HEAD'],), 'fake_sha_rebased'),
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1032,11 +1044,16 @@ class TestGitCl(TestCase):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    git_cl.main(['land'])
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  def test_land_rietveld_gnumbd(self):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self._land_rietveld_common()
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self._land_rietveld_common(debug=False)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.mock(git_cl, 'WaitForRealCommit',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              lambda *a: self._mocked_call(['WaitForRealCommit'] + list(a)))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.calls += [
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      ((['git', 'config', 'rietveld.pending-ref-prefix'],), 'refs/pending/'),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      ((['git', 'config', 'remote.origin.url'],),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				       'https://chromium.googlesource.com/chromium/src'),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      ((['_GitNumbererState',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				         'https://chromium.googlesource.com/chromium/src',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				         'refs/heads/master'],),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				       git_cl._GitNumbererState('refs/pending', True)),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      ((['git', 'rev-parse', 'HEAD'],), 'fake_sha_rebased'),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      ((['git', 'retry', 'fetch', 'origin',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				         '+refs/pending/heads/master:refs/git-cl/pending/heads/master'],), ''),
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -1067,9 +1084,7 @@ class TestGitCl(TestCase):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    git_cl.main(['land'])
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  def test_land_rietveld_git_numberer(self):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self._land_rietveld_common(debug_stdout=False)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.mock(git_cl, 'ShouldGenerateGitNumberFooters',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              lambda *a: self._mocked_call(['ShouldGenerateGitNumberFooters']))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self._land_rietveld_common(debug=False)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    # Special mocks to check validity of timestamp.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    original_git_amend_head = git_cl._git_amend_head
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1079,8 +1094,12 @@ class TestGitCl(TestCase):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.mock(git_cl, '_git_amend_head', _git_amend_head_mock)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.calls += [
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      ((['git', 'config', 'rietveld.pending-ref-prefix'],), CERR1),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      ((['ShouldGenerateGitNumberFooters'],), True),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      ((['git', 'config', 'remote.origin.url'],),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				       'https://chromium.googlesource.com/chromium/src'),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      ((['_GitNumbererState',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				         'https://chromium.googlesource.com/chromium/src',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				         'refs/heads/master'],),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				       git_cl._GitNumbererState(None, True)),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      ((['git', 'show', '-s', '--format=%B', 'fake_ancestor_sha'],),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				       'This is parent commit.\n'
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -1124,12 +1143,13 @@ class TestGitCl(TestCase):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    git_cl.main(['land'])
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  def test_land_rietveld_git_numberer_bad_parent(self):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self._land_rietveld_common()
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.mock(git_cl, 'ShouldGenerateGitNumberFooters',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              lambda *a: self._mocked_call(['ShouldGenerateGitNumberFooters']))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self._land_rietveld_common(debug=False)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.calls += [
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      ((['git', 'config', 'rietveld.pending-ref-prefix'],), CERR1),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      ((['ShouldGenerateGitNumberFooters'],), True),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      ((['git', 'config', 'remote.origin.url'],),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				       'https://chromium.googlesource.com/v8/v8'),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      ((['_GitNumbererState',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				         'https://chromium.googlesource.com/v8/v8', 'refs/heads/master'],),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				       git_cl._GitNumbererState(None, True)),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      ((['git', 'show', '-s', '--format=%B', 'fake_ancestor_sha'],),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				       'This is parent commit with no footer.'),
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1142,30 +1162,6 @@ class TestGitCl(TestCase):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.assertEqual(cm.exception.message,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                     'Unable to infer commit position from footers')
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  def test_ShouldGenerateGitNumberFooters(self):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.mock(git_cl, 'FindCodereviewSettingsFile', lambda: StringIO.StringIO(
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      'GENERATE_GIT_NUMBER_FOOTERS: true\n'
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    ))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.assertTrue(git_cl.ShouldGenerateGitNumberFooters())
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.mock(git_cl, 'FindCodereviewSettingsFile', lambda: StringIO.StringIO(
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      'GENERATE_GIT_NUMBER_FOOTERS: false\n'
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    ))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.assertFalse(git_cl.ShouldGenerateGitNumberFooters())
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.mock(git_cl, 'FindCodereviewSettingsFile', lambda: StringIO.StringIO(
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      'GENERATE_GIT_NUMBER_FOOTERS: anything but true is false\n'
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    ))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.assertFalse(git_cl.ShouldGenerateGitNumberFooters())
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.mock(git_cl, 'FindCodereviewSettingsFile', lambda: StringIO.StringIO(
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      'whatever: ignored'
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    ))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.assertFalse(git_cl.ShouldGenerateGitNumberFooters())
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.mock(git_cl, 'FindCodereviewSettingsFile', lambda: None)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.assertFalse(git_cl.ShouldGenerateGitNumberFooters())
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  def test_GitNumbererState_not_whitelisted_repo(self):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.calls = [
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        ((['git', 'config', 'rietveld.autoupdate'],), CERR1),
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1190,7 +1186,7 @@ class TestGitCl(TestCase):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    res = git_cl._GitNumbererState.load(
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        remote_url='https://chromium.googlesource.com/chromium/src',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        remote_ref='refs/whatever')
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.assertEqual(res.pending_prefix, 'refs/pending-prefix')
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.assertEqual(res.pending_prefix, 'refs/pending-prefix/')
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.assertEqual(res.should_git_number, False)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  def test_GitNumbererState_fail_gnumbd_and_validator(self):
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -1253,7 +1249,7 @@ class TestGitCl(TestCase):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    res = git_cl._GitNumbererState.load(
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        remote_url='https://chromium.googlesource.com/chromium/src',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        remote_ref='refs/heads/master')
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.assertEqual(res.pending_prefix, 'refs/pending')
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.assertEqual(res.pending_prefix, 'refs/pending/')
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.assertEqual(res.should_git_number, False)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    res = git_cl._GitNumbererState.load(
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -1715,33 +1711,33 @@ class TestGitCl(TestCase):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  def test_get_target_ref(self):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    # Check remote or remote branch not present.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.assertEqual(None, git_cl.GetTargetRef('origin', None, 'master', None))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.assertEqual(None, git_cl.GetTargetRef('origin', None, 'master', False))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.assertEqual(None, git_cl.GetTargetRef(None,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                               'refs/remotes/origin/master',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                               'master', None))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                               'master', False))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    # Check default target refs for branches.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.assertEqual('refs/heads/master',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                     git_cl.GetTargetRef('origin', 'refs/remotes/origin/master',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                         None, None))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                         None, False))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.assertEqual('refs/heads/master',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                     git_cl.GetTargetRef('origin', 'refs/remotes/origin/lkgr',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                         None, None))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                         None, False))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.assertEqual('refs/heads/master',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                     git_cl.GetTargetRef('origin', 'refs/remotes/origin/lkcr',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                         None, None))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                         None, False))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.assertEqual('refs/branch-heads/123',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                     git_cl.GetTargetRef('origin',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                         'refs/remotes/branch-heads/123',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                         None, None))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                         None, False))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.assertEqual('refs/diff/test',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                     git_cl.GetTargetRef('origin',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                         'refs/remotes/origin/refs/diff/test',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                         None, None))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                         None, False))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.assertEqual('refs/heads/chrome/m42',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                     git_cl.GetTargetRef('origin',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                         'refs/remotes/origin/chrome/m42',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                         None, None))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                         None, False))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    # Check target refs for user-specified target branch.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    for branch in ('branch-heads/123', 'remotes/branch-heads/123',
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1749,23 +1745,26 @@ class TestGitCl(TestCase):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      self.assertEqual('refs/branch-heads/123',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                       git_cl.GetTargetRef('origin',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                           'refs/remotes/origin/master',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                           branch, None))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                           branch, False))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    for branch in ('origin/master', 'remotes/origin/master',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                   'refs/remotes/origin/master'):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      self.assertEqual('refs/heads/master',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                       git_cl.GetTargetRef('origin',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                           'refs/remotes/branch-heads/123',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                           branch, None))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                           branch, False))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    for branch in ('master', 'heads/master', 'refs/heads/master'):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      self.assertEqual('refs/heads/master',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                       git_cl.GetTargetRef('origin',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                           'refs/remotes/branch-heads/123',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                           branch, None))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                           branch, False))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    # Check target refs for pending prefix.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.mock(git_cl._GitNumbererState, 'load',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				              classmethod(lambda *_: git_cl._GitNumbererState('prefix', False)))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    self.assertEqual('prefix/heads/master',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                     git_cl.GetTargetRef('origin', 'refs/remotes/origin/master',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                         None, 'prefix/'))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                         None, True,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                         'https://remote.url/some.git'))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  def test_patch_when_dirty(self):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    # Patch when local tree is dirty
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
			
			 | 
			 | 
			
				
 
 |