TOKUNAGA Hiroyuki
tkng****@xem*****
2005年 9月 24日 (土) 03:15:04 JST
On Fri, 23 Sep 2005 00:38:47 +0900 Yusuke TABATA <yusuk****@w5*****> wrote: > 田畑です。 > > TOKUNAGA Hiroyuki wrote: > > ついでに。転送がhttp経由だとかなり遅かったので、リポジトリをgit > > repack しておいていただけると嬉しいです。>田畑さん > repackの使い方がいまいちわからないのでご存知でしたら教えて > 欲しいことがあります。 > ある時点で存在する細々したファイルをrepackし、prune-packedで元の > ファイルを消すというところは良いのですが、その後でまたファイルが > 増えていった時にrepackをかけると増えたファイルだけがrepackの対象 > になってpackファイルが増えてしまうんではないかと心配してます。 > なんか良い方法はあるでしょうか? git repack -aとオプションを付けると、既にパック済のファイルももう一度 パック対象としてくれるみたいです。さらに、git repack -a -dとすると、不要 になった.packを削除してくれるそうです。 ただ、これは新しい機能のようで、Debianに入っていたcogitoの0.12.1 +20050730-1では使えませんでした。 オブジェクトを探す順番としては、まずobject/xx/以下を探して、見付からなけ ればパック済ファイルに入ってないか探す、となっているようです。ですので、 今のところ、repackしたらprune-packedをしないと意味がなさそうです。 逆に、git repack -a -dでリポジトリを1つのファイルに固めてから prune-packedした場合、ダウンロード時に必要なオブジェクトが1つだけしかな くても、そのオブジェクトが入っている.packファイル(=リポジトリ全体)をま るまるダウンロードさせられます。現時点ではgit repack -aはあまり使わない 方が良さそうです。 > ファイルが1000個たまったらrepackというようなのもアリかも > しれないですけど面倒だと思います。 上記の通り、毎回git repack -aをすると毎回リポジトリのコピーをさせられる ようなものなので、未パックのオブジェクトファイルが100個たまったら repack、というような運用はアリだと思います。 未パックのファイルの数はgit count-objectsで求められます。(これも新しめ のgit-coreでないとできないみたいです) > 一度cloneしてしまうと、次以降のupdateはそんなに遅くないと思います。 > cg-logを見ると、共同開発の雰囲気が見えて面白いかもしれません。 たしかに、2回め以降はそんなに遅くないですね。 -- 徳永拓之 tkng at xem jp