1

サーバーにgitosisのリポジトリがあります。それらの1つはメインであり、他のすべてを含みます。私はローカルマシンからそれらを操作し、サブモジュール階層はローカルマシン上に構築されました。Gitosisのリポジトリはbare(?)であるため、サーバーにサブモジュールを含めることはできません。問題は、メインリポジトリにRedmineのベアクローンがあることです(プロジェクト管理。Redmineは統計、コミット、ファイルの履歴を表示します。また、コミットやファイル、またはファイルのリビジョンへのreflinkをwikiに直接書き込むこともできます)。ただし、ファイルがサブモジュールに配置されている場合、redmineはそれらにアクセスできません。では、サブモジュールの統計をベアリポジトリに表示するにはどうすればよいですか?


=== upd ===

サブモジュールが常に含まれているのかわかりません。Redmineはベアリポジトリのクローンを使用し、常に任意のファイルの統計を表示できますが、サブモジュールはサイズが0のファイルとして表示されます。私はすでにデフォルトのスキームgit@123.456.789.001:Main.gitを試しましたが、ssh://git@123.456.789.001/Main.gitサブモジュールはまだ長さゼロのファイルのように表示されます。

git-status正常に動作し、サブモジュールからのプッシュされていないコミットを表示しますが、リポジトリはファイルです。これは奇妙ですが、redmineはサブモジュールからのコミットを表示するようになりましたが、それ自体が奇妙な方法で、これを見てください:

gitサブモジュールでのビューの違いの問題を修正する

ここで、すべてのサブモジュールごとにサブプロジェクトを作成しようとします。そうすると、必要に応じて参照するようになります。http://www.redmine.org/issues/3169は完全に関連しています。

4

1 に答える 1

1

gitosis (またはその最新バージョンの gitolite ) は常に裸のリポジトリを管理し、作業ツリーがインデックスと同期していないことを気にせずに (承認された) ユーザーがプッシュできるようにします。

また、サブモジュールは常に裸のリポジトリに「含まれています」: サブモジュールは、関連するコミットへの単なる参照 (およびサブモジュールのリポジトリへのアドレス) です。

Redmine がトリップする可能性があるのは次のとおりです。

  • .gitmodules で指定されたアドレス (url) は、Redmine コンテキストでは不明です。
    たとえば、gitolite:aRepoName を使用します。ここで、gitolite は ~/config ファイルで定義された ssh ショートカットです (構成ファイルの例については、こちらを参照してください): 完全な ssh uri スキームを使用してみてください: ssh://[user@]host [:port][/path] に移動し、アドレスがワークステーションと Redmine サーバーの両方から機能することを確認します。

  • いくつかのオプションの使用 ( git status --ignore-submodules=allor status.submodulesummarywhich のように、デフォルトで false に設定されており、ステータスが変更されたサブモジュールのコミットの概要を表示できないようになっています): 少なくとも、Redmine が がstatus.submodulesummarytrue に設定されている git 環境にあることを確認してください。

于 2011-08-05T06:12:18.567 に答える