2

ruby-gitを使用してリモートリポジトリを再帰的にクローンする にはどうすればよいですか?

私はこのコードを使用します:

require "git"
Git.clone "git://github.com/user/repo.git", "/tmp/repo"

ただし、これは GitHub からリポジトリを再帰的に複製しません。

次のアナログが必要です。

$ git clone git://github.com/user/repo.git /tmp/repo --recursive
4

2 に答える 2

4

ruby-gitでのメソッドの実装は、#clone現時点では不可能であることを示しています。

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

ruby-git を fork し、そこに数行を挿入することをお勧めします。それはあなたの問題を解決し、世界は「ありがとう」と言うでしょう。

于 2013-01-19T06:00:01.150 に答える
1

最も簡単な方法は、アプリにそれを実行させることです。使ってみませんか?

`git clone git://github.com/user/repo.git /tmp/repo --recursive`
于 2013-01-19T07:07:09.033 に答える