let first_subbranch_revision number revs =
  let len = List.length number in
  let res =
    List.fold_left
      (fun (id_rev_opt) -> fun r ->
        let (first, last) = Ocvs_misc.get_n_first_ele len r.rev_number in
        if len < List.length r.rev_number && first = number then
          match last with
            [id2] ->
              (
               match id_rev_opt with
                 Some (id, _) when id2 < id -> Some (id2, r)
              | Some (id, _) -> id_rev_opt
              | _ -> Some (id2, r)
              )
          | _ ->
              id_rev_opt
       else
          id_rev_opt
      )
      None
      revs
  in
  match res with
    None -> None
  | Some (_, r) -> Some r