Thread (6 messages) flat view 6 messages, 2 authors, 2016-06-15

Re: [PATCH] git-p4: support exclusively locked files

From: Danny Thomas <hidden>
Date: 2016-06-15 22:56:25

Interesting. 'Implementing sitewide pessimistic locking with p4 typemap',
http://www.perforce.com/perforce/doc.current/manuals/p4sag/03_superuser.htm
l seems to suggest this is all that's needed. I believe we're using the
default configuration, the exclusive lock on all files behaviour was
researching the exclusive locking problem,
http://ericlathrop.com/2012/12/how-to-set-up-git-p4-in-windows/, so I
thought I'd mention it.

You might be onto something w/ fstat, it doesn't include the exclusive
indicator:

... type binary+l

Latest P4 client, and fairly recent server build:

P4/DARWIN90X86_64/2012.2/536738 (2012/10/16)
P4D/LINUX26X86_64/2012.2/538478 (2012/10/16)


Danny

On 17/03/2013 20:04, "Pete Wyckoff" [off-list ref] wrote:

Danny.Thomas@blackboard.com wrote on Wed, 13 Mar 2013 13:51 -0400:
quoted
By default, newly added binary files are exclusively locked by Perforce:

'add default change (binary+l) *exclusive*'

This results in a 'Could not determine file type' error as the regex
expects
the line to end after the file type matching group. Some repositories
are
also configured to always require exclusive locks, so may be a problem
for
all revisions in some cases.
Can you explain how to configure p4d to default everything to
binary+l?  Also, what version are you using ("p4 info")?  I'm
trying to write a test case for this.

I did find a way to play with typemap to get +l, as:

   ( p4 typemap -o ; printf "\tbinary+l\t//.../bash*" ) | p4 typemap -i

With this, the 2011.1 here just says:
0
   tic-git-test$ p4 opened bash
   //depot/bash#1 - add default change (binary+l)

I've not been able to make it say " *exclusive*" too.
quoted
     result = p4_read_pipe(["opened", wildcard_encode(file)])
-    match = re.match(".*\((.+)\)\r?$", result)
+    match = re.match(".*\((.+)\)(?:.+)?\r?$", result)
I think this whole function would be less brittle
using p4's "-G" output, like:

   d = p4Cmd(["fstat", "-T", "type", wildcard_encode(file)])
   # some error checking
   return d['type']

But I'm curious if your p4d includes " *exclusive*" in the
type there too, in which case we'll have to strip it.

Thanks for starting the patch on this.  It's good if we can keep
others from running into the same problem.

              -- Pete

This email and any attachments may contain confidential and proprietary information of Blackboard that is for the sole use of the intended recipient. If you are not the intended recipient, disclosure, copying, re-distribution or other use of any of this information is strictly prohibited. Please immediately notify the sender and delete this transmission if you received this email in error.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help