Saat aku berlari
proc = subprocess.Popen(['git', 'add', '-A'], stdout=subprocess.PIPE)
Saya mendapatkan kesalahan ini
fatal: not a git repository (or any parent up to mount point /media)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
Tapi berlari
os.system('git add -A')
Melakukan pekerjaannya dengan sempurna.
Jika menurut Anda folder tersebut tidak memiliki file .git
,
proc = subprocess.Popen(['ls', '-a'], stdout=subprocess.PIPE)
menunjukkan bahwa itu sudah ada di cwd.
Mengapa Popen
tidak dapat menampilkan file, juga tidak dapat melakukan komit sementara os.system
melakukan keduanya?
Pembaruan:
Ini MWE saya yang gagal
import subprocess
import os
cwd = os.getcwd()
proj_path = os.path.join(cwd, 'newproj')
os.makedirs(proj_path)
os.chdir(proj_path)
proc = subprocess.Popen(['git', 'init'], stdout=subprocess.PIPE)
proc = subprocess.Popen(['ls', '-a'], stdout=subprocess.PIPE)
print(proc.stdout.read().decode('ascii'))
proc = subprocess.Popen(['git', 'add', '-A'], stdout=subprocess.PIPE)
out, err = proc.communicate()
if err:
print('Error:\n', err.decode())
print(out.decode('ascii'))
keluaran
.
..
.git
fatal: not a git repository (or any parent up to mount point /media)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
ls -a
bisa berfungsi di cwd? - person mercury   schedule 11.02.2021git filter-branch
di bawah direktori jaringan. - person mercury   schedule 11.02.2021