Index: gclient_scm.py |
=================================================================== |
--- gclient_scm.py (revision 79296) |
+++ gclient_scm.py (working copy) |
@@ -186,6 +186,23 @@ |
verbose = ['--verbose'] |
printed_path = True |
+ # See if the url has changed |
+ current_url = self._Capture(['config', 'remote.origin.url']) |
+ if current_url != url: |
+ print('_____ switching %s to a new upstream' % self.relpath) |
+ # Make sure it's clean |
+ self._CheckClean(rev_str) |
+ # Switch over to the new upstream |
+ self._Run(['remote', 'set-url', 'origin', url], options) |
+ quiet = [] |
+ if not options.verbose: |
+ quiet = ['--quiet'] |
+ self._Run(['fetch', 'origin', '--prune'] + quiet, options) |
+ self._Run(['reset', '--hard', 'origin/master'] + quiet, options) |
+ files = self._Capture(['ls-files']).splitlines() |
+ file_list.extend([os.path.join(self.checkout_path, f) for f in files]) |
+ return |
+ |
if revision.startswith('refs/heads/'): |
rev_type = "branch" |
elif revision.startswith('origin/'): |
@@ -198,7 +215,7 @@ |
if not os.path.exists(self.checkout_path): |
self._Clone(revision, url, options) |
- files = self._Capture(['ls-files']).split() |
+ files = self._Capture(['ls-files']).splitlines() |
file_list.extend([os.path.join(self.checkout_path, f) for f in files]) |
if not verbose: |
# Make the output a little prettier. It's nice to have some whitespace |