* [PATCH] prevent checkout from creating branches that start with a dash
@ 2008-07-02 15:01 Bart Trojanowski
2008-07-02 15:22 ` Brian Gernhardt
2008-07-02 15:38 ` Johannes Sixt
0 siblings, 2 replies; 4+ messages in thread
From: Bart Trojanowski @ 2008-07-02 15:01 UTC (permalink / raw)
To: Git Mailing List
It was previously possible to create a -f branch with git-checkout, which
could not be used or deleted.
$ git checkout -b -f master
Switched to a new branch "-f"
Signed-off-by: Bart Trojanowski <bart@jukie.net>
---
branch.c | 11 +++++++++++
branch.h | 5 +++++
builtin-checkout.c | 4 ++++
3 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/branch.c b/branch.c
index 56e9492..c25e362 100644
--- a/branch.c
+++ b/branch.c
@@ -170,3 +170,14 @@ void remove_branch_state(void)
unlink(git_path("MERGE_MSG"));
unlink(git_path("SQUASH_MSG"));
}
+
+int validate_branch_name(const char *branch_name)
+{
+ if (!*branch_name)
+ return -1;
+
+ if (*branch_name == '-')
+ return -1;
+
+ return 0;
+}
diff --git a/branch.h b/branch.h
index 9f0c2a2..13999ba 100644
--- a/branch.h
+++ b/branch.h
@@ -21,4 +21,9 @@ void create_branch(const char *head, const char *name, const char *start_name,
*/
void remove_branch_state(void);
+/*
+ * Check if the branch name given is well formed. Returns 0 on success.
+ */
+int validate_branch_name(const char *branch_name);
+
#endif
diff --git a/builtin-checkout.c b/builtin-checkout.c
index 93ea69b..f425646 100644
--- a/builtin-checkout.c
+++ b/builtin-checkout.c
@@ -553,6 +553,10 @@ int cmd_checkout(int argc, const char **argv, const char *prefix)
if (opts.force && opts.merge)
die("git checkout: -f and -m are incompatible");
+ if (opts.new_branch && validate_branch_name(opts.new_branch))
+ die("git checkout: '%s' does not look like a valid branch name",
+ opts.new_branch);
+
if (argc) {
const char **pathspec = get_pathspec(prefix, argv);
--
1.5.6.1.109.ga974cd.dirty
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] prevent checkout from creating branches that start with a dash
2008-07-02 15:01 [PATCH] prevent checkout from creating branches that start with a dash Bart Trojanowski
@ 2008-07-02 15:22 ` Brian Gernhardt
2008-07-02 15:38 ` Johannes Sixt
1 sibling, 0 replies; 4+ messages in thread
From: Brian Gernhardt @ 2008-07-02 15:22 UTC (permalink / raw)
To: Bart Trojanowski; +Cc: Git Mailing List
On Jul 2, 2008, at 11:01 AM, Bart Trojanowski wrote:
> + if (opts.new_branch && validate_branch_name(opts.new_branch))
> + die("git checkout: '%s' does not look like a valid branch name",
> + opts.new_branch);
> +
> if (argc) {
> const char **pathspec = get_pathspec(prefix, argv);
Perhaps this should have !opts.force in that if? That way if someone
needs something like "-mm" branch, they can have it.
And that way, if people really want to shoot themselves in the foot
with a -f branch, they can? "git branch -f -b -f"?
~~ Brian
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] prevent checkout from creating branches that start with a dash
2008-07-02 15:01 [PATCH] prevent checkout from creating branches that start with a dash Bart Trojanowski
2008-07-02 15:22 ` Brian Gernhardt
@ 2008-07-02 15:38 ` Johannes Sixt
2008-07-02 16:34 ` Bart Trojanowski
1 sibling, 1 reply; 4+ messages in thread
From: Johannes Sixt @ 2008-07-02 15:38 UTC (permalink / raw)
To: Bart Trojanowski; +Cc: Git Mailing List
Bart Trojanowski schrieb:
> It was previously possible to create a -f branch with git-checkout, which
> could not be used or deleted.
>
> $ git checkout -b -f master
> Switched to a new branch "-f"
"-f" *is* a valid branch name and can be used and deleted:
$ git checkout -b -f next
Switched to a new branch "-f"
$ git checkout next
Switched to branch "next"
Your branch is ahead of the tracked remote branch 'origin/next' by 2 commits.
$ git checkout -- -f
Switched to branch "-f"
$ git checkout next
Switched to branch "next"
Your branch is ahead of the tracked remote branch 'origin/next' by 2 commits.
$ git branch -d -- -f
Deleted branch -f.
-- Hannes
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] prevent checkout from creating branches that start with a dash
2008-07-02 15:38 ` Johannes Sixt
@ 2008-07-02 16:34 ` Bart Trojanowski
0 siblings, 0 replies; 4+ messages in thread
From: Bart Trojanowski @ 2008-07-02 16:34 UTC (permalink / raw)
To: Johannes Sixt; +Cc: Git Mailing List
* Johannes Sixt <j.sixt@viscovery.net> [080702 12:00]:
> Bart Trojanowski schrieb:
> > It was previously possible to create a -f branch with git-checkout, which
> > could not be used or deleted.
> >
> > $ git checkout -b -f master
> > Switched to a new branch "-f"
>
> "-f" *is* a valid branch name and can be used and deleted:
Thanks, that I didn't know.
-Bart
--
WebSig: http://www.jukie.net/~bart/sig/
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2008-07-02 16:35 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-02 15:01 [PATCH] prevent checkout from creating branches that start with a dash Bart Trojanowski
2008-07-02 15:22 ` Brian Gernhardt
2008-07-02 15:38 ` Johannes Sixt
2008-07-02 16:34 ` Bart Trojanowski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).