Index: gclient_scm.py |
diff --git a/gclient_scm.py b/gclient_scm.py |
index 5cf839f0079aa4608cdab28824e2e9d3481d804f..29079c582ffc849d56edf721002e49b68877d536 100644 |
--- a/gclient_scm.py |
+++ b/gclient_scm.py |
@@ -292,8 +292,11 @@ class GitWrapper(SCMWrapper): |
""" |
def diff(self, options, _args, _file_list): |
- merge_base = self._Capture(['merge-base', 'HEAD', self.remote]) |
- self._Run(['diff', merge_base], options) |
+ try: |
+ merge_base = [self._Capture(['merge-base', 'HEAD', self.remote])] |
+ except subprocess2.CalledProcessError: |
+ merge_base = [] |
+ self._Run(['diff'] + merge_base, options) |
def pack(self, _options, _args, _file_list): |
"""Generates a patch file which can be applied to the root of the |
@@ -302,9 +305,12 @@ class GitWrapper(SCMWrapper): |
The patch file is generated from a diff of the merge base of HEAD and |
its upstream branch. |
""" |
- merge_base = self._Capture(['merge-base', 'HEAD', self.remote]) |
+ try: |
+ merge_base = [self._Capture(['merge-base', 'HEAD', self.remote])] |
+ except subprocess2.CalledProcessError: |
+ merge_base = [] |
gclient_utils.CheckCallAndFilter( |
- ['git', 'diff', merge_base], |
+ ['git', 'diff'] + merge_base, |
cwd=self.checkout_path, |
filter_fn=GitDiffFilterer(self.relpath, print_func=self.Print).Filter) |
@@ -785,11 +791,14 @@ class GitWrapper(SCMWrapper): |
self.Print('________ couldn\'t run status in %s:\n' |
'The directory does not exist.' % self.checkout_path) |
else: |
- merge_base = self._Capture(['merge-base', 'HEAD', self.remote]) |
- self._Run(['diff', '--name-status', merge_base], options, |
+ try: |
+ merge_base = [self._Capture(['merge-base', 'HEAD', self.remote])] |
+ except subprocess2.CalledProcessError: |
+ merge_base = [] |
+ self._Run(['diff', '--name-status'] + merge_base, options, |
stdout=self.out_fh) |
if file_list is not None: |
- files = self._Capture(['diff', '--name-only', merge_base]).split() |
+ files = self._Capture(['diff', '--name-only'] + merge_base).split() |
file_list.extend([os.path.join(self.checkout_path, f) for f in files]) |
def GetUsableRev(self, rev, options): |