New submission from Geoff Alexander <[email protected]>:
I've found that subprocess.check_output() fails on Windows with OSError:
[WinError 87] when the current directory's name is too long:
```
Traceback (most recent call last):
File "migration.py", line 169, in <module>
migrate()
File "migration.py", line 80, in migrate
rtc.acceptchangesintoworkspace(rtc.getchangeentriestoaccept(changeentries,
history))
File
"c:\Users\GeoffAlexander\Documents\Nirvana\RTC2Git\git-repositories\rtc2git-migration-tool\rtcFunctions.py",
line 310, in acceptchangesintoworkspace
Commiter.addandcommit(changeEntry)
File
"c:\Users\GeoffAlexander\Documents\Nirvana\RTC2Git\git-repositories\rtc2git-migration-tool\gitFunctions.py",
line 97, in addandcommit
Commiter.handle_captitalization_filename_changes()
File
"c:\Users\GeoffAlexander\Documents\Nirvana\RTC2Git\git-repositories\rtc2git-migration-tool\gitFunctions.py",
line 130, in handle_captitalization_filename_changes
files = shell.getoutput("git ls-files")
File
"c:\Users\GeoffAlexander\Documents\Nirvana\RTC2Git\git-repositories\rtc2git-migration-tool\shell.py",
line 33, in getoutput
outputasbytestring = check_output(command, shell=True)
File
"C:\Users\GeoffAlexander\AppData\Local\Programs\Python\Python36\lib\subprocess.py",
line 356, in check_output
**kwargs).stdout
File
"C:\Users\GeoffAlexander\AppData\Local\Programs\Python\Python36\lib\subprocess.py",
line 423, in run
with Popen(*popenargs, **kwargs) as process:
File
"C:\Users\GeoffAlexander\AppData\Local\Programs\Python\Python36\lib\subprocess.py",
line 729, in __init__
restore_signals, start_new_session)
File
"C:\Users\GeoffAlexander\AppData\Local\Programs\Python\Python36\lib\subprocess.py",
line 1017, in _execute_child
startupinfo)
OSError: [WinError 87] The parameter is incorrect
```
Python's subprocess module should handle long directory and files names on
Windows where supported. For older versions of Windows that don't support long
directory and file names, an exception with a more informative error message
than "OSError: [WinError 87]" should be thrown.
----------
components: Windows
messages: 337307
nosy: Geoff.Alexander, paul.moore, steve.dower, tim.golden, zach.ware
priority: normal
severity: normal
status: open
title: subprocess.check_output() fails with OSError: [WinError 87] when current
directory name is too long
versions: Python 3.7
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue36213>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com