Revert "If managed=False, don't fetch."
This reverts commit 617a1617cff80653d989ffbba597d843d3728a35.
BUG=385417
TBR=hinoka@chromium.org,agable@chromium.org
Review URL: https://codereview.chromium.org/344443002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@277766 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/gclient_scm.py b/gclient_scm.py
index 1b50abe..26d9658 100644
--- a/gclient_scm.py
+++ b/gclient_scm.py
@@ -356,13 +356,6 @@
verbose = ['--verbose']
printed_path = True
- if not managed:
- self.Print('________ unmanaged solution; skipping %s' % self.relpath)
- try:
- return self._Capture(['rev-parse', '--verify', 'HEAD'])
- except subprocess2.CalledProcessError:
- return None
-
url = self._CreateOrUpdateCache(url, options)
if revision.startswith('refs/'):
@@ -396,6 +389,11 @@
self.Print('')
return self._Capture(['rev-parse', '--verify', 'HEAD'])
+ if not managed:
+ self._UpdateBranchHeads(options, fetch=False)
+ self.Print('________ unmanaged solution; skipping %s' % self.relpath)
+ return self._Capture(['rev-parse', '--verify', 'HEAD'])
+
# See if the url has changed (the unittests use git://foo for the url, let
# that through).
current_url = self._Capture(['config', 'remote.%s.url' % self.remote])
diff --git a/tests/gclient_scm_test.py b/tests/gclient_scm_test.py
index f2d35ea..0341229 100755
--- a/tests/gclient_scm_test.py
+++ b/tests/gclient_scm_test.py
@@ -1413,17 +1413,19 @@
root_dir=self.root_dir,
relpath=self.relpath)
+ expected_file_list = [join(self.base_path, "a"),
+ join(self.base_path, "b")]
file_list = []
options.revision = 'unmanaged'
scm.update(options, (), file_list)
- self.assertEquals(file_list, [])
- self.assertRaises(subprocess2.CalledProcessError,
- scm.revinfo, options, (), None)
-
+ self.assertEquals(file_list, expected_file_list)
+ self.assertEquals(scm.revinfo(options, (), None),
+ '069c602044c5388d2d15c3f875b057c852003458')
# indicates detached HEAD
- self.assertRaises(subprocess2.CalledProcessError, self.getCurrentBranch)
- self.checkInStdout('unmanaged solution; skipping')
+ self.assertEquals(self.getCurrentBranch(), None)
+ self.checkInStdout(
+ 'Checked out refs/remotes/origin/master to a detached HEAD')
rmtree(origin_root_dir)
@@ -1443,16 +1445,19 @@
root_dir=self.root_dir,
relpath=self.relpath)
+ expected_file_list = [join(self.base_path, "a"),
+ join(self.base_path, "b")]
file_list = []
options.revision = 'unmanaged'
scm.update(options, (), file_list)
- self.assertEquals(file_list, [])
- self.assertRaises(subprocess2.CalledProcessError,
- scm.revinfo, options, (), None)
+ self.assertEquals(file_list, expected_file_list)
+ self.assertEquals(scm.revinfo(options, (), None),
+ 'a7142dc9f0009350b96a11f372b6ea658592aa95')
# indicates detached HEAD
- self.assertRaises(subprocess2.CalledProcessError, self.getCurrentBranch)
- self.checkInStdout('unmanaged solution; skipping')
+ self.assertEquals(self.getCurrentBranch(), None)
+ self.checkInStdout(
+ 'Checked out a7142dc9f0009350b96a11f372b6ea658592aa95 to a detached HEAD')
rmtree(origin_root_dir)
@@ -1471,14 +1476,17 @@
root_dir=self.root_dir,
relpath=self.relpath)
+ expected_file_list = [join(self.base_path, "a"),
+ join(self.base_path, "b"),
+ join(self.base_path, "c")]
file_list = []
options.revision = 'unmanaged'
scm.update(options, (), file_list)
- self.assertEquals(file_list, [])
- self.assertRaises(subprocess2.CalledProcessError,
- scm.revinfo, options, (), None)
- self.assertRaises(subprocess2.CalledProcessError, self.getCurrentBranch)
+ self.assertEquals(file_list, expected_file_list)
+ self.assertEquals(scm.revinfo(options, (), None),
+ '9a51244740b25fa2ded5252ca00a3178d3f665a9')
+ self.assertEquals(self.getCurrentBranch(), 'feature')
self.checkNotInStdout('Checked out feature to a detached HEAD')
rmtree(origin_root_dir)
@@ -1498,16 +1506,20 @@
root_dir=self.root_dir,
relpath=self.relpath)
+ expected_file_list = [join(self.base_path, "a"),
+ join(self.base_path, "b"),
+ join(self.base_path, "c")]
file_list = []
options.revision = 'unmanaged'
- scm.update(options, (), [])
+ scm.update(options, (), file_list)
- self.assertEquals(file_list, [])
- self.assertRaises(subprocess2.CalledProcessError,
- scm.revinfo, options, (), None)
+ self.assertEquals(file_list, expected_file_list)
+ self.assertEquals(scm.revinfo(options, (), None),
+ '9a51244740b25fa2ded5252ca00a3178d3f665a9')
# indicates detached HEAD
- self.assertRaises(subprocess2.CalledProcessError, self.getCurrentBranch)
- self.checkInStdout('unmanaged solution; skipping')
+ self.assertEquals(self.getCurrentBranch(), None)
+ self.checkInStdout(
+ 'Checked out refs/remotes/origin/feature to a detached HEAD')
rmtree(origin_root_dir)
@@ -1526,14 +1538,17 @@
root_dir=self.root_dir,
relpath=self.relpath)
+ expected_file_list = [join(self.base_path, "a"),
+ join(self.base_path, "b"),
+ join(self.base_path, "c")]
file_list = []
options.revision = 'unmanaged'
scm.update(options, (), file_list)
- self.assertEquals(file_list, [])
- self.assertRaises(subprocess2.CalledProcessError,
- scm.revinfo, options, (), None)
- self.assertRaises(subprocess2.CalledProcessError, self.getCurrentBranch)
+ self.assertEquals(file_list, expected_file_list)
+ self.assertEquals(scm.revinfo(options, (), None),
+ '9a51244740b25fa2ded5252ca00a3178d3f665a9')
+ self.assertEquals(self.getCurrentBranch(), 'feature')
self.checkNotInStdout(
'Checked out refs/heads/feature to a detached HEAD')