2

カスタム ローカル機能 (ペルシア語のカレンダー、RTL テーマなど) をサポートするために、 BlogEngine.Netをカスタマイズしています。

BlogEngine.Net は Mercurial ソース管理を使用しており、プロジェクトのフォークを作成して変更をコミットすることができます。しかし、ペルシャ語をサポートするためにコードに大きな変更があり、メイン プロジェクトにプル リクエストを送信するつもりはないため、別のプロジェクトとしてリリースしたいと考えています。AFAIKには2つのオプションがあります:

  1. BlogEngine.Net のソース コードをダウンロードし、新しいプロジェクトを作成し、元のソース ファイルをコミットしてから、変更をリポジトリにコミットできます。
  2. メイン プロジェクトをフォークして、クローン リポジトリを作成できます。その後、そのリポジトリでコミットできます。

フォークを使用する利点は何ですか?フォークを作成した場合、独立したプロジェクトのように自分のプロジェクトを独自のページでリリースできますか (オプション 1)? 「独自のページ」というのは、「FarsiBlogengine.CodePlex.Com」のようなアドレスを持ち、バイナリ バージョン、ソース コード バージョンをダウンロード可能にし、ディスカッション フォーラムなどを用意したいということです。私が持っている機能と同じようにフォークを使用しない場合。

一般的に、メイン プロジェクトをダウンロードして新しいプロジェクトを作成し、新しいプロジェクトにコミットする代わりに、フォークを使用する利点は何ですか?
ありがとう。

4

1 に答える 1

5

フォーク (別名: クローニング) (別名: オプション #2) の主な利点は、リポジトリに親リポジトリの全履歴が含まれ、必要に応じてそのリポジトリからプッシュまたはプルするオプションが有効になることです。オプション #1 を使用すると、親リポジトリのスナップショットから開始し、プロジェクトの履歴/系統を失います。

2 つのリポジトリが関連しているかどうかを判断するとき、Mercurial は共通の祖先を探します - オプション #1 の場合はそうではありませんが、オプション #2 の場合はそうです。親レポ (プッシュ/プル/など) との同期を実行したくないと明示的に述べたとしても、BlogEngine.net がプルオーバーしてプルを実行したい重大なバグ修正をリリースしていることに気付くかもしれません。たまに。オプション #1 では共通の祖先が見つからないため、これを行うことはできませんが、オプション #2 では許可されます。

コードのリリースに関して、「それは独自のページです」とはどういう意味か正確にはわかりませんが、どちらのオプションでもリリースに問題はないと思います. どちらの場合も、単純なリポジトリしかありません。ケース#2では、より多くのコミットとより多くの履歴を持つより大きなリポジトリがあります。

于 2011-05-11T12:10:08.783 に答える