docs: def activate():
      """
      Activates the version specified in ``env.project_version`` if it is different
      from the current active version.
      
      An active version is just the version that is symlinked.
      """
  
      env_path = '/'.join([deployment_root(),'env',env.project_fullname])
  
      if not exists(env_path):
          print env.host,"ERROR: The version",env.project_version,"does not exist at"
          print env_path
          sys.exit(1)
  
      active = active_version()
      servers = webserver_list()
  
      if env.patch or active <> env.project_fullname:
          for s in servers:
              stop_webserver(s)
          
      if not env.patch and active <> env.project_fullname:
          
          if env.verbosity:
              print env.host, "ACTIVATING version", env_path
          
          if not env.nomigration:
              sync_db()
          
          #south migration
          if 'south' in env.INSTALLED_APPS and not env.nomigration and not env.manualmigration:
              migration()
              
          if env.manualmigration or env.MANUAL_MIGRATION: manual_migration()
        
          #activate sites
          activate_sites = [''.join([d.name.replace('.','_'),'-',env.project_version,'.conf']) for d in domain_sites()]
          if 'apache2' in get_packages():
              site_paths = ['/etc/apache2','/etc/nginx']
          else:
              site_paths = ['/etc/nginx']
          
          #disable existing sites
          for path in site_paths:
              for site in _ls_sites('/'.join([path,'sites-enabled'])):
                  if site not in activate_sites:
                      sudo("rm %s/sites-enabled/%s"% (path,site))
          
          #activate new sites
          for path in site_paths:
              for site in activate_sites:
                  if not exists('/'.join([path,'sites-enabled',site])):
                      sudo("chmod 644 %s" % '/'.join([path,'sites-available',site]))
                      sudo("ln -s %s/sites-available/%s %s/sites-enabled/%s"% (path,site,path,site))
                      if env.verbosity:
                          print " * enabled", "%s/sites-enabled/%s"% (path,site)
          
          #delete existing symlink
          ln_path = '/'.join([deployment_root(),'env',env.project_name])
          run('rm -f '+ln_path)
          #run post deploy hooks
          post_exec_hook('post_deploy')
          #activate
          run('ln -s %s %s'% (env_path,ln_path))
  
    
          if env.verbosity:
              print env.host,env.project_fullname, "ACTIVATED"
      else:
          if env.verbosity and not env.patch:
              print env.project_fullname,"is the active version"
  
      if env.patch or active <> env.project_fullname:
          for s in servers:
              start_webserver(s)
          print
      return