def get_repo_revision():
    '''
    Returns SVN revision number.

    Returns 0 if anything goes wrong, such as missing .svn files or
    an unexpected format of internal SVN files or folder is not
    a svn working copy.

    See http://stackoverflow.com/questions/1449935/getting-svn-revision-number-into-a-program-automatically
    '''
    rev = 0
    path = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
    entries_path = os.path.join(path, '.svn', 'entries')

    try:
        entries = open(entries_path, 'rU').read()
    except IOError:
        pass
    else:
        # Versions >= 7 of the entries file are flat text.  The first line is
        # the version number. The next set of digits after 'dir' is the revision.
        if re.match('(\d+)', entries):
            rev_match = re.search('\d+\s+dir\s+(\d+)', entries)
            if rev_match:
                rev = rev_match.groups()[0]
        # Older XML versions of the file specify revision as an attribute of
        # the first entries node.
        else:
            from xml.dom import minidom
            dom = minidom.parse(entries_path)
            rev = dom.getElementsByTagName('entry')[0].getAttribute('revision')

    return rev
def get_repo_revision ( ) : rev = 0 path = os . path . abspath ( os . path . dirname ( os . path . dirname ( __file__ ) ) ) entries_path = os . path . join ( path , '.svn' , 'entries' ) try : entries = open ( entries_path , 'rU' ) . read ( ) except IOError : pass else : if re . match ( '(\d+)' , entries ) : rev_match = re . search ( '\d+\s+dir\s+(\d+)' , entries ) if rev_match : rev = rev_match . groups ( ) [ 0 ] else : from xml . dom import minidom dom = minidom . parse ( entries_path ) rev = dom . getElementsByTagName ( 'entry' ) [ 0 ] . getAttribute ( 'revision' ) return rev
Returns SVN revision number.

    Returns 0 if anything goes wrong, such as missing .svn files or
    an unexpected format of internal SVN files or folder is not
    a svn working copy.

    See http://stackoverflow.com/questions/1449935/getting-svn-revision-number-into-a-program-automatically