lib/pvl/commit.sh
changeset 629 7214fe5c6fac
parent 628 b10ad946d01d
child 632 711be783d0a1
equal deleted inserted replaced
628:b10ad946d01d 629:7214fe5c6fac
     1 # VCS abstraction layer
     1 # VCS abstraction layer
     2 
     2 
     3 . $LIB/pvl/commit/git.sh
     3 . $LIB/pvl/commit/git.sh
     4 . $LIB/pvl/commit/hg.sh
     4 . $LIB/pvl/commit/hg.sh
     5 
     5 
     6 commit_GETOPTS='cCm:'
     6 commit_GETOPTS='cCm:M'
     7 
     7 
     8 COMMIT=
     8 COMMIT=
     9 COMMIT_DIFF=
     9 COMMIT_DIFF=
    10 COMMIT_MSG=' '
    10 COMMIT_MSG=' '
    11 
    11 
    13     cat <<END
    13     cat <<END
    14 Commit:
    14 Commit:
    15     -C      do not commit changes
    15     -C      do not commit changes
    16     -c      commit changes
    16     -c      commit changes
    17     -m MSG  commit message
    17     -m MSG  commit message
       
    18     -M      interactive commit message
    18 END
    19 END
    19 }
    20 }
    20 
    21 
    21 function commit_opt {
    22 function commit_opt {
    22     local opt=$1
    23     local opt=$1
    25     case $opt in
    26     case $opt in
    26         c)  COMMIT=1 ;;
    27         c)  COMMIT=1 ;;
    27         C)  COMMIT=0 ;;
    28         C)  COMMIT=0 ;;
    28 
    29 
    29         m)  COMMIT_MSG="$optarg" ;;
    30         m)  COMMIT_MSG="$optarg" ;;
       
    31         M)  COMMIT_MSG= ;;
    30         
    32         
    31         n)  COMMIT=0 ;;
    33         n)  COMMIT=0 ;;
    32         p)  COMMIT_DIFF=1 ;;
    34         p)  COMMIT_DIFF=1 ;;
    33         *)  return 1
    35         *)  return 1
    34     esac
    36     esac
    66 
    68 
    67     # operate?
    69     # operate?
    68     if [ "$COMMIT" = 1 ]; then
    70     if [ "$COMMIT" = 1 ]; then
    69         log_force   "$repo: force commit"
    71         log_force   "$repo: force commit"
    70 
    72 
    71         [ "$COMMIT_DIFF" ] && indent "    " ${commit}_diff "$repo" || true
    73         [ "$COMMIT_DIFF" ] && cmd_indent "    " ${commit}_diff "$repo" || true
    72 
    74 
    73         ${commit}_commit "$repo" "$commit_msg"
    75         ${commit}_commit "$repo" "$commit_msg"
    74 
    76 
    75     elif ! ${commit}_modified "$repo"; then
    77     elif ! ${commit}_modified "$repo"; then
    76         log_warn    "$repo: no changes to commit"
    78         log_warn    "$repo: no changes to commit"
    77 
    79 
    78     elif [ "$COMMIT" = 0 ]; then
    80     elif [ "$COMMIT" = 0 ]; then
    79         log_noop    "$repo: skip commit"
    81         log_noop    "$repo: skip commit"
    80         
    82         
    81         # still show diff, though
    83         # still show diff, though
    82         [ "$COMMIT_DIFF" ] && indent "    " ${commit}_diff "$repo" || true
    84         [ "$COMMIT_DIFF" ] && cmd_indent "    " ${commit}_diff "$repo" || true
    83     else
    85     else
    84         log_apply   "$repo: commit: $commit_msg"
    86         log_apply   "$repo: commit: $commit_msg"
    85 
    87 
    86         [ "$COMMIT_DIFF" ] && indent "    " ${commit}_diff "$repo" || true
    88         [ "$COMMIT_DIFF" ] && cmd_indent "    " ${commit}_diff "$repo" || true
    87 
    89 
    88         ${commit}_commit "$repo" "$commit_msg"
    90         ${commit}_commit "$repo" "$commit_msg"
    89     fi
    91     fi
    90 }
    92 }
    91 
    93