diff options
Diffstat (limited to 'project.py')
-rw-r--r-- | project.py | 20 |
1 files changed, 19 insertions, 1 deletions
@@ -1353,7 +1353,25 @@ class MetaProject(Project): | |||
1353 | def HasChanges(self): | 1353 | def HasChanges(self): |
1354 | """Has the remote received new commits not yet checked out? | 1354 | """Has the remote received new commits not yet checked out? |
1355 | """ | 1355 | """ |
1356 | if not self.remote or not self.revision: | ||
1357 | return False | ||
1358 | |||
1359 | all = self.bare_ref.all | ||
1356 | rev = self.GetRemote(self.remote.name).ToLocal(self.revision) | 1360 | rev = self.GetRemote(self.remote.name).ToLocal(self.revision) |
1357 | if self._revlist(not_rev(HEAD), rev): | 1361 | if rev in all: |
1362 | revid = all[rev] | ||
1363 | else: | ||
1364 | revid = rev | ||
1365 | |||
1366 | head = self.work_git.GetHead() | ||
1367 | if head.startswith(R_HEADS): | ||
1368 | try: | ||
1369 | head = all[head] | ||
1370 | except KeyError: | ||
1371 | head = None | ||
1372 | |||
1373 | if revid == head: | ||
1374 | return False | ||
1375 | elif self._revlist(not_rev(HEAD), rev): | ||
1358 | return True | 1376 | return True |
1359 | return False | 1377 | return False |