anchor.diff:      });
     }
   
  +  Future<bool> _hasCommitsSince(GitDir gitDir, Version sinceVersion) async {
  +    return (await commitCountSince(gitDir, sinceVersion.toString())) > 0;
  +  }
  +
     @override
     ProjectCommand release({ReleaseType type: ReleaseType.minor}) {
       return projectCommandWithDependencies('Release version type $type',
           (Project project, Set<Project> dependencies) async {
         final GitDir gitDir = await project.gitDir;
  +
  +      final currentPubspecVersion = project.pubspec.version;
  +
  +      final Version latestTaggedVersion =
  +          (await _gitFeature.getReleaseVersionTags().process(project)).last;
  +
         final Option<HostedPackageVersions> publishedVersionsOpt =
             await _pub.fetchPackageVersions().process(project);
   
  
positive.code:       }
      });
    }
  }
  
negative.code:           .map((HostedPackageVersions versions) => versions.latest.version);
  
        if (latestPublishedVersionOpt is Some) {
          final latestPublishedVersion = latestPublishedVersionOpt.get();
          if (latestPublishedVersion < currentPubspecVersion) {
            await _pub.publish().process(project);
          } else {
            final hasChangesSinceLastPublish =
                await _hasCommitsSince(gitDir, latestPublishedVersion);
  
            if (hasChangesSinceLastPublish /* &&
                latestPublishedVersion == currentPubspecVersion */
  