# If '.git-HEAD' is appended to the version, you are seeing an unreleased
# version of vcsh; the master branch is supposed to be clean at all times
# so you can most likely just use it nonetheless
-VERSION='1.20140313'
+VERSION='1.20141009'
SELF=$(basename $0)
fatal() {
list_tracked() {
for VCSH_REPO_NAME in $(list); do
get_files
- done | sort -u
+ done | sed "s,^,$(printf '%s\n' "$VCSH_BASE/" | \
+ sed 's/[,\&]/\\&/g')," | sort -u
}
list_tracked_by() {
use
- git ls-files | sort -u
+ git ls-files | sed "s,^,$(printf '%s\n' "$VCSH_BASE/" | \
+ sed 's/[,\&]/\\&/g')," | sort -u
}
pull() {
hook pre-pull
for VCSH_REPO_NAME in $(list); do
- printf "$VCSH_REPO_NAME: "
+ printf '%s: ' "$VCSH_REPO_NAME"
GIT_DIR=$VCSH_REPO_D/$VCSH_REPO_NAME.git; export GIT_DIR
use
git pull
push() {
hook pre-push
for VCSH_REPO_NAME in $(list); do
- printf "$VCSH_REPO_NAME: "
+ printf '%s: ' "$VCSH_REPO_NAME"
GIT_DIR=$VCSH_REPO_D/$VCSH_REPO_NAME.git; export GIT_DIR
use
git push
unset VCSH_DIRECTORY
}
+list_untracked() {
+ temp_file_others=$(mktemp) || fatal 'Could not create temp file'
+ temp_file_untracked=$(mktemp) || fatal 'Could not create temp file'
+ for VCSH_REPO_NAME in $(list); do
+ [ -n $ran_once ] && foo="$(comm -12 --nocheck-order $temp_file_others $temp_file_untracked)"
+ echo "$foo" > $temp_file_untracked
+# [ -n $ran_once ] && files_untracked=$(printf '%s\n' "$files_untracked" | grep -Fx "$files_other")
+ export GIT_DIR="$VCSH_REPO_D/$VCSH_REPO_NAME.git"
+ git ls-files --others | sort -u > $temp_file_others
+ [ -z "$ran_once" ] && { ran_once=1; cp $temp_file_others $temp_file_untracked; }
+ done
+ cat $temp_file_untracked
+ rm $temp_file_others $temp_file_untracked || fatal 'Could not delete temp file'
+}
+
rename() {
git_dir_exists
[ -d "$GIT_DIR_NEW" ] && fatal "'$GIT_DIR_NEW' exists" 54
elif [ x"$VCSH_COMMAND" = x'commit' ] ||
[ x"$VCSH_COMMAND" = x'list' ] ||
[ x"$VCSH_COMMAND" = x'list-tracked' ] ||
+ [ x"$VCSH_COMMAND" = x'list-untracked' ] ||
[ x"$VCSH_COMMAND" = x'pull' ] ||
[ x"$VCSH_COMMAND" = x'push' ]; then
: