2011-12-16 20 views
10

現在、私たちはSVNを使用しています。 私はGitHubの使用を開始したいと思いますが、絶対に必要なことは、私たちが現在持っているように、コードのプリコミット(premerge)検証が必要であるということです。 GitHubはprecommithooks(premergehooks)をサポートしていますか?precommithooksをサポートしていますか?

私たちは5人の開発者のチームです。私たちは、すべてのコード(JavaScript)がJSLintのような検証に合格するという合意をしました。自発的な検証は簡単には忘れられているため動作していないことが証明されています。他の人が利用できるようになるコードがJSLint(または同様のもの)に対して検証されることを保証するにはどうすればよいでしょうか?

+3

(gitの!= githubの)だった – smitec

+4

が、私はそれを知っていると私はGitはprecommithooksをサポートしていることを知っています。 gitに移動することは問題ではありませんが、githubを使用できる場合を除いては実行しません。 – coen

+0

gitのプリコミットフックがマシン上で実行されます。コミットを停止すると、検証されていないコードをgithubにプッシュする機会はありません – smitec

答えて

2

githubがプリコミットフックをサポートしているとは思いません。しかし、gitコアはそうです。ローカルでプリコミットフックを設定したり、メインgithubにブランチをマージする前にそれらをテストとして適用することができます。

+0

私たちにとっては、あなたのコードが検証されることなくコミットすることができないので、合併前のテストは残念なことに解決策ではありません – coen

+0

おそらくgithubから離れるべきでしょう。シンプルなgitサーバーを設定するのは難しくありません。そして、あなたが望むようにフックを設定することができます。 –

+0

gitの全体的なポイントは、コミットが容易に起きるようにすることです。実際、コミットはローカルマシン上で起こるものです。リモートサーバー上のフックの量によっては、ローカルからのコミットを阻止することはできません。おそらく、 'コミット'の定義を 'マージ'に変更する必要がありますか?または、ユーザーを信頼する場合は、すべてのクライアント作業コピーにフックのコピーを入れます。 – bdonlan

2

いいえ、GitHubはプリコミットフックをサポートしていません。それはどのように働くでしょうか?あなたのコンピュータのでコミットが発生しました。あなたのマシンでGitHubが任意のコードを実行できるようにしたいですか?

+2

ローカルで作業している間はマージしても構いませんが、メインリポジトリとマージするときにコードを検証する必要があります。私はこれがwebhooksなどで行われると想像することができます。 – coen

+0

//質問をもっと分かりやすくする方法を説明できますか?これを打つ多くの人々がSVNの背景を持っていると考えてください。 –

2

gitについて根本的な欠点があると思います。これは集中型モデルではありません(よく分かりませんが、となりますが、この方法で使用する場合はgithubがおそらく間違ったアプローチです)。あなたはgithubのを使用している場合、これを行うための正しい方法は次のとおりです。

  1. ホストメインのレポ
  2. は、あなたの開発者それぞれが自分にコミットし、プッシュ、彼らは喜んで離れてハックしてみましょう、自分のフォーク
  3. を作成してもらいます心臓のコンテンツ
  4. 機能が準備完了だと思うときは、安定性を確保するために自分で確認しているプルリクエストをあなた(管理者)に送信します。その後、変更内容をメインリポジトリにマージ/リベースします。

当然のことながら、猫には多くの方法があります。しかし、あなたが「オープンソースコミュニティーによって採用されている種類の「本当のgit」について話しているときには、集中管理された「チェックイン・アンド・イット・ザ・イット・イン・ザイムスそれは大規模なプロジェクトになると。

+1

本当にそうかもしれません。私は完全に逃した「プル・リクエスト」原則を見ておくべきです。 – coen

+0

継続的な展開を行っている場合にテストが失敗するたびに、ユーザーが展開するリポジトリにプッシュできないようにすることは、非常に妥当です。 – kranzky

+0

@kranzky downvoteありがとう、あなたはこの答えの全体のポイントを逃しています。 –

3

私はこの記事は、自動化の基礎となる可能性が非常に優れたワークフローについて説明だと思う:

http://scottchacon.com/2011/08/31/github-flow.html

主なアイデアは、前述したように、あなたがプル要求を使用しますが、あなたはまた、サービスを持つことができるということですgithub APIを使用してブランチを取り出したり引っ張ったりしてリクエストを作成し、マージし、テストし、検証した後、ターゲットブランチにプッシュします。

関連する問題