Re: [PATCH] git-p4: import the ctypes module

2015-10-21 Thread Lars Schneider
Hi Etienne,

thanks for reporting this! Junio is right, I messed that up on my Windows 
testing box! :-( Sorry! 
If you have any questions around submitting patches I am happy to help as I 
just recently went through the learning process myself!

@Dennis: Thanks for the quick patch!

Thanks,
Lars

On 21 Oct 2015, at 10:23, Etienne Girard  wrote:

> Hello,
> 
> I couldn't work further on this yesterday (but I read
> Documentation/SubmittingPatches, which is a good start I guess). The
> diff proposed by Dennis works on my machine, I'll try to figure out
> why the original script worked with 2.7.10.
> 
> Thanks
> 
> 2015-10-21 1:00 GMT+02:00 Luke Diamand :
>> On 20/10/15 20:36, Junio C Hamano wrote:
>>> 
>>> Dennis Kaarsemaker  writes:
>>> 
> I do not follow Python development, but does the above mean that
> with recent 2.x you can say ctypes without first saying "import
> ctypes"?  It feels somewhat non-pythonesque that identifiers like
> this is given to you without you asking with an explicit 'import',
> so I am puzzled.
 
 
 No, you cannot do that. The reason others may not have noticed this bug
 is that
 in git-p4.py, ctypes is only used on windows.
 
  111 if platform.system() == 'Windows':
  112 free_bytes = ctypes.c_ulonglong(0)
  113
 ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(os.getcwd()),
 None, None, ctypes.pointer(free_bytes))
 
 The fact that it works for the OP with 2.7.10 is puzzling (assuming that
 it's
 on the same system).
>>> 
>>> 
>>> Exactly.  That is where my "I am puzzled" comes from.
>>> 
>>> The patch looks obviously the right thing to do.  Luke?  Lars?
>> 
>> 
>> It looks sensible to me, and works fine on Linux, thanks. ack.
>> 
>> I can't test on Windows today but I can't see why it wouldn't work.
>> 
>> Luke
>> 
>> 

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] git-p4: import the ctypes module

2015-10-21 Thread Etienne Girard
I was wrong, the script doesn't work on my machine if ctypes is not
imported regardless of python version. I guess I was confused by using
a version of git-p4 before ctypes was introduced, the failing version
and the patched version, as well as several python versions.

Sorry for this misleading claim, and thanks for the quick fix.

2015-10-21 10:23 GMT+02:00 Etienne Girard :
> Hello,
>
> I couldn't work further on this yesterday (but I read
> Documentation/SubmittingPatches, which is a good start I guess). The
> diff proposed by Dennis works on my machine, I'll try to figure out
> why the original script worked with 2.7.10.
>
> Thanks
>
> 2015-10-21 1:00 GMT+02:00 Luke Diamand :
>> On 20/10/15 20:36, Junio C Hamano wrote:
>>>
>>> Dennis Kaarsemaker  writes:
>>>
> I do not follow Python development, but does the above mean that
> with recent 2.x you can say ctypes without first saying "import
> ctypes"?  It feels somewhat non-pythonesque that identifiers like
> this is given to you without you asking with an explicit 'import',
> so I am puzzled.


 No, you cannot do that. The reason others may not have noticed this bug
 is that
 in git-p4.py, ctypes is only used on windows.

   111 if platform.system() == 'Windows':
   112 free_bytes = ctypes.c_ulonglong(0)
   113
 ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(os.getcwd()),
 None, None, ctypes.pointer(free_bytes))

 The fact that it works for the OP with 2.7.10 is puzzling (assuming that
 it's
 on the same system).
>>>
>>>
>>> Exactly.  That is where my "I am puzzled" comes from.
>>>
>>> The patch looks obviously the right thing to do.  Luke?  Lars?
>>
>>
>> It looks sensible to me, and works fine on Linux, thanks. ack.
>>
>> I can't test on Windows today but I can't see why it wouldn't work.
>>
>> Luke
>>
>>
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] git-p4: import the ctypes module

2015-10-21 Thread Etienne Girard
Hello,

I couldn't work further on this yesterday (but I read
Documentation/SubmittingPatches, which is a good start I guess). The
diff proposed by Dennis works on my machine, I'll try to figure out
why the original script worked with 2.7.10.

Thanks

2015-10-21 1:00 GMT+02:00 Luke Diamand :
> On 20/10/15 20:36, Junio C Hamano wrote:
>>
>> Dennis Kaarsemaker  writes:
>>
 I do not follow Python development, but does the above mean that
 with recent 2.x you can say ctypes without first saying "import
 ctypes"?  It feels somewhat non-pythonesque that identifiers like
 this is given to you without you asking with an explicit 'import',
 so I am puzzled.
>>>
>>>
>>> No, you cannot do that. The reason others may not have noticed this bug
>>> is that
>>> in git-p4.py, ctypes is only used on windows.
>>>
>>>   111 if platform.system() == 'Windows':
>>>   112 free_bytes = ctypes.c_ulonglong(0)
>>>   113
>>> ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(os.getcwd()),
>>> None, None, ctypes.pointer(free_bytes))
>>>
>>> The fact that it works for the OP with 2.7.10 is puzzling (assuming that
>>> it's
>>> on the same system).
>>
>>
>> Exactly.  That is where my "I am puzzled" comes from.
>>
>> The patch looks obviously the right thing to do.  Luke?  Lars?
>
>
> It looks sensible to me, and works fine on Linux, thanks. ack.
>
> I can't test on Windows today but I can't see why it wouldn't work.
>
> Luke
>
>
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] git-p4: import the ctypes module

2015-10-20 Thread Junio C Hamano
Dennis Kaarsemaker  writes:

>> I do not follow Python development, but does the above mean that
>> with recent 2.x you can say ctypes without first saying "import
>> ctypes"?  It feels somewhat non-pythonesque that identifiers like
>> this is given to you without you asking with an explicit 'import',
>> so I am puzzled.
>
> No, you cannot do that. The reason others may not have noticed this bug is 
> that
> in git-p4.py, ctypes is only used on windows.
>
>  111 if platform.system() == 'Windows':
>  112 free_bytes = ctypes.c_ulonglong(0)
>  113 
> ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(os.getcwd()), 
> None, None, ctypes.pointer(free_bytes))
>
> The fact that it works for the OP with 2.7.10 is puzzling (assuming that it's
> on the same system).

Exactly.  That is where my "I am puzzled" comes from.

The patch looks obviously the right thing to do.  Luke?  Lars?

>
> diff --git a/git-p4.py b/git-p4.py
> index daa60c6..212ef2b 100755
> --- a/git-p4.py
> +++ b/git-p4.py
> @@ -24,6 +24,7 @@ import shutil
>  import stat
>  import zipfile
>  import zlib
> +import ctypes
>  
>  try:
>  from subprocess import CalledProcessError
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] git-p4: import the ctypes module

2015-10-20 Thread Dennis Kaarsemaker
The ctypes module is used on windows to calculate free disk space, so it
must be imported.

Signed-off-by: Dennis Kaarsemaker 
---
 git-p4.py | 1 +
 1 file changed, 1 insertion(+)

On di, 2015-10-20 at 09:00 -0700, Junio C Hamano wrote:
> Luke Diamand  writes:
> 
> > On 20 October 2015 at 11:34, Etienne Girard <
> > etienne.g.gir...@gmail.com> wrote:
> > > Hello,
> > > 
> > > Git-p4 fail when I try to rebase with the error: "NameError:
> > > global
> > > name 'ctypes' is not defined". The error occurs when I use python
> > > 2.7.2 that is installed by default on my company's computers (it
> > > goes
> > > without saying that everything works fine with python 2.7.10).
> > > 
> > > I'm a beginner in python, but simply importing ctypes at the
> > > beginning
> > > of the script does the trick. I was wondering if submitting a
> > > patch
> > > for this issue is worth the trouble, when a satisfying solution
> > > is not
> > > using a 4 years old version of python.
> > 
> > If you're able to submit a patch that would be great!
> 
> Lars's  (git-p4: check free space during streaming,
> 2015-09-26) introduced two references to ctypes.* and there is no
> 'import ctypes' anywhere in the script.
> 
> I do not follow Python development, but does the above mean that
> with recent 2.x you can say ctypes without first saying "import
> ctypes"?  It feels somewhat non-pythonesque that identifiers like
> this is given to you without you asking with an explicit 'import',
> so I am puzzled.

No, you cannot do that. The reason others may not have noticed this bug is that
in git-p4.py, ctypes is only used on windows.

 111 if platform.system() == 'Windows':
 112 free_bytes = ctypes.c_ulonglong(0)
 113 
ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(os.getcwd()), None, 
None, ctypes.pointer(free_bytes))

The fact that it works for the OP with 2.7.10 is puzzling (assuming that it's
on the same system). But this patch should help.

diff --git a/git-p4.py b/git-p4.py
index daa60c6..212ef2b 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -24,6 +24,7 @@ import shutil
 import stat
 import zipfile
 import zlib
+import ctypes
 
 try:
 from subprocess import CalledProcessError
-- 
2.6.2-323-g60bd420
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] git-p4: import the ctypes module

2015-10-20 Thread Luke Diamand

On 20/10/15 20:36, Junio C Hamano wrote:

Dennis Kaarsemaker  writes:


I do not follow Python development, but does the above mean that
with recent 2.x you can say ctypes without first saying "import
ctypes"?  It feels somewhat non-pythonesque that identifiers like
this is given to you without you asking with an explicit 'import',
so I am puzzled.


No, you cannot do that. The reason others may not have noticed this bug is that
in git-p4.py, ctypes is only used on windows.

  111 if platform.system() == 'Windows':
  112 free_bytes = ctypes.c_ulonglong(0)
  113 
ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(os.getcwd()), None, 
None, ctypes.pointer(free_bytes))

The fact that it works for the OP with 2.7.10 is puzzling (assuming that it's
on the same system).


Exactly.  That is where my "I am puzzled" comes from.

The patch looks obviously the right thing to do.  Luke?  Lars?


It looks sensible to me, and works fine on Linux, thanks. ack.

I can't test on Windows today but I can't see why it wouldn't work.

Luke


--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html