def sum_revision_numbers(arguments):
arguments = list(arguments)<EOL>if len(arguments) % <NUM_LIT:2> != <NUM_LIT:0>:<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>summed_revision_number = <NUM_LIT:0><EOL>while arguments:<EOL><INDENT>repository = coerce_repository(arguments.pop(<NUM_LIT:0>))<EOL>summed_revision_number += repository.find_revision_number(arguments.pop(<NUM_LIT:0>))<EOL><DEDENT>return summed_revision_number<EOL>
Sum revision numbers of multiple repository/revision pairs.

:param arguments: A list of strings with repository names and revision
                  strings.
:returns: A single integer containing the summed revision numbers.

This is useful when you're building a package based on revisions from
multiple VCS repositories. By taking changes in all repositories into
account when generating version numbers you can make sure that your version
number is bumped with every single change.