| OLD | NEW |
| 1 # Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2009 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 """Gclient-specific SCM-specific operations.""" | 5 """Gclient-specific SCM-specific operations.""" |
| 6 | 6 |
| 7 import logging | 7 import logging |
| 8 import os | 8 import os |
| 9 import posixpath | 9 import posixpath |
| 10 import re | 10 import re |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 224 '\tFix the conflict and run gclient again.\n' | 224 '\tFix the conflict and run gclient again.\n' |
| 225 '\tOr to abort run:\n\t\tgit-rebase --abort\n' | 225 '\tOr to abort run:\n\t\tgit-rebase --abort\n' |
| 226 '\tSee man git-rebase for details.\n' | 226 '\tSee man git-rebase for details.\n' |
| 227 % (self.relpath, rev_str)) | 227 % (self.relpath, rev_str)) |
| 228 | 228 |
| 229 # TODO(maruel): Do we need to do an automatic retry here? Probably overkill | 229 # TODO(maruel): Do we need to do an automatic retry here? Probably overkill |
| 230 merge_base = self._Run(['merge-base', 'HEAD', new_base]) | 230 merge_base = self._Run(['merge-base', 'HEAD', new_base]) |
| 231 self._Run(['remote', 'update'], redirect_stdout=False) | 231 self._Run(['remote', 'update'], redirect_stdout=False) |
| 232 files = self._Run(['diff', new_base, '--name-only']).split() | 232 files = self._Run(['diff', new_base, '--name-only']).split() |
| 233 file_list.extend([os.path.join(self.checkout_path, f) for f in files]) | 233 file_list.extend([os.path.join(self.checkout_path, f) for f in files]) |
| 234 if options.force: | 234 if options.force or options.reset: |
| 235 self._Run(['reset', '--hard', merge_base], redirect_stdout=False) | 235 self._Run(['reset', '--hard', merge_base], redirect_stdout=False) |
| 236 try: | 236 try: |
| 237 self._Run(['rebase', '-v', '--onto', new_base, merge_base, cur_branch], | 237 self._Run(['rebase', '-v', '--onto', new_base, merge_base, cur_branch], |
| 238 redirect_stdout=False) | 238 redirect_stdout=False) |
| 239 except gclient_utils.Error: | 239 except gclient_utils.Error: |
| 240 pass | 240 pass |
| 241 | 241 |
| 242 # If the rebase generated a conflict, abort and ask user to fix | 242 # If the rebase generated a conflict, abort and ask user to fix |
| 243 if self._GetCurrentBranch() is None: | 243 if self._GetCurrentBranch() is None: |
| 244 raise gclient_utils.Error('\n____ %s%s\n' | 244 raise gclient_utils.Error('\n____ %s%s\n' |
| (...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 570 print("\n________ couldn't run \'%s\' in \'%s\':\nThe directory " | 570 print("\n________ couldn't run \'%s\' in \'%s\':\nThe directory " |
| 571 "does not exist." | 571 "does not exist." |
| 572 % (' '.join(command), path)) | 572 % (' '.join(command), path)) |
| 573 # There's no file list to retrieve. | 573 # There's no file list to retrieve. |
| 574 else: | 574 else: |
| 575 self.RunAndGetFileList(options, command, path, file_list) | 575 self.RunAndGetFileList(options, command, path, file_list) |
| 576 | 576 |
| 577 def FullUrlForRelativeUrl(self, url): | 577 def FullUrlForRelativeUrl(self, url): |
| 578 # Find the forth '/' and strip from there. A bit hackish. | 578 # Find the forth '/' and strip from there. A bit hackish. |
| 579 return '/'.join(self.url.split('/')[:4]) + url | 579 return '/'.join(self.url.split('/')[:4]) + url |
| OLD | NEW |