[prev in list] [next in list] [prev in thread] [next in thread]
List: git
Subject: [PATCH] git-filter-branch could be confused by similar names
From: Dmitry Potapov <dpotapov () gmail ! com>
Date: 2007-12-30 18:51:07
Message-ID: 1199040667-31850-1-git-send-email-dpotapov () gmail ! com
[Download RAW message or body]
'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>
---
I have corrected my previous patch to allow "heads" or "tags"
in the name of a branch or tag, i.e. to write it like this:
git filter-branch heads/master
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..5de8b12 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"'$')"
esac
git check-ref-format "$ref" && echo "$ref"
diff --git a/t/t7003-filter-branch.sh b/t/t7003-filter-branch.sh
index 5f60b22..c3e5207 100755
--- a/t/t7003-filter-branch.sh
+++ b/t/t7003-filter-branch.sh
@@ -36,6 +36,16 @@ test_expect_success 'result is really identical' '
test $H = $(git rev-parse HEAD)
'
+test_expect_success 'rewrite branch with similar names' '
+ git branch my &&
+ git tag my/orig &&
+ git tag my-orig &&
+ git tag orig/my &&
+ git tag orig-my &&
+ git-filter-branch my &&
+ test $H = $(git rev-parse HEAD)
+'
+
test_expect_success 'rewrite, renaming a specific file' '
git-filter-branch -f --tree-filter "mv d doh || :" HEAD
'
--
1.5.3.5
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic