# Read defaults
  : ${VCSH_REPO_D:=$XDG_CONFIG_HOME/vcsh/repo.d}
 -: ${VCSH_HOOK_D:=$XDH_CONFIG_HOME/vcsh/hooks-enabled}
 +: ${VCSH_HOOK_D:=$XDG_CONFIG_HOME/vcsh/hooks-enabled}
  : ${VCSH_BASE:=$HOME}
  : ${VCSH_GITIGNORE:=exact}
+ : ${VCSH_GITATTRIBUTES:=none}
  : ${VCSH_WORKTREE:=absolute}
  
  if [ ! "x$VCSH_GITIGNORE" = 'xexact' ] && [ ! "x$VCSH_GITIGNORE" = 'xnone' ] && [ ! "x$VCSH_GITIGNORE" = 'xrecursive' ]; then
                git config core.worktree "$VCSH_BASE"
        fi
        [ ! "x$VCSH_GITIGNORE" = 'xnone' ] && git config core.excludesfile ".gitignore.d/$VCSH_REPO_NAME"
-       git config core.attributesfile ".gitattributes.d/$VCSH_REPO_NAME"
+       [ ! "x$VCSH_GITATTRIBUTES" = 'xnone' ] && git config core.attributesfile ".gitattributes.d/$VCSH_REPO_NAME"
 -      git config vcsh.vcsh         'true'
 +      git config vcsh.vcsh 'true'
        use
        [ -e "$VCSH_BASE/.gitignore.d/$VCSH_REPO_NAME" ] && git add -f "$VCSH_BASE/.gitignore.d/$VCSH_REPO_NAME"
        [ -e "$VCSH_BASE/.gitattributes.d/$VCSH_REPO_NAME" ] && git add -f "$VCSH_BASE/.gitattributes.d/$VCSH_REPO_NAME"
  
        use
        cd "$VCSH_BASE" || fatal "could not enter '$VCSH_BASE'" 11
 +      OLDIFS="$IFS"
 +      IFS=$(printf '\n\t')
        gitignores=$(for file in $(git ls-files); do
                while true; do
                        echo $file; new="${file%/*}"
                        { echo "$gitignore/*" | sed 's@^@!/@' >> "$tempfile" || fatal "could not write to '$tempfile'" 57; }
                fi
        done
 +      IFS="$OLDIFS"
        if diff -N "$tempfile" "$VCSH_BASE/.gitignore.d/$VCSH_REPO_NAME" > /dev/null; then
                rm -f "$tempfile" || error "could not delete '$tempfile'"
                exit
                fatal "could not move '$tempfile' to '$VCSH_BASE/.gitignore.d/$VCSH_REPO_NAME'" 53
  }
  
 -debug `git version`
 +debug $(git version)
  
  if [ ! "x$VCSH_GITIGNORE" = 'xexact' ] && [ ! "x$VCSH_GITIGNORE" = 'xnone' ] && [ ! "x$VCSH_GITIGNORE" = 'xrecursive' ]; then
        fatal "'\$VCSH_GITIGNORE' must equal 'exact', 'none', or 'recursive'" 1
  
  check_dir "$VCSH_REPO_D"
  [ ! "x$VCSH_GITIGNORE" = 'xnone' ] && check_dir "$VCSH_BASE/.gitignore.d"
- check_dir "$VCSH_BASE/.gitattributes.d"
+ [ ! "x$VCSH_GITATTRIBUTES" = 'xnone' ] && check_dir "$VCSH_BASE/.gitattributes.d"
  
  verbose "$VCSH_COMMAND begin"
  export VCSH_COMMAND=$(echo $VCSH_COMMAND | sed 's/-/_/g')