0

Kiva には、http://build.kiva.orgで利用可能な API があります。

また、API からの匿名化された (可能な限り) データのスナップショットも時折あります。現在、これらのスナップショットを定期的に、たとえば週に 1 回更新するように取り組んでいます。それらは合計で大きく、350MB の圧縮、> 1GB の非圧縮です。ただし、それらは何百もの JSON ファイルで構成されているため、変更を単にプルダウンするという点で git の恩恵を受けることができます。

スナップショットを Git と Github に移動して、それらのホスティングを利用し、スナップショットの更新をより高速に取得したいと考えています。実際、現在のスナップショットのみのコミットを 1 つここに掲載しました: https://github.com/coderintherye/kivaloans

ただし、時間をかけてデータをつなぎ合わせるために、過去の履歴を簡単に取得したくないため、git履歴を保持したくないという要望があります。もちろん、その理由は、私たちにはユーザーのプライバシーを保護する法的責任があるからであり、データをどれだけ匿名化しようとしても、十分なデータをまとめれば、ユーザーの活動を特定できる可能性があるという現実的な期待があります。 Netflix コンテストで起こったことなどのグループまたは個人へ: http://www.wired.com/threatlevel/2010/03/netflix-cancels-contest/

履歴を保持せずに、Git を使用してデータを提供する方法はありますか? 私たちが検討しているオプションの 1 つは git を使用することですが、rebase -i を使用して以前のコミットを破棄します。しかし、Git から利益を得るためには、少なくとも以前のコミットを保持する必要があると思います。もちろん、定期的にプルしていない人は、あまり利益を得られません。参照への古いコミット (または、そう思いますか?)

それとも、このようにデータを利用して良き市民になろうとする期待は、不当な期待でしょうか? もしそうなら、私たちはその考えを完全に放棄することができます.

4

3 に答える 3

2

GitHubには、ソース管理の外部でダウンロードするために静的ファイルをアップロードする機能があります。これは、コンパイル済みのバイナリインストーラーやその他の大きなファイルを提供するプロジェクトでよく使用されます。

Repo Downloads APIを使用して、これを自動化できます。

于 2012-05-30T19:22:09.907 に答える
1

別のアイデア: 完全な履歴を持つローカル git リポジトリを使用し、「ビルド プロセス」を使用して特定のスナップショットを GitHub に公開します。例:

  1. 一連のコミットを行い、それらをローカル リポジトリにチェックインします。
  2. ローカル リポジトリを公開することにしたので、まずタグ付けから始めます (適切な測定のために)。
  3. 「ビルド プロセス」は、GitHub リポジトリのクローンにアクセスできます。そのチェックアウトでは、すべてのローカル ファイルを削除し、ローカル リポジトリの (チェックアウトではなく) エクスポートを実行します。具体的には、最後にタグ付けされたバージョンです。
  4. エクスポートされたファイルはコミットされ、GitHub にプッシュされます。
  5. GitHub リポジトリには履歴がありますが、スナップショットのみです。

プライベート履歴を公開することなく、パブリック コミットをプライベート コミットに簡単に関連付けるために、ある種のタグ付けまたはコミット メッセージ規約を採用することができます。

この「ビルド プロセス」は、なんらかのスクリプトにすぎません。

于 2012-05-30T21:05:19.047 に答える
0

ここで決定した最終的な解決策は、型にはまらないものかもしれませんが、うまくいくはずです。

最新の 2 つのスナップショットのみを json ファイル形式で保持し、データに問題がある場合は、リポジトリを非公開に切り替えます。その後、データが必要な程度に修正および/またはスクラブされたら、公開に戻します。

さらに、AlanBarber が提案しているように、レポ ダウンロード API を介して完全なスナップショットを提供する予定です。

于 2012-06-04T21:26:00.370 に答える