"git p4" fails when perforce login not needed
diff mbox series

Message ID alpine.LFD.2.21.1901062337420.5908@fractal.localdomain
State New
Headers show
Series
  • "git p4" fails when perforce login not needed
Related show

Commit Message

Peter Osterlund Jan. 6, 2019, 10:48 p.m. UTC
Hi,

When I use "git p4 sync" to update a git repository from a perforce depot, 
the operation fails with error message:

     failure accessing depot: unknown error code info

When I run "p4 login -s" from a shell it reports:

     'login' not necessary, no password set for this user.

The following patch fixes the problem for me:


Not sure if this helps, but running "p4 -G login -s | hexdump" gives:

00000000  7b 73 04 00 00 00 63 6f  64 65 73 04 00 00 00 69  |{s....codes....i|
00000010  6e 66 6f 73 05 00 00 00  6c 65 76 65 6c 69 00 00  |nfos....leveli..|
00000020  00 00 73 04 00 00 00 64  61 74 61 73 35 00 00 00  |..s....datas5...|
00000030  27 6c 6f 67 69 6e 27 20  6e 6f 74 20 6e 65 63 65  |'login' not nece|
00000040  73 73 61 72 79 2c 20 6e  6f 20 70 61 73 73 77 6f  |ssary, no passwo|
00000050  72 64 20 73 65 74 20 66  6f 72 20 74 68 69 73 20  |rd set for this |
00000060  75 73 65 72 2e 30                                 |user.0|
00000066

Best regards,

Comments

Luke Diamand Jan. 7, 2019, 10:10 a.m. UTC | #1
On Sun, 6 Jan 2019 at 22:48, Peter Osterlund <peterosterlund2@gmail.com> wrote:
>
> Hi,
>
> When I use "git p4 sync" to update a git repository from a perforce depot,
> the operation fails with error message:
>
>      failure accessing depot: unknown error code info
>
> When I run "p4 login -s" from a shell it reports:
>
>      'login' not necessary, no password set for this user.
>
> The following patch fixes the problem for me:

That's my fault!

Your fix looks good, thanks!

Luke


>
> --- /usr/libexec/git-core/git-p4~        2018-12-15 14:51:07.000000000 +0100
> +++ /usr/libexec/git-core/git-p4      2019-01-06 23:23:06.934176387 +0100
> @@ -332,6 +332,8 @@
>               die_bad_access("p4 error: {0}".format(data))
>           else:
>               die_bad_access("unknown error")
> +    elif code == "info":
> +        return
>       else:
>           die_bad_access("unknown error code {0}".format(code))
>
>
> Not sure if this helps, but running "p4 -G login -s | hexdump" gives:
>
> 00000000  7b 73 04 00 00 00 63 6f  64 65 73 04 00 00 00 69  |{s....codes....i|
> 00000010  6e 66 6f 73 05 00 00 00  6c 65 76 65 6c 69 00 00  |nfos....leveli..|
> 00000020  00 00 73 04 00 00 00 64  61 74 61 73 35 00 00 00  |..s....datas5...|
> 00000030  27 6c 6f 67 69 6e 27 20  6e 6f 74 20 6e 65 63 65  |'login' not nece|
> 00000040  73 73 61 72 79 2c 20 6e  6f 20 70 61 73 73 77 6f  |ssary, no passwo|
> 00000050  72 64 20 73 65 74 20 66  6f 72 20 74 68 69 73 20  |rd set for this |
> 00000060  75 73 65 72 2e 30                                 |user.0|
> 00000066
>
> Best regards,
>
> --
> Peter Osterlund - peterosterlund2@gmail.com
> http://hem.bredband.net/petero2b
Mazo, Andrey Jan. 7, 2019, 11:56 p.m. UTC | #2
On Sun, 6 Jan 2019 at 22:48, Peter Osterlund <peterosterlund2@gmail.com> wrote:
> Hi,
> 
> When I use "git p4 sync" to update a git repository from a perforce depot, 
> the operation fails with error message:
> 
>      failure accessing depot: unknown error code info
>

I guess, this got broken in
commit 0ef67acdd78 ("git-p4: better error reporting when p4 fails", 2018-06-08)

> When I run "p4 login -s" from a shell it reports:
> 
>      'login' not necessary, no password set for this user.

In my case, I was getting (this is pretty printed `p4 -G` output):
    {b'code': b'info', b'level': 0, b'data': b'User <username> was authenticated by password not ticket.'}

I guess, that's because I have P4PASSWD variable exported and/or git-p4.password set.


> The following patch fixes the problem for me:
> 
> --- /usr/libexec/git-core/git-p4~        2018-12-15 14:51:07.000000000 +0100
> +++ /usr/libexec/git-core/git-p4      2019-01-06 23:23:06.934176387 +0100
> @@ -332,6 +332,8 @@
>               die_bad_access("p4 error: {0}".format(data))
>           else:
>               die_bad_access("unknown error")
> +    elif code == "info":
> +        return
>       else:
>           die_bad_access("unknown error code {0}".format(code))

This fixes the problem for me too.

> 
> Not sure if this helps, but running "p4 -G login -s | hexdump" gives:
> 
> 00000000  7b 73 04 00 00 00 63 6f  64 65 73 04 00 00 00 69  |{s....codes....i|
> 00000010  6e 66 6f 73 05 00 00 00  6c 65 76 65 6c 69 00 00  |nfos....leveli..|
> 00000020  00 00 73 04 00 00 00 64  61 74 61 73 35 00 00 00  |..s....datas5...|
> 00000030  27 6c 6f 67 69 6e 27 20  6e 6f 74 20 6e 65 63 65  |'login' not nece|
> 00000040  73 73 61 72 79 2c 20 6e  6f 20 70 61 73 73 77 6f  |ssary, no passwo|
> 00000050  72 64 20 73 65 74 20 66  6f 72 20 74 68 69 73 20  |rd set for this |
> 00000060  75 73 65 72 2e 30                                 |user.0|
> 00000066
> 
> Best regards,

Patch
diff mbox series

--- /usr/libexec/git-core/git-p4~        2018-12-15 14:51:07.000000000 +0100
+++ /usr/libexec/git-core/git-p4      2019-01-06 23:23:06.934176387 +0100
@@ -332,6 +332,8 @@ 
              die_bad_access("p4 error: {0}".format(data))
          else:
              die_bad_access("unknown error")
+    elif code == "info":
+        return
      else:
          die_bad_access("unknown error code {0}".format(code))