| Index: gclient_scm.py
|
| diff --git a/gclient_scm.py b/gclient_scm.py
|
| index 2b3f7aa702acf5ede91064c3f4714fa1938fe5bc..d36a95bb4e1918db3af4f3819503b8b63f40ff29 100644
|
| --- a/gclient_scm.py
|
| +++ b/gclient_scm.py
|
| @@ -135,13 +135,16 @@ class GitWrapper(SCMWrapper, scm.GIT):
|
| file_list.extend([os.path.join(self.checkout_path, f) for f in files])
|
| return
|
|
|
| - self._Run(['remote', 'update'], redirect_stdout=False)
|
| new_base = 'origin'
|
| if revision:
|
| new_base = revision
|
| + cur_branch = self._Run(['symbolic-ref', 'HEAD']).split('/')[-1]
|
| + merge_base = self._Run(['merge-base', 'HEAD', new_base])
|
| + self._Run(['remote', 'update'], redirect_stdout=False)
|
| files = self._Run(['diff', new_base, '--name-only']).split()
|
| file_list.extend([os.path.join(self.checkout_path, f) for f in files])
|
| - self._Run(['rebase', '-v', new_base], redirect_stdout=False)
|
| + self._Run(['rebase', '-v', '--onto', new_base, merge_base, cur_branch],
|
| + redirect_stdout=False)
|
| print "Checked out revision %s." % self.revinfo(options, (), None)
|
|
|
| def revert(self, options, args, file_list):
|
|
|