URL を呼び出すと、から始まるhttp://<gitweburl>/gitweb.cgi?p=<repo>;a=tree;f=<subdir>;hb=HEAD
ツリーが表示されます。<repo>
<subdir>
URL を呼び出すhttp://<gitweburl>/gitweb.cgi?p=<repo>;a=snapshot;f=<subdir>;hb=HEAD
と 404 が生成されます。
URL を呼び出すと、HEAD リビジョンhttp://<gitweburl>/gitweb.cgi?p=<repo>.git;a=snapshot;h=HEAD
のスナップショットが提供されます。<repo>
Gitweb にサブディレクトリから始まるスナップショットを作成させる正しい構文が見つかりません。私は次のことにつながる何かを意味します:$ git archive --format=tar --remote=<gituser>@<gitserver>:<repo> HEAD:<subdir>
私は単純に URL を呼び出してみましhttp://<gitweburl>/gitweb.cgi?p=<repo>;a=snapshot;h=HEAD;f=<subdir>
たが、その結果、リポジトリ全体を含むスナップショット アーカイブが作成されます。
Gitweb Web インターフェイスをクリックした後、「ツリー」ビューに変更し、<subdir>
「スナップショット」に移動してからクリックすると、次のような URL が使用されることがわかりました。
http://<gitweburl>?p=<repo>;a=snapshot;h=42a6503da6aaedc92bb3543e0b0de9b2de0aaae9;sf=tgz
これはまさに私が望むものを提供しますが、このハッシュパラメーターh=...
が何であるかわかりません。コミットIDではありません-チェックしました。何らかの方法で を識別する必要があります<subdir>
。しかし、それがあったとしても、これはまだ役に立ちません。なぜなら、スナップショットを開始する/含むだけが必要な人<subdir>
は、通常、このハッシュを知らないからです。
Gitweb 経由でサブディレクトリのスナップショットを取得する方法について何か考えはありますか? 前もって感謝します!
添加:
ちょうど見つけた:可視にh=42a6503da6aaedc92bb3543e0b0de9b2de0aaae9
関連付けられたハッシュ値です。<subdir>
$ git ls-tree -r -t HEAD
したがって、これらの2つのコマンド:
$ git archive --format=tar --remote=<gituser>@<gitserver>:<repo> HEAD:<subdir>
$ git archive --format=tar --remote=<gituser>@<gitserver>:<repo> 42a6503da6aaedc92bb3543e0b0de9b2de0aaae9
私がそれを考えさせて、同等である同じことをしてください。それでも、ハッシュをに置き換えることはできません。この URL を呼び出すと、「400 - 無効なハッシュ パラメータ」という結果になるため、ここでは実際の進行はありません。HEAD:<subdir>
42a6503da6aaedc92bb3543e0b0de9b2de0aaae9
http://<gitweburl>?p=<repo>;a=snapshot;h=42a6503da6aaedc92bb3543e0b0de9b2de0aaae9;sf=tgz
HEAD:<subdir>
poke で提案されているように、使用するクイックアンドダーティハックURL http://<gitweburl>/gitweb.cgi?p=<repo>;a=snapshot;h=HEAD;f=<subdir>
$ diff -Naur gitweb.cgi.original gitweb.cgi.new
--- gitweb.cgi.original 2012-09-28 00:50:47.000000000 +0200
+++ gitweb.cgi.new 2013-01-22 11:04:29.870532502 +0100
@@ -7029,6 +7029,9 @@
my ($name, $prefix) = snapshot_name($project, $hash);
my $filename = "$name$known_snapshot_formats{$format}{'suffix'}";
+ if ($file_name) {
+ $hash="$hash:$file_name"
+ }
my $cmd = quote_command(
git_cmd(), 'archive',
"--format=$known_snapshot_formats{$format}{'format'}",