Index: gclient_scm.py |
diff --git a/gclient_scm.py b/gclient_scm.py |
index 40dccae0a0f80dcece07d01c907b56aa92503f11..e51a0eecb254bb47d937bc64347db6519350b340 100644 |
--- a/gclient_scm.py |
+++ b/gclient_scm.py |
@@ -403,9 +403,16 @@ class GitWrapper(SCMWrapper): |
print("\n_____ %s is missing, synching instead" % self.relpath) |
# Don't reuse the args. |
return self.update(options, [], file_list) |
- merge_base = self._Run(['merge-base', 'HEAD', 'origin']) |
- files = self._Run(['diff', merge_base, '--name-only']).split() |
- self._Run(['reset', '--hard', merge_base], redirect_stdout=False) |
+ |
+ default_rev = "refs/heads/master" |
+ url, deps_revision = gclient_utils.SplitUrlRevision(self.url) |
+ if not deps_revision: |
+ deps_revision = default_rev |
+ if deps_revision.startswith('refs/heads/'): |
+ deps_revision = deps_revision.replace('refs/heads/', 'origin/') |
+ |
+ files = self._Run(['diff', deps_revision, '--name-only']).split() |
+ self._Run(['reset', '--hard', deps_revision], redirect_stdout=False) |
file_list.extend([os.path.join(self.checkout_path, f) for f in files]) |
def revinfo(self, options, args, file_list): |