Thread (8 messages) flat view 8 messages, 2 authors, 2016-06-15

Re: [PATCH] git-filter-branch could be confused by similar names

From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:44:01

Hi,

On Sun, 30 Dec 2007, Dmitry Potapov wrote:
On Sat, Dec 29, 2007 at 11:36:51PM +0100, Johannes Schindelin wrote:
quoted
On Tue, 25 Dec 2007, Dmitry Potapov wrote:
quoted
'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 <redacted>
---
 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.
Are you sure? I had created a tag and a branch with the same name, and
then tried git filter-branch on it, and it did error out:
===
warning: refname 'test1' is ambiguous.
Which ref do you want to rewrite?
===
Okay, bad example.  But try "heads/master".  Or "origin" in a repository 
which has "refs/remotes/origin/HEAD".

Ciao,
Dscho
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help