Merge pull request #1452 from davebx/ts_revisions_refactor

Some tweaks to shed_util_common.
This commit is contained in:
Martin Cech
2016-01-12 12:21:06 -05:00
4 changed files with 18 additions and 19 deletions
@@ -2946,13 +2946,13 @@ class RepositoryController( BaseUIController, ratings_util.ItemRatings ):
else:
tool_shed_status_dict[ 'revision_update' ] = 'False'
# Handle revision upgrades.
ordered_metadata_changeset_revisions = suc.get_ordered_metadata_changeset_revisions( repository, repo, downloadable=True )
num_metadata_revisions = len( ordered_metadata_changeset_revisions )
for index, metadata_changeset_revision in enumerate( ordered_metadata_changeset_revisions ):
metadata_revisions = [ revision[ 1 ] for revision in suc.get_metadata_revisions( repository, repo ) ]
num_metadata_revisions = len( metadata_revisions )
for index, metadata_revision in enumerate( metadata_revisions ):
if index == num_metadata_revisions:
tool_shed_status_dict[ 'revision_upgrade' ] = 'False'
break
if metadata_changeset_revision == changeset_revision:
if metadata_revision == changeset_revision:
if num_metadata_revisions - index > 1:
tool_shed_status_dict[ 'revision_upgrade' ] = 'True'
else:
@@ -361,7 +361,7 @@ def should_set_do_not_test_flag( app, repository, changeset_revision, testable_r
"""
if not testable_revision:
repo = hg_util.get_repo_for_repository( app, repository=repository, repo_path=None, create=False )
changeset_revisions = suc.get_ordered_metadata_changeset_revisions( repository, repo, downloadable=True )
changeset_revisions = [ revision[ 1 ] for revision in suc.get_metadata_revisions( repository, repo ) ]
if len( changeset_revisions ) > 1:
latest_downloadable_revision = changeset_revisions[ -1 ]
if changeset_revision != latest_downloadable_revision:
+2 -2
View File
@@ -12,7 +12,7 @@ def get_latest_changeset_revision( app, repository, repo ):
repository_tip )
if repository_metadata and repository_metadata.downloadable:
return repository_tip
changeset_revisions = suc.get_ordered_metadata_changeset_revisions( repository, repo, downloadable=False )
changeset_revisions = [ revision[ 1 ] for revision in suc.get_metadata_revisions( repository, repo ) ]
if changeset_revisions:
return changeset_revisions[ -1 ]
return hg_util.INITIAL_CHANGELOG_HASH
@@ -38,7 +38,7 @@ def get_previous_metadata_changeset_revision( repository, repo, before_changeset
the changeset to which before_changeset_revision refers. If there isn't one, return the hash value
of an empty repository changelog, hg_util.INITIAL_CHANGELOG_HASH.
"""
changeset_revisions = suc.get_ordered_metadata_changeset_revisions( repository, repo, downloadable=downloadable )
changeset_revisions = [ revision[ 1 ] for revision in suc.get_metadata_revisions( repository, repo ) ]
if len( changeset_revisions ) == 1:
changeset_revision = changeset_revisions[ 0 ]
if changeset_revision == before_changeset_revision:
+11 -12
View File
@@ -6,6 +6,7 @@ import shutil
import socket
import string
from urllib2 import HTTPError
from operator import itemgetter
import sqlalchemy.orm.exc
from sqlalchemy import and_, false, or_, true
@@ -345,7 +346,7 @@ def get_latest_downloadable_changeset_revision( app, repository, repo ):
repository_metadata = get_repository_metadata_by_changeset_revision( app, app.security.encode_id( repository.id ), repository_tip )
if repository_metadata and repository_metadata.downloadable:
return repository_tip
changeset_revisions = get_ordered_metadata_changeset_revisions( repository, repo, downloadable=True )
changeset_revisions = [ revision[ 1 ] for revision in get_metadata_revisions( repository, repo ) ]
if changeset_revisions:
return changeset_revisions[ -1 ]
return hg_util.INITIAL_CHANGELOG_HASH
@@ -369,7 +370,7 @@ def get_next_downloadable_changeset_revision( repository, repo, after_changeset_
Return the installable changeset_revision in the repository changelog after the changeset to which
after_changeset_revision refers. If there isn't one, return None.
"""
changeset_revisions = get_ordered_metadata_changeset_revisions( repository, repo, downloadable=True )
changeset_revisions = [ revision[ 1 ] for revision in get_metadata_revisions( repository, repo ) ]
if len( changeset_revisions ) == 1:
changeset_revision = changeset_revisions[ 0 ]
if changeset_revision == after_changeset_revision:
@@ -420,10 +421,9 @@ def get_next_prior_import_or_install_required_dict_entry( prior_required_dict, p
return key
def get_ordered_metadata_changeset_revisions( repository, repo, downloadable=True ):
def get_metadata_revisions( repository, repo, sort_revisions=True, reverse=False, downloadable=True ):
"""
Return an ordered list of changeset_revisions that are associated with metadata
where order is defined by the repository changelog.
Return a list of changesets for the provided repository.
"""
if downloadable:
metadata_revisions = repository.downloadable_revisions
@@ -431,16 +431,15 @@ def get_ordered_metadata_changeset_revisions( repository, repo, downloadable=Tru
metadata_revisions = repository.metadata_revisions
changeset_tups = []
for repository_metadata in metadata_revisions:
changeset_revision = repository_metadata.changeset_revision
ctx = hg_util.get_changectx_for_changeset( repo, changeset_revision )
ctx = hg_util.get_changectx_for_changeset( repo, repository_metadata.changeset_revision )
if ctx:
rev = '%04d' % ctx.rev()
else:
rev = '-1'
changeset_tups.append( ( rev, changeset_revision ) )
sorted_changeset_tups = sorted( changeset_tups )
sorted_changeset_revisions = [ str( changeset_tup[ 1 ] ) for changeset_tup in sorted_changeset_tups ]
return sorted_changeset_revisions
rev = -1
changeset_tups.append( ( rev, repository_metadata.changeset_revision ) )
if sort_revisions:
changeset_tups.sort( key=itemgetter( 0 ), reverse=reverse )
return changeset_tups
def get_prior_import_or_install_required_dict( app, tsr_ids, repo_info_dicts ):