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() {