Subject: Re: git p4: bug - branch detection broken on empty branches

From: Pete Wyckoff <[email-masked]>
Date: Sat, 26 Apr 2014 08:40:00 -0400

[email-masked] wrote on Tue, 22 Apr 2014 10:20 +0100:
> As part of my work to help get git-p4 close to bug-free before Git
> 2.0, I'm posting all bugs and patches to this mailing list. Please
> direct me elsewhere if this is incorrect.
> 
> When trying to clone a particular directory from a depot, that
> contains one or more branches that contain no commits for that
> directory, branch detection is broken and results in a failed clone.
> 
> fatal: ambiguous argument
> 'refs/remotes/p4/silly_project_branch/trunk': unknown revision or path
> not in the working tree.
[..]
>   File "/home/dreid/bin/git-p4", line 2678, in importChanges
>     blob = self.searchParent(parent, branch, tempBranch)
>   File "/home/dreid/bin/git-p4", line 2600, in searchParent
>     for blob in read_pipe_lines(["git", "rev-list", "--reverse",
>   File "/home/dreid/bin/git-p4", line 155, in read_pipe_lines
>     die('Command failed: %s' % str(c))
>   File "/home/dreid/bin/git-p4", line 106, in die
>     raise Exception(msg)
> Exception: Command failed: ['git', 'rev-list', '--reverse',
> '--no-merges', 'refs/remotes/p4/silly_project_branch/trunk']
> 
> Original command:
> $ git-p4 clone //insane_depot/projects/Exchange/CompanyName/silly_project_branch@all
> silly-project --detect-branches -v

Yes, this is a good bug.  You could do "git rev-parse -q --verify"
on parent before trying to read the rev-list.

But then what should happen?  I suspect git-p4 will just create
that ref when it commits the change it is considering.

		-- Pete