Re: [RFH] filter-branch: ancestor detection weirdness
- From
Thomas Rast <trast@student.ethz.ch>
- Date
- Aug 9, 2008, 10:00 UTC
- Message-ID
- <200808091200.21634.trast@student.ethz.ch>
- In-Reply-To
- <alpine.DEB.1.00.0808090212060.24820@pacific.mpi-cbg.de.mpi-cbg.de>
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 <Johannes.Schindelin@gmx.de> Date: Fri Jun 8 01:30:35 2007 +0100
Teach filter-branch about subdirectory filtering
With git-filter-branch --subdirectory-filter <subdirectory> 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 <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>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