2013-01-18 6 views

Répondre

3

La mise en œuvre de la méthode #clone en ruby-git nous dit qu'il est actuellement impossible:

https://github.com/schacon/ruby-git/blob/master/lib/git/lib.rb#L44

def clone(repository, name, opts = {}) 
    @path = opts[:path] || '.' 
    clone_dir = opts[:path] ? File.join(@path, name) : name 

    arr_opts = [] 
    arr_opts << "--bare" if opts[:bare] 
    arr_opts << "-o" << opts[:remote] if opts[:remote] 
    arr_opts << "--depth" << opts[:depth].to_i if opts[:depth] && opts[:depth].to_i > 0 

    arr_opts << '--' 
    arr_opts << repository 
    arr_opts << clone_dir 

    command('clone', arr_opts) 

    opts[:bare] ? {:repository => clone_dir} : {:working_directory => clone_dir} 
end 

Tu ferais mieux de rubis fourchette -git et insère quelques lignes là-bas. Cela résoudra votre problème et le monde dira "merci".

+2

Merci, j'ai suivi vos recommandations et ajouté à la bibliothèque existante à mon pull-demande (https://github.com/schacon/ruby-git/pull/58) –

1

Parfois, le chemin le plus simple consiste à laisser l'application le faire elle-même. Pourquoi ne pas utiliser?

`git clone git://github.com/user/repo.git /tmp/repo --recursive` 
+2

Ce fut la première pensée, mais Puisque mon programme est rempli avec le code correct est (à mon avis), j'ai décidé de continuer à aller dans le bon sens et de ne pas utiliser exec/system. –

+3

Suivez le "bon chemin"? Comment est-ce mal d'utiliser les outils mis à votre disposition, surtout lorsque vous ne voulez pas que quelque chose soit fait de la bonne façon? Le code utilise régulièrement 'exec' et' system'; Si ceux-ci étaient «mauvais», ils ne seraient pas disponibles. –

Questions connexes