2016-06-04 2 views
0

git repo를 초기화하고 git 데몬을 사용하여 서비스하려고합니다. GitPython의 모든 것.GitPython에서 git 데몬을 사용하여 저장소에 서브

초기화 환매 특약 작품 :

gd = Git().daemon(temp_dir, enable='receive-pack', listen='127.0.0.1', port=GIT_DAEMON_PORT,as_process=True, export_all=True) 
gd.proc.wait() 

하지만이 REPO에 액세스 할 수 없습니다 해요 :

temp_dir = '/tmp/something' 
repo = git.Repo.init(temp_dir) 

뿐만 아니라 데몬을 시작 난

git clone git://127.0.0.1:9418/something 
Cloning into 'something'... 
fatal: remote error: access denied or repository not exported: /something 

을 내가 repo를 맨손으로 초기화해야하는지, 아니면 git 데몬을 시작할 때 base_path를 지정해야하는지 확실하지 않은 경우 ... 모두 시도했습니다. . 아무도 포인터가 있습니까?

PS : 나는 여기에 유사한 접근을 본 적이 : https://github.com/gitpython-developers/GitPython/blob/master/git/test/lib/helper.py

+0

는 [내보낼]한다 저장소 (https://github.com/gitpython-developers/GitPython/search?utf8=% 것 같은데 E2 % 9C % 93 & q = daemon_export), 즉 파일 [git-daemon-export-ok] (https://git-scm.com/book/en/v2/Git-on-the-Server-Git-Daemon)가'git_dir '내에 생성된다. [_set_daemon_export()] (https://github.com/gitpython-developers/GitPython/blob/29724818764af6b4d30e845d9280947584078aed/git/repo/base.py#L531) 함수를보십시오 – user3159253

+0

그래서, 나는'repo.daemon_export = True라고 생각합니다. '당신의 문제를 해결할 것입니다 – user3159253

+0

고마워요! 그것을 알아 내었다. – martialblog

답변

0

는 user3159253에, 덕분에 그것을 알아 냈어. 이제

import git 
import tempfile 

tmpdir = tempfile.TemporaryDirectory(suffix='.git') 
repo = git.Repo.init(tmpdir.name, shared=True, bare=True) 
repo.daemon_export = True 

gd = git.Git().daemon(tmpdir.name, 
         enable='receive-pack', 
         listen='127.0.0.1', 
         port=9418, 
         as_process=True, 
         verbose=True 
) 
gd.proc.wait() 

당신은 사용하여 해당 REPO를 복제 할 수 있습니다 :

$git clone git://127.0.0.1:9418/tmp/<name-of-tmpdir>.git