Commit Diff


commit - fd92308e186609c642930244576e185b89373880
commit + 6e8d14a311bea47a636572f210decdc00d6fb1ea
blob - 85ab509f9b7336955ba572c66733227725aefb6d
blob + 2665f6ff9da45c201ba781995e3823447cb6dfc9
--- lib/fileindex.c
+++ lib/fileindex.c
@@ -572,21 +572,13 @@ cmp_entries(struct got_fileindex_entry *ie, const char
     struct got_tree_entry *te)
 {
 	size_t parent_len = strlen(parent_path);
-	int cmp;
+	int cmp = strncmp(ie->path, parent_path, parent_len);
 
-	if (in_same_subdir(ie, parent_path)) {
+	if (cmp == 0 || 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;
-			while (ie_name[0] == '/')
-				ie_name++;
-			cmp = strcmp(ie_name, te->name);
-		}
 	}
 	return cmp;