Re: [PATCH] git-filter-branch could be confused by similar names
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Dec 29, 2007, 22:36 UTC
- Message-ID
- <Pine.LNX.4.64.0712292334080.14355@wbgn129.biozentrum.uni-wuerzburg.de>
- In-Reply-To
- <1198593316-7712-1-git-send-email-dpotapov@gmail.com>
Hi,
On Tue, 25 Dec 2007, Dmitry Potapov wrote:
Show 20 quoted lines
> 'git-filter-branch branch' could fail producing the error: > "Which ref do you want to rewrite?" if existed another branch > or tag, which name was 'branch-something' or 'something/branch'. > > Signed-off-by: Dmitry Potapov <dpotapov@gmail.com> > --- > git-filter-branch.sh | 2 +- > t/t7003-filter-branch.sh | 10 ++++++++++ > 2 files changed, 11 insertions(+), 1 deletions(-) > > diff --git a/git-filter-branch.sh b/git-filter-branch.sh > index dbab1a9..b89a720 100755 > --- a/git-filter-branch.sh > +++ b/git-filter-branch.sh > @@ -219,7 +219,7 @@ do > ;; > *) > ref="$(git for-each-ref --format='%(refname)' | > - grep /"$ref")" > + grep '^refs/[^/]\+/'"$ref"'$')"
Hmm. I wonder if this is a proper solution. It still does not error out when you have a tag and a branch of the same name.
I kinda hoped that by 1.5.4, rewrite-commits would be finished, but it seems that nothing happened in that area after 1.5.3-rcX.
It would be so much easier to have checks like this -- returning the real refname for short but unique short refnames -- in C.
Ciao, Dscho