Greg Price <price@xxxxxxxxxxx> writes: > diff --git a/pack-refs.c b/pack-refs.c > index 7f43f8a..33d7358 100644 > --- a/pack-refs.c > +++ b/pack-refs.c > @@ -63,11 +63,19 @@ static int handle_one_ref(const char *path, const unsigned char *sha1, > /* make sure nobody touched the ref, and unlink */ > static void prune_ref(struct ref_to_prune *r) > { > + char *p, *q; > struct ref_lock *lock = lock_ref_sha1(r->name + 5, r->sha1); > > if (lock) { > unlink_or_warn(git_path("%s", r->name)); > unlock_ref(lock); > + > + /* remove the directory if empty */ > + for (q = p = r->name; *p; p++) > + if (*p == '/') > + q = p; > + *q = '\0'; > + rmdir(r->name); > } > } Will this keep refs/heads/p/q that is empty after packing p/q/r/s branch that happens to be the only branch whose name begins with p/? I do not want a careless loop that will remove refs/heads after packing "master" that happens to be the only local branch, but still... -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html