diff --git a/project.py b/project.py
index 2ab0b38..e777dbd 100644
--- a/project.py
+++ b/project.py
@@ -1216,7 +1216,7 @@
                                          (self.revisionExpr, self.name))
 
   def SetRevisionId(self, revisionId):
-    if self.clone_depth or self.manifest.manifestProject.config.GetString('repo.depth'):
+    if self.revisionExpr:
       self.upstream = self.revisionExpr
 
     self.revisionId = revisionId
@@ -1967,6 +1967,10 @@
       # throws an error.
       self.bare_git.rev_list('-1', '--missing=allow-any',
                              '%s^0' % self.revisionExpr, '--')
+      if self.upstream:
+        rev = self.GetRemote(self.remote.name).ToLocal(self.upstream)
+        self.bare_git.rev_list('-1', '--missing=allow-any',
+                               '%s^0' % rev, '--')
       return True
     except GitError:
       # There is no such persistent revision. We have to fetch it.
diff --git a/tests/test_git_superproject.py b/tests/test_git_superproject.py
index c3f8853..6ff8184 100644
--- a/tests/test_git_superproject.py
+++ b/tests/test_git_superproject.py
@@ -213,7 +213,7 @@
         '<remote fetch="http://localhost" name="default-remote"/>'
         '<default remote="default-remote" revision="refs/heads/main"/>'
         '<project groups="notdefault,platform-' + self.platform + '" '
-        'name="platform/art" path="art" revision="ABCDEF"/>'
+        'name="platform/art" path="art" revision="ABCDEF" upstream="refs/heads/main"/>'
         '<superproject name="superproject"/>'
         '</manifest>')
 
@@ -242,7 +242,7 @@
               '<default remote="default-remote" revision="refs/heads/main"/>'
               '<project groups="notdefault,platform-' + self.platform + '" '
               'name="platform/art" path="art" '
-              'revision="2c2724cb36cd5a9cec6c852c681efc3b7c6b86ea"/>'
+              'revision="2c2724cb36cd5a9cec6c852c681efc3b7c6b86ea" upstream="refs/heads/main"/>'
               '<superproject name="superproject"/>'
               '</manifest>')
 
@@ -271,7 +271,7 @@
         '<?xml version="1.0" ?><manifest>'
         '<remote fetch="http://localhost" name="default-remote"/>'
         '<default remote="default-remote" revision="refs/heads/main"/>'
-        '<project name="test-name" revision="ABCDEF"/>'
+        '<project name="test-name" revision="ABCDEF" upstream="refs/heads/main"/>'
         '</manifest>')
 
   def test_superproject_update_project_revision_id_from_local_manifest_group(self):
@@ -316,7 +316,7 @@
               '<default remote="default-remote" revision="refs/heads/main"/>'
               '<project groups="notdefault,platform-' + self.platform + '" '
               'name="platform/art" path="art" '
-              'revision="2c2724cb36cd5a9cec6c852c681efc3b7c6b86ea"/>'
+              'revision="2c2724cb36cd5a9cec6c852c681efc3b7c6b86ea" upstream="refs/heads/main"/>'
               '<project clone-depth="1" groups="' + local_group + '" '
               'name="platform/vendor/x" path="vendor/x" remote="goog" '
               'revision="master-with-vendor"/>'
@@ -363,9 +363,9 @@
               '<default remote="default-remote" revision="refs/heads/main"/>'
               '<project groups="notdefault,platform-' + self.platform + '" '
               'name="platform/art" path="art" '
-              'revision="2c2724cb36cd5a9cec6c852c681efc3b7c6b86ea"/>'
+              'revision="2c2724cb36cd5a9cec6c852c681efc3b7c6b86ea" upstream="refs/heads/main"/>'
               '<project name="platform/vendor/x" path="vendor/x" '
-              'revision="e9d25da64d8d365dbba7c8ee00fe8c4473fe9a06"/>'
+              'revision="e9d25da64d8d365dbba7c8ee00fe8c4473fe9a06" upstream="refs/heads/main"/>'
               '<project name="platform/vendor/y" path="vendor/y" '
               'revision="52d3c9f7c107839ece2319d077de0cd922aa9d8f"/>'
               '<superproject name="superproject"/>'
diff --git a/tests/test_manifest_xml.py b/tests/test_manifest_xml.py
index 2a16900..55468b5 100644
--- a/tests/test_manifest_xml.py
+++ b/tests/test_manifest_xml.py
@@ -437,7 +437,7 @@
         '<?xml version="1.0" ?><manifest>'
         '<remote fetch="http://localhost" name="default-remote"/>'
         '<default remote="default-remote" revision="refs/heads/main"/>'
-        '<project name="test-name" revision="ABCDEF"/>'
+        '<project name="test-name" revision="ABCDEF" upstream="refs/heads/main"/>'
         '</manifest>')
 
   def test_trailing_slash(self):
