Commit Diff


commit - f06111e55cce9dd33ce3867b1a2fab4b5889a9b7
commit + fd92308e186609c642930244576e185b89373880
blob - 477633fbac262784ef22d42d77c5ba975829a4fc
blob + 85ab509f9b7336955ba572c66733227725aefb6d
--- lib/fileindex.c
+++ lib/fileindex.c
@@ -574,7 +574,12 @@ cmp_entries(struct got_fileindex_entry *ie, const char
 	size_t parent_len = strlen(parent_path);
 	int cmp;
 
-	if (!in_same_subdir(ie, parent_path)) {
+	if (in_same_subdir(ie, parent_path)) {
+		char *ie_name = ie->path + parent_len;
+		while (ie_name[0] == '/')
+			ie_name++;
+		cmp = strcmp(ie_name, te->name);
+	} else {
 		cmp = strncmp(ie->path, parent_path, parent_len);
 		if (cmp == 0) {
 			char *ie_name = ie->path + parent_len;
@@ -582,11 +587,6 @@ cmp_entries(struct got_fileindex_entry *ie, const char
 				ie_name++;
 			cmp = strcmp(ie_name, te->name);
 		}
-	} else {
-		char *ie_name = ie->path + parent_len;
-		while (ie_name[0] == '/')
-			ie_name++;
-		cmp = strcmp(ie_name, te->name);
 	}
 	return cmp;