submodule_branch
                ])
        finally:
            os.chdir(cwd)

    return skip_msg


if __name__ == "__main__":
    args = parse_arguments()
    blender_skip_msg = ""
    submodules_skip_msg = ""

    # Test if we are building a specific release version.
    branch = make_utils.git_branch(args.git_command)
    release_version = make_utils.git_branch_release_version(branch)

    if not args.no_libraries:
        svn_update(args, release_version)
    if not args.no_blender:
        blender_skip_msg = git_update_skip(args)
        if blender_skip_msg:
            blender_skip_msg = "Blender repository skipped: " + blender_skip_msg + "\n"
        else:
            blender_update(args)
    if not args.no_submodules:
        submodules_skip_msg = submodules_update(args, release_version, branch)

    # Report any skipped repositories at the end, so it's not as easy to miss.
    skip_msg = blender_skip_msg + submodules_skip_msg
    if skip_msg:
        sys.stderr.write("git not found, can't update code\n")
        sys.exit(1)

    call([args.git_command, "submodule", "update", "--init", "--recursive"])
    if not release_version:
        # Update submodules to latest master if not building a specific release.
        # In that case submodules are set to a specific revision, which is checked
        # out by running "git submodule update".
        call([args.git_command, "submodule", "foreach", "git", "checkout", "master"])
        call([args.git_command, "submodule", "foreach", "git", "pull", "--rebase", "origin", "master"])


if __name__ == "__main__":
    args = parse_arguments()
    blender_skipped = None

    # Test if we are building a specific release version.
    release_version = make_utils.git_branch_release_version(args.git_command)

    if not args.no_libraries:
        svn_update(args, release_version)
    if not args.no_blender:
        blender_skipped = blender_update_skip(args)
        if not blender_skipped:
            blender_update(args)
    if not args.no_submodules:
        submodules_update(args, release_version)

    if blender_skipped:
        print_stage("Blender repository skipped: " + blender_skipped)