(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:hgDir)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(dirname)} {($ VSub_Number '$0')})])
                left_token: <Left_Backtick '`'>
                spids: [51 55]
              ) (/..)
            }
          spids: [50]
        )
      ]
      spids: [50]
    )
    (Sentence
      child: 
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (DBracket
                      expr: 
                        (LogicalAnd
                          left: (BoolUnary op_id:BoolUnary_x child:{(/usr/bin/hg)})
                          right: (BoolUnary op_id:BoolUnary_d child:{($ VSub_Name '$hgDir') (/.hg)})
                        )
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:rev)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: (CommandList children:[(C {(hg)} {(id)} {(-i)})])
                            left_token: <Left_Backtick '`'>
                            spids: [81 87]
                          )
                        }
                      spids: [80]
                    )
                  ]
                  spids: [80]
                )
              ]
              spids: [16777215 77]
            )
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (C {(Lit_Other '[')} {(-f)} {($ VSub_Name '$hgDir') (/.hg_archival.txt)} 
                      {(Lit_Other ']')}
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:rev)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(grep)} {(node)} 
                                            {($ VSub_Name '$hgDir') (/.hg_archival.txt)}
                                          )
                                          (C {(cut)} {(-d) (SQ <' '>)} {(-f)} {(2)})
                                          (C {(head)} {(-c)} {(12)})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [105 131]
                              )
                            }
                          spids: [104]
                        )
                      ]
                      spids: [104]
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              spids: [89 101]
            )
          ]
          else_action: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:rev) op:Equal rhs:{(EmptyPart)} spids:[137])]
                  spids: [137]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          spids: [134 141]
        )
      terminator: <Op_Semi ';'>
    )
    (C {(echo)} {(DQ ($ VSub_Name '$rev'))})
  ]
)