From 858d645a31a9a2be36d49dc7059af66eb6507c66 Mon Sep 17 00:00:00 2001 From: "thomasvl@chromium.org" Date: Thu, 24 Mar 2011 17:59:20 +0000 Subject: [PATCH] Add support to check if the url has changed for a git dep and create a new clone. BUG=none TEST=none Review URL: http://codereview.chromium.org/6732023 git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@79298 0039d316-1c4b-4281-b951-d872f2087c98 --- gclient_scm.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/gclient_scm.py b/gclient_scm.py index c460a76d6..0bb364401 100644 --- a/gclient_scm.py +++ b/gclient_scm.py @@ -186,6 +186,23 @@ class GitWrapper(SCMWrapper): 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 @@ class GitWrapper(SCMWrapper): 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