#NEWLINE# def update_from_commit_id( self , commit_id ) : #NEWLINE# #INDENT# "Updates the data from a server-side changeset.\n\n        If the commit ID refers to a pending changeset on an SCM which stores\n        such things server-side (like perforce), the details like the summary\n        and description will be updated with the latest information.\n\n        If the change number is the commit ID of a change which exists on the\n        server, the summary and description will be set from the commit's\n        message, and the diff will be fetched from the SCM.\n        " #NEWLINE# scmtool = self . repository . get_scmtool ( ) #NEWLINE# changeset = None #NEWLINE# if scmtool . supports_pending_changesets : #NEWLINE# #INDENT# changeset = scmtool . get_changeset ( commit_id , allow_empty = True ) #NEWLINE# #UNINDENT# if ( changeset and changeset . pending ) : #NEWLINE# #INDENT# self . update_from_pending_change ( commit_id , changeset ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if self . repository . supports_post_commit : #NEWLINE# #INDENT# self . update_from_committed_change ( commit_id ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if changeset : #NEWLINE# #INDENT# raise InvalidChangeNumberError ( ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# raise NotImplementedError ( )