次のようなことをする必要があります:
private static final class RepositoryResolverImplementation implements
RepositoryResolver<DaemonClient> {
@Override
public Repository open(DaemonClient client, String name)
throws RepositoryNotFoundException,
ServiceNotAuthorizedException, ServiceNotEnabledException,
ServiceMayNotContinueException {
InMemoryRepository repo = repositories.get(name);
if (repo == null) {
repo = new InMemoryRepository(
new DfsRepositoryDescription(name));
repositories.put(name, repo);
}
return repo;
}
}
private static Map<String, InMemoryRepository> repositories = new HashMap<String, InMemoryRepository>();
public static void main(String[] args) throws IOException {
Daemon server = new Daemon(new InetSocketAddress(9418));
boolean uploadsEnabled = true;
server.getService("git-receive-pack").setEnabled(uploadsEnabled);
server.setRepositoryResolver(new RepositoryResolverImplementation());
server.start();
}
その後、実行できるようにgit clone git://localhost/repo.git
なり、新しいメモリ内 'repo.git' リポジトリが作成されます。アップロードする場合は、uploadsEnabled が「true」に設定されていることを確認してください。デフォルトでは、「false」に設定されています。