Hi, I've been puzzling most of today to do something that must be simple. I've got a big repo which contains a project with several nicely related subprojects in directories. Only now, we want to share some of these subprojects with another project. I.e. they must start to live there own life. Of course, I would like to keep the history. So, I did (git --version: 1.5.6.GIT): % git clone /home/git/pl.git % cd pl % git filter-branch --subdirectory-filter packages/chr HEAD This indeed creates a nice directory holding only the contents of packages/chr. But, starting qgit I see that all commits, also those that had absolutely nothing to do with this dir are still there. Also, all tags are still there with exactly the same SHA1 as the original. I'd expect the tags to be rewritten such that their SHA1 refers to the state of this single directory and its contents!? Of course, these tags give me access to everything, so the repository doesn't shrink much too. I must be missing something important ... I found similar complaints, but few decent answers and the few answer I did find appeared outdated. The one at http://use.perl.org/~rjbs/journal/34411 comes closest, although the reset --hard is no longer needed and the copying and gc-ing doesn't help much anymore. Should I write a tree-filter that removes all but the directory I want to keep? I.e. something like this? Feels like and overkill and I fear I'll have a lot of empty commits left. 'mv packages/chr .. && rm -r * && mv ../chr/* . && rmdir ../chr' I'll be grateful for a clue! Cheers --- Jan -- 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