私は自分のアイデアが実現可能かどうかを確認するために Git をいじっていました (基本的に、接頭辞付きのタグを持つ多くのファイルのバージョン番号を追跡します)。多くのファイルとバージョン タグを生成するスクリプトをセットアップした結果、約 45000 個のタグが残りました。Git サーバーに Atlassian Stash を使用しているため、リモート リポジトリにコミットを問題なくプッシュしましたが、タグをプッシュしようとすると、次のエラーが発生しました。
% git push --tags
fatal: The remote end hung up unexpectedly
タグを手動でプッシュすると、git push tagname-1.0
うまくプッシュできます (少し時間がかかります)。現在、すべてのタグを bash ループでプッシュしていますが、この時点で 24 時間以上実行されています。
多くのタグを使用および/またはプッシュすることで、パフォーマンスの問題や制限はありますか? これを引き起こしている可能性のある構成に何か問題がありますか?
編集 1:ローカルの裸の git リポジトリを作成し、多くのタグのリポジトリをそこにプッシュしました。その後、タグをプッシュしようとしたところ、同じリモート ハングアップ エラーが発生したため、これは Stash の問題ではないと思います。
編集 2:一時的な回避策として、次のコマンドを使用して、一度に 100 個のすべてのブランチをプッシュできます。
git tag | xargs -n 100 git push origin
すべてのタグをクローンの一部として取得するかどうかを確認するためにローカル クローンを作成しようとしましたが、信じられないほど長い時間 (約 1 時間) かかりましたが、すべてのタグが正しく転送されたようです。新しいディレクトリにもう一度クローンを作成しようとしましたが、1 分未満ではるかに高速でした。おそらく、パック ファイルを再利用したか、私のマシンでより多くのリソースを利用できるようになったのでしょう。