From: Josef Wolf Date: Fri, 14 Feb 2014 16:52:48 GMT Subject: Re: error: src refspec refs/heads/master matches more than one. Message-ID: <20140214165247.GC17817@raven.inka.de> In-Reply-To: <87ppmp3dxp.fsf@fencepost.gnu.org> On Fri, Feb 14, 2014 at 04:35:14PM +0100, David Kastrup wrote: > Josef Wolf writes: > > The only command in this script that uses "heads" is > > > > git symbolic-ref HEAD "refs/heads/$new_branch" > > > You probably should check how $new_branch comes about. This is the line of code where $new_branch is comes to live: my (undef, $new_branch, @new_path) = split ("/", $new_item); So it is impossible that it might contain any slashes. In any other situation, this script cares only about branches which start with the string "scan-file-XXXX": sub local_branches { grep {m+^scan-file-+} &all_branches; } sub remote_branches { grep {m+^remotes/origin/scan-file-+} &all_branches; } This is hard-coded, so I can't see any way for the user to inject "refs/heads" > Also, once a > directory refs/heads/refs/heads exists, "refs/heads/$new_branch" may > possibly be resolved as a branch with the name refs/heads/$new_branch. Can you elobarte on this? I don't get what you are trying to say. As I already said, this happens on opensuse with git-1.8.1.4. I have not yet seen this problem on ubuntu with git-1.7.9.5. -- Josef Wolf jw@raven.inka.de