commit 490756b78806e1a367175f25f83494d902f18dd9
Author: Derek Wright <git@dwwright.net>
Date:   Tue Feb 7 00:19:22 2012 -0800

    [#1371306] by dww: Require 'full_version' or 'version' if 'revision' is set.

diff --git a/drupalorg_drush.drush.inc b/drupalorg_drush.drush.inc
index 1f31a89..d7acb3c 100644
--- a/drupalorg_drush.drush.inc
+++ b/drupalorg_drush.drush.inc
@@ -334,7 +334,7 @@ class DrushMakeDo_ProjectWhitelist extends DrushMakeDo_Whitelist {
  */
 class DrushMakeDo_DownloadWhitelist extends DrushMakeDo_Whitelist {
   // The list of currently allowed project-download-level attributes.
-  protected $attribute_whitelist = array('revision', 'branch', 'tag', 'type');
+  protected $attribute_whitelist = array('revision', 'branch', 'tag', 'type', 'full_version');
 
   /**
    * Need special handling for the type attribute (it can be set, but
@@ -368,7 +368,7 @@ class DrushMakeDo_DownloadRevision extends DrushMakeDo_Transformer {
   function verify(&$makefile, $name = NULL) {
     $pass = TRUE;
     if (isset($makefile['download']) && isset($makefile['download']['revision'])) {
-      if(!isset($makefile['version'])) {
+      if (!isset($makefile['version']) && !isset($makefile['download']['full_version'])) {
         $pass = FALSE;
         $this->log($this->error_message('version', $name));
       }
@@ -377,7 +377,7 @@ class DrushMakeDo_DownloadRevision extends DrushMakeDo_Transformer {
   }
 
   function error_message($attribute, $project) {
-    return dt("The project-level attribute '%attribute' must be specified when the project download-level attribute 'revision' is specified on project '%project'.", array('%attribute' => $attribute, '%project' => $project));
+    return dt("Either the project-level attribute '%attribute' or the download-level attribute 'full_version' must be defined when the project download-level attribute 'revision' is specified on project '%project'.", array('%attribute' => $attribute, '%project' => $project));
   }
 }
 
