Commit 6ee08d2cd0671d42e4148988863a6a40fbe721cb

Carlos Martín Nieto 2016-05-19T15:22:02

tree: use the basename for the entry removal When we want to remove the file, use the basename as the name of the entry to remove, instead of the full one, which includes the directories we've inserted into the stack.

1
2
3
4
5
6
7
8
9
10
11
12
13
diff --git a/src/tree.c b/src/tree.c
index af293d2..c5a13ea 100644
--- a/src/tree.c
+++ b/src/tree.c
@@ -1230,7 +1230,7 @@ int git_tree_create_updated(git_oid *out, git_repository *repo, git_tree *baseli
 				break;
 			}
 			case GIT_TREE_UPDATE_REMOVE:
-				error = git_treebuilder_remove(git_array_last(stack)->bld, update->path);
+				error = git_treebuilder_remove(git_array_last(stack)->bld, git_path_basename(update->path));
 				break;
 			default:
 				giterr_set(GITERR_TREE, "unkown action for update");