From: Thomas Rast Date: Sat, 09 Aug 2008 10:00:19 GMT Subject: Re: [RFH] filter-branch: ancestor detection weirdness Message-ID: <200808091200.21634.trast@student.ethz.ch> In-Reply-To: Johannes Schindelin wrote: > But hey, if other people agree with you, and this kind of thinking ends > up in Git proper, I can still resort to other DVCSes. BTW, the following is fairly ironic. (It was later rewritten in 813b473 to the current one-shot 'rev-list --parents' form.) commit 685ef546b62d063c72b401cd38b83a879301aac4 Author: Johannes Schindelin Date: Fri Jun 8 01:30:35 2007 +0100 Teach filter-branch about subdirectory filtering With git-filter-branch --subdirectory-filter you can get at the history, as seen by a certain subdirectory. The history of the rewritten branch will only contain commits that touched that subdirectory, and the subdirectory will be rewritten to be the new project root. Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano diff --git a/git-filter-branch.sh b/git-filter-branch.sh [...snip...] @@ -224,7 +228,13 @@ set_ident () { # list all parent's object names for a given commit get_parents () { - git-rev-list -1 --parents "$1" | sed "s/^[0-9a-f]*//" + case "$filter_subdir" in + "") + git-rev-list -1 --parents "$1" + ;; + *) + git-rev-list -1 --parents "$1" -- "$filter_subdir" + esac | sed "s/^[0-9a-f]*//" } tempdir=.git-rewrite [...snip...] -- Thomas Rast trast@student.ethz.ch