diff --git a/doc/vcsh.1.ronn b/doc/vcsh.1.ronn index 9827d4ff243ad10b625b53dac53bb4ffb9132b72..c91f6466e5b0706cdedeb1864aa6d3e5b9f5a517 100644 --- a/doc/vcsh.1.ronn +++ b/doc/vcsh.1.ronn @@ -17,9 +17,7 @@ vcsh(1) - Version Control System for $HOME - multiple Git repositories in $HOME `vcsh` list -`vcsh` list-tracked - -`vcsh` list-tracked-by <repo> +`vcsh` list-tracked [<rpoe>] `vcsh` list-untracked [<-r>] [<repo>] @@ -109,9 +107,14 @@ an interactive user. * list-tracked: List all files tracked by vcsh. + If you want to list files tracked by a specific repository, simply + append the repository's name last. + * list-tracked-by: List files tracked by a repository. + This is a legacy command; you should use `list-tracked <repo>` instead. + * list-untracked: List all files NOT tracked by vcsh. diff --git a/vcsh b/vcsh index c2b6ff474644e75f9a2f3ab3d2435d18d9a065fa..58ecb7f3ea7415fa4f94c0351985fe11af016161 100755 --- a/vcsh +++ b/vcsh @@ -108,9 +108,8 @@ help() { help Display this help text init <repo> Initialize a new repository list List all repositories - list-tracked List all files tracked by vcsh - list-tracked-by \\ - <repo> List files tracked by a repository + list-tracked \\ + [<repo>] List all files tracked all or one repositories list-untracked \\ [<-r>] [<repo>] List all files not tracked by all or one repositories pull Pull from all vcsh remotes @@ -247,16 +246,22 @@ get_files() { } list_tracked() { - for VCSH_REPO_NAME in $(list); do - get_files - done | sed "s,^,$(printf '%s\n' "$VCSH_BASE/" | \ - sed 's/[,\&]/\\&/g')," | sort -u + VCSH_REPO_NAME=$2; export VCSH_REPO_NAME + if [ -n "$VCSH_REPO_NAME" ]; then + get_files | list_tracked_helper + else + for VCSH_REPO_NAME in $(list); do + get_files + done | list_tracked_helper + fi +} + +list_tracked_helper() { + sed "s,^,$(printf '%s\n' "$VCSH_BASE/" | sed 's/[,\&]/\\&/g')," | sort -u } list_tracked_by() { - use - git ls-files | sed "s,^,$(printf '%s\n' "$VCSH_BASE/" | \ - sed 's/[,\&]/\\&/g')," | sort -u + list_tracked $2 } list_untracked() {