3

私の会社は内部でgitを使用しており、svnを使用するGoogleCodeでオープンソースとして作業の一部を公開しています。(gitをサポートしている場合、問題はおそらく同じです。)

問題は、リポジトリの一部のみを公開するため、 http: //code.google.com/p/support/wiki/ImportingFromGitで説明されているようにgit-svnを使用しても機能しないことです。

  • リポジトリの一部を公開するにはどうすればよいですか?(初めて、公開したいファイルをコピーしました。)
  • 公開されたファイルとコードのリポジトリの間で変更を同期する方法は?
4

3 に答える 3

4

git-filter-branchを使用して、GoogleCodeにインポートするパーツを抽出できます。

于 2009-02-12T09:11:04.520 に答える
4

git 1.7.11 では、このようなコマンドを使用して、git コントロールと履歴をエクスポートせずに、リポジトリ内の 1 つのディレクトリの生ファイルのみをエクスポートします。ファイルを表示する既存のディレクトリで必ず実行してください(つまり、最初に宛先ディレクトリに make して cd します)。

git archive --remote /local/master/project.git HEAD:open/src | tar x
  • /local/master/project.gitをリポジトリの指定に使用するものに置き換えます (私の例ではローカル NFS マスターを使用しています)
  • HEAD をブランチ名に置き換えます
  • open/srcをリポジトリ内のディレクトリに置き換えてエクスポートします

--remote オプションを使用すると、クローン コピーでこれを実行する必要さえないため、リリース メカニズムをラップする他のプロセスに埋め込むことができます。

さらに tar オプションを使用して、選択したディレクトリ ツリーから一部のファイルを除外できます。

于 2012-11-30T19:48:01.733 に答える
3

1つのアプローチは、パブリックなもの用に個別のGitリポジトリを作成し、それをサブモジュールとして内部リポジトリに含めることです。そうすれば、パブリックGitリポジトリをGoogleCodeSVNリポジトリと同期するのがはるかに簡単になります。

于 2009-02-12T09:08:54.853 に答える