2011-08-03 22 views
1

git(web)ブラウザを作成したいので、ssh接続されたマシン上のリモートリポジトリのコミット(git log)を繰り返す必要があります。 私のレポはかなり大きく、常に変化しています。そのため、ローカルで変更をフェッチしないことに興味があります(git log)。git log sshリモートリポジトリ

私は試してみました:

git remote add origin ssh://example.net/repo 
git checkout -b master --track origin/master 

、それは失敗しました:

任意のヒントをどのようにそれを行うには、\?

+0

なぜsshセッションからgit logを使用しないのですか? –

+1

ローカルのフェッチはそれほど高価ではありません。元のクローンが作成されたら、これをすべて追跡するためにローカルクローンを作成することをお勧めします。 –

答えて

0

リモートマシンでは、cdをリポジトリに追加し、git instawebを実行します。これにより、一般的に使用されるログやその他すべてのものを含むアクセス可能なWebサーバーが起動します。 git help instawebを参照してください。

+0

これらのログと対話する必要があります(メッセージをデータベースに保存してPDFレポートを生成する)。しかし、私はRSS/Atomフィードを使用してこの情報を取得するソリューションを見つけました。今私は私がまだ取り組んでいる認証の問題があります:_thank you_まだ質問はまだ開いています –

+0

私はまだローカルクローンを使用することをお勧めします。 –

2

フックを使用してログをWebサーバーにプッシュできます。 repo.gitは、リポジトリのパスをある

repo.git/hook/post-receive 

:リポジトリ・ホスト上でスクリプトを作成します。誰かがこのリポジトリにプッシュすると、フックがトリガされ、gitログをファイルにダンプしてssh経由でWebサーバに送信する可能性があります。

このソリューションには、Webサーバーにアクセスできるユーザーは誰でもリポジトリにすぐにアクセスできないという利点があります。

+0

これは非常に良いヒントですが、私はメインリポジトリへのアクセス権しか持っていませんが、私には誰かにそれを依頼することができます。ありがとうございました。 –

+0

crontabエントリを追加して、データベースにプルしてログを保存すると、処理が速くなるかもしれません。 –

0

あなたはcronジョブにSSH経由でのgitのログを実行しようとすることができます:あなたがローカルリポジトリのコピーを作成する必要はありません

ssh example.net git --git-dir=repo log > /tmp/repo.log 

この方法です。これは、sshキーが設定され、この設定で安全であると感じていることを前提としています(Webサーバーへのアクセス権を持つユーザーがリポジトリにアクセスする可能性があります)。

-1

あなたはとlocalYあなたがリポジトリのクローンを作成する必要がありますgit logを実行したい場合(それはあなたがやろうとしていたものではありません?):

git clone example.net/repo 

欠点は、それを格納するためのスペースを取るということですWebサーバ上ではなく、将来の引き上げは、新しい変更をダウンロードし、非常に高速であり、変化の大きさに依存します:

cd repo 
git pull 

あなたがpull crontabの中に、あるいはいずれかを使用してリポジトリ・ホストからそれをトリガー作ることができますそれを更新するだけのフック必要とされる。

+0

彼はリモートリポジトリから直接行うことについて質問しています – Korayem

+0

Korayem、彼はそれを取得することを避けたいと思いますが、それでも有効な解決策です。また、この回答は間違ってdownvoted(それがあなただった場合)ではないので、それは "怠惰な、努力を費やさなかった投稿、または...危険な間違った"です。 –

0

リモートトラッキングブランチorigin/masterを作成するためにリモートを追加した後にgit fetch originを実行する必要があるため、あなたが引用したコマンドでエラーが発生する理由があります。

0

git logを実行するためにフェッチする必要があるとは限りません。 - 私はめったに更新されない大きなレポを持っているため、変更が必要なときにのみクローンします。しかし、私はそれに追いついていきたいと思います。 - 私はただ押しました。私は私の変更を持っているリモートのレポをダブルチェックしたいと思います。 と私はsshのアクセスを持っていないが、マシンにアクセスするgitを持っている。

GIT_DIR=node:/path/to/repo.git git log 

はgitのログ・スイッチの制限されたセットのために働く必要があります。

あることは明らかと思われます。

今日、gitのいくつかの穴の1つ、IMHOです。

+2

これは、私が試したリモートのリポジトリのURLでは動作しないようです。多分、これはもはやgitにはありませんか? –

関連する問題