Summary
Lists the versions in the workspace.
Discussion
You can specify the path to a connection file or the feature service URL as an argument to the function, or you can set the workspace environment to the connection file or feature service URL and call the ListVersions function without any arguments.
Note:
The arcpy.da.ListVersions function should not to be confused with the arcpy.ListVersions function, which is used to return a list of version names the connected user has permission to use.
Syntax
ListVersions (sde_workspace)
Parameter | Explanation | Data Type |
sde_workspace | An enterprise geodatabase workspace or a feature service with version management capability enabled. | String |
Code sample
Identify all versions modified within the last week.
import arcpy
import datetime
# Use datetime to establish current date/time
#
now = datetime.datetime.now()
sdeConnection = "C:/MyProject/toolboxDEFAULTVersion.sde"
# Compare lastModified property of each version to current date, and
# print version name if the version was modified in the last 7 days.
#
for version in arcpy.da.ListVersions(sdeConnection):
if (now - version.lastModified).days < 7:
print(version.name)
Delete any versions belonging to a particular user that have no children.
import arcpy
sdeConnection = "C:/MyProject/toolboxDEFAULTVersion.sde"
for version in arcpy.da.ListVersions(sdeConnection):
# Delete any versions owned by "RJones" that don't have any children
#
if version.name.split(".")[0] == "RJones" and not version.children:
print("Deleting version {0}".format(version.name))
arcpy.DeleteVersion_management(sdeConnection, version.name)
Reconcile and post versions with a specific description. This example uses a feature service that has the version management capability enabled.
# Import system modules
import arcpy
# Sign into ArcGIS Enterprise
arcpy.SignInToPortal("https://myserver.mydomain.com/portal", 'portaladmin',
'my.password')
# Create a variable for the feature service URL
myFS = "https://myserver.mydomain.com/server/rest/services/BranchVersioningData/FeatureServer"
# Use the ListVersions function to get a list of versions
versions = arcpy.da.ListVersions(myFS)
# Create a list of version to reconcile
listToRec = []
# For each version in the list, append only those that have the "READY TO POST"
# description
for version in versions:
if "READY FOR POST" in version.description.upper():
listToRec.append(version.name)
# Reconcile and post the versions
arcpy.ReconcileVersions_management(myFS,
'ALL_VERSIONS',
'sde.DEFAULT',
listToRec,
'NO_LOCK_ACQUIRED',
'ABORT_CONFLICTS',
'BY_OBJECT',
'FAVOR_EDIT_VERSION',
'POST',
'KEEP_VERSION')