2009-12-02 3 views

답변

0

Git에 대한 모든 구현 (및 부분 구현, 부분 래퍼, 부품 인터페이스)은 C git, JGit (Java), Grit (Ruby), Git-Sharp/Git # (C#의 경우) 또는 Dulwich (Python의 경우)를 사용하여 서버에서 사용되는 구현과 클라이언트에서 사용되는 구현과는 독립적입니다. 동일한 저장소에 대해 서로 다른 구현 방식을 사용하는 경우에도 마찬가지입니다.

사실이 아니라면 Git (참조 구현체 인 C의 원래 버전) 구현의 버그입니다.

1

동일한 서버에 있어야합니다. 당신이 the documentation 보면 당신은 Repo 생성자는 로컬 파일 경로 받아들이는 것을 볼 수 있습니다 : (그릿 개발과에서 추출) 우리는 프론트 엔드 모두에서 모래를 사용 GitHub의에서

repo = Repo.new("/Users/tom/dev/grit") 
3

를 한 웹 응용 프로그램 git 리포지토리가있는 백엔드에서 실행됩니다. 우리는 그릿을 패치하여 로컬에서 코드를 실행하는 대신 BERT-RPC를 통해 Gret :: Git 함수 (모든 실제 파일 액세스가 포함 된 곳)를 호출하여 적절한 백엔드에 호출하도록합니다. Grit 초기화 프로그램에 전달 된 파일 경로는이 경우 백엔드 서버의 경로 입니다. 따라서 원시 저장소 액세스는 백 엔드 서버에서 Grit을 실행하는 루비 핸들러에 의해 수행되고 나머지 Grit 네임 스페이스 (Grit :: Commit, Grit :: Diff 등)는 프론트 엔드에서 실행됩니다. 실제로는 꽤 멋지다. GitHub에서이 시스템을 통해 한 달에 300 밀 RPC 호출을 실행합니다.

BERT-RPC에 대한 자세한 내용은 RubyConf에서 Toms talk : http://rubyconf2009.confreaks.com/19-nov-2009-10-25-bert-and-ernie-scaling-your-ruby-site-with-erlang-tom-preston-werner.html

을 확인하십시오.
관련 문제