Merge branch 'da/araxis-mergetool'
authorJunio C Hamano <gitster@pobox.com>
Sat, 13 Jun 2009 19:47:08 +0000 (12:47 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sat, 13 Jun 2009 19:47:08 +0000 (12:47 -0700)
* da/araxis-mergetool:
mergetool--lib: add support for araxis merge

1  2 
contrib/completion/git-completion.bash
index cc94ef44b2910e96b60bdf2b184c4adcf89dc2d5,ead530d3a3d8a86735bdfb144de21ccee262062b..80ab4e45eb108898eb80caa32684c3f1308ab3a8
  #       with the bash.showDirtyState variable, which defaults to true
  #       once GIT_PS1_SHOWDIRTYSTATE is enabled.
  #
 +#       You can also see if currently something is stashed, by setting
 +#       GIT_PS1_SHOWSTASHSTATE to a nonempty value. If something is stashed,
 +#       then a '$' will be shown next to the branch name.
 +#
  # To submit patches:
  #
  #    *) Read Documentation/SubmittingPatches
@@@ -88,54 -84,43 +88,54 @@@ __git_ps1 (
        if [ -n "$g" ]; then
                local r
                local b
 -              if [ -d "$g/rebase-apply" ]; then
 -                      if [ -f "$g/rebase-apply/rebasing" ]; then
 -                              r="|REBASE"
 -              elif [ -f "$g/rebase-apply/applying" ]; then
 -                              r="|AM"
 -                      else
 -                              r="|AM/REBASE"
 -                      fi
 -                      b="$(git symbolic-ref HEAD 2>/dev/null)"
 -              elif [ -f "$g/rebase-merge/interactive" ]; then
 +              if [ -f "$g/rebase-merge/interactive" ]; then
                        r="|REBASE-i"
                        b="$(cat "$g/rebase-merge/head-name")"
                elif [ -d "$g/rebase-merge" ]; then
                        r="|REBASE-m"
                        b="$(cat "$g/rebase-merge/head-name")"
 -              elif [ -f "$g/MERGE_HEAD" ]; then
 -                      r="|MERGING"
 -                      b="$(git symbolic-ref HEAD 2>/dev/null)"
                else
 -                      if [ -f "$g/BISECT_LOG" ]; then
 -                              r="|BISECTING"
 -                      fi
 -                      if ! b="$(git symbolic-ref HEAD 2>/dev/null)"; then
 -                              if ! b="$(git describe --exact-match HEAD 2>/dev/null)"; then
 -                                      if [ -r "$g/HEAD" ]; then
 -                                              b="$(cut -c1-7 "$g/HEAD")..."
 -                                      fi
 +                      if [ -d "$g/rebase-apply" ]; then
 +                              if [ -f "$g/rebase-apply/rebasing" ]; then
 +                                      r="|REBASE"
 +                              elif [ -f "$g/rebase-apply/applying" ]; then
 +                                      r="|AM"
 +                              else
 +                                      r="|AM/REBASE"
                                fi
 +                      elif [ -f "$g/MERGE_HEAD" ]; then
 +                              r="|MERGING"
 +                      elif [ -f "$g/BISECT_LOG" ]; then
 +                              r="|BISECTING"
                        fi
 +
 +                      b="$(git symbolic-ref HEAD 2>/dev/null)" || {
 +
 +                              b="$(
 +                              case "${GIT_PS1_DESCRIBE_STYLE-}" in
 +                              (contains)
 +                                      git describe --contains HEAD ;;
 +                              (branch)
 +                                      git describe --contains --all HEAD ;;
 +                              (describe)
 +                                      git describe HEAD ;;
 +                              (* | default)
 +                                      git describe --exact-match HEAD ;;
 +                              esac 2>/dev/null)" ||
 +
 +                              b="$(cut -c1-7 "$g/HEAD" 2>/dev/null)..." ||
 +                              b="unknown"
 +                              b="($b)"
 +                      }
                fi
  
                local w
                local i
 +              local s
                local c
  
                if [ "true" = "$(git rev-parse --is-inside-git-dir 2>/dev/null)" ]; then
 -                      if [ "true" = "$(git config --bool core.bare 2>/dev/null)" ]; then
 +                      if [ "true" = "$(git rev-parse --is-bare-repository 2>/dev/null)" ]; then
                                c="BARE:"
                        else
                                b="GIT_DIR!"
                                        fi
                                fi
                        fi
 +                      if [ -n "${GIT_PS1_SHOWSTASHSTATE-}" ]; then
 +                              git rev-parse --verify refs/stash >/dev/null 2>&1 && s="$"
 +                      fi
                fi
  
 -              if [ -n "$b" ]; then
 -                      if [ -n "${1-}" ]; then
 -                              printf "$1" "$c${b##refs/heads/}$w$i$r"
 -                      else
 -                              printf " (%s)" "$c${b##refs/heads/}$w$i$r"
 -                      fi
 +              if [ -n "${1-}" ]; then
 +                      printf "$1" "$c${b##refs/heads/}$w$i$s$r"
 +              else
 +                      printf " (%s)" "$c${b##refs/heads/}$w$i$s$r"
                fi
        fi
  }
@@@ -927,7 -911,7 +927,7 @@@ _git_diff (
  }
  
  __git_mergetools_common="diffuse ecmerge emerge kdiff3 meld opendiff
-                       tkdiff vimdiff gvimdiff xxdiff
+                       tkdiff vimdiff gvimdiff xxdiff araxis
  "
  
  _git_difftool ()
@@@ -1338,35 -1322,6 +1338,35 @@@ _git_send_email (
        COMPREPLY=()
  }
  
 +__git_config_get_set_variables ()
 +{
 +      local prevword word config_file= c=$COMP_CWORD
 +      while [ $c -gt 1 ]; do
 +              word="${COMP_WORDS[c]}"
 +              case "$word" in
 +              --global|--system|--file=*)
 +                      config_file="$word"
 +                      break
 +                      ;;
 +              -f|--file)
 +                      config_file="$word $prevword"
 +                      break
 +                      ;;
 +              esac
 +              prevword=$word
 +              c=$((--c))
 +      done
 +
 +      for i in $(git --git-dir="$(__gitdir)" config $config_file --list \
 +                      2>/dev/null); do
 +              case "$i" in
 +              *.*)
 +                      echo "${i/=*/}"
 +                      ;;
 +              esac
 +      done
 +}
 +
  _git_config ()
  {
        local cur="${COMP_WORDS[COMP_CWORD]}"
                __gitcomp "$(__git_merge_strategies)"
                return
                ;;
 -      color.branch|color.diff|color.interactive|color.status|color.ui)
 +      color.branch|color.diff|color.interactive|\
 +      color.showbranch|color.status|color.ui)
                __gitcomp "always never auto"
                return
                ;;
                __gitcomp "$__git_send_email_suppresscc_options"
                return
                ;;
 +      --get|--get-all|--unset|--unset-all)
 +              __gitcomp "$(__git_config_get_set_variables)"
 +              return
 +              ;;
        *.*)
                COMPREPLY=()
                return
                color.interactive.help
                color.interactive.prompt
                color.pager
 +              color.showbranch
                color.status
                color.status.added
                color.status.changed
@@@ -1843,7 -1792,7 +1843,7 @@@ _git_show (
                return
                ;;
        --*)
 -              __gitcomp "--pretty= --format=
 +              __gitcomp "--pretty= --format= --abbrev-commit --oneline
                        $__git_diff_common_options
                        "
                return
@@@ -1860,8 -1809,7 +1860,8 @@@ _git_show_branch (
                __gitcomp "
                        --all --remotes --topo-order --current --more=
                        --list --independent --merge-base --no-name
 -                      --sha1-name --topics --reflog
 +                      --color --no-color
 +                      --sha1-name --sparse --topics --reflog
                        "
                return
                ;;
@@@ -1881,10 -1829,10 +1881,10 @@@ _git_stash (
                save,--*)
                        __gitcomp "--keep-index"
                        ;;
 -              apply,--*)
 +              apply,--*|pop,--*)
                        __gitcomp "--index"
                        ;;
 -              show,--*|drop,--*|pop,--*|branch,--*)
 +              show,--*|drop,--*|branch,--*)
                        COMPREPLY=()
                        ;;
                show,*|apply,*|drop,*|pop,*|branch,*)