diff options
| -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 |
