質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Team Foundation Server

Team Foundation ServerはMicrosoftに提供されているALM(アプリケーションライフサイクル管理)の製品です。

Q&A

解決済

1回答

2443閲覧

gitのcloneでエラーになる

natsu2

総合スコア6

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Team Foundation Server

Team Foundation ServerはMicrosoftに提供されているALM(アプリケーションライフサイクル管理)の製品です。

0グッド

0クリップ

投稿2018/08/06 09:17

前提・実現したいこと

Microsoft の TeamFoundationServer 上のgitでソース管理を行っており
主に VisualStudio からgit操作を行っています。
その中のあるgitリポジトリにおいてcloneができなくなりました。

対象のgitリポジトリについて
既にcloneされているリポジトリではcommit、push、pullはできているのですが
新規でcloneしようとするとエラーになってしまい困っています。

cloneができるようにしたいのですが、どの様に対応したらよろしでしょうか。
何卒よろしくお願い致します。

発生している問題・エラーメッセージ

VisualStudioからcloneをすると
途中で止まってしまいます。

コマンドプロンプトからcloneすると
git clone [source] [destination_dir]
以下のメッセージが表示されます。

remote: Found 316519 objects to send. (2660 ms) remote: 空のファイルによってバックアップされるメモリ マップ ファイルには、正の容量を定する必要があります。 fatal: early EOF fatal: index-pack failed

試したこと

https://qiita.com/cacahuatl/items/4d763e98f3934e3569ca
上記の方がまとめてくださった方法3つとも試してみましたが、状況変わりませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Meganezaru

2018/08/10 00:38 編集

苦労されているようですね。(>_<)(Stack・・・も情報得られずですね・・・) ちょっと興味がありましたので、のぞいてみたのですが、エラー内容から想像すると、 処理中に利用するRamdiskのようなものが作れない、もしくは容量が足りないことのように感じました。試されたまとめの問題から考えても、リポジトリの容量が大きくなっている感がありますので、サーバー側のメモリが足りないなどの問題も考えられるかもしれないですね。上記環境については未知ですが、何かのきっかけになればと思い、とりあえず、書き込んでみました。
yumetodo

2018/08/10 05:45

SSH経由でもだめですか?
natsu2

2018/08/21 05:34 編集

Meganezaruさん 書き込みありがとうございます。サーバー側のディスク空き容量を増やしてみました変わりませんでした。サーバー側メモリは使用率45%で通常時と変わらず、足りてはいるようです。。
Meganezaru

2018/08/21 05:31

メモリーが足りない雰囲気に感じてますが、メモリーは増やせないですかね?
natsu2

2018/08/22 04:45 編集

Meganezaruさん サーバー側メモリを倍くらいに増やして試して見たのですが変わりませんでした。
Meganezaru

2018/08/22 06:04

そうですか・・・残念です。memory mapped fileのサイズを変更するような設定がないか調べてみましたが、これ!というのは、なさそうで、関係しそうかな・・・というものがいくつか見つかったレベルです。もし関心があるようであれば、サーバー側で、core.packedGitWindowSIze、core.packedGitLimit、あたりを調整してみてください。(基本、変更しなくても良い・・・とマニュアルにはありますが)あと・・・念のため、サーバーのGitが最新でないなら、更新してみるのも手かもしれません。お役に立てず申し訳ないです・・・
natsu2

2018/08/22 10:45 編集

Meganezaruさん ご返信ありがとうございます。 頂いたキーワードでもう少し調べてみます。。 また、サーバー側(TFSの)gitバージョンについては、Git for Windowsのバージョンとは異なるようなので、サーバーのgitバージョン更新にはTFSのバージョンアップが必要かもしれません。 https://social.msdn.microsoft.com/Forums/vstudio/en-US/0a67d01d-e1c2-4325-a221-1efa8926a408/what-version-of-git-for-windows-was-released-with-tfs-2015-update-3?forum=tfsversioncontrol
natsu2

2018/08/22 10:47 編集

yumetodoさん SSH経由についてはVS上でのcloneで「SSH プロトコルは現在サポートされていません。」となります。SSHの設定方法がよくわかっておりません。。
yumetodo

2018/08/22 11:13

VSのほうはしらんけど、普通にsshようにport開けて公開鍵をサーバーに登録して上げれば行けるのでは(適当
guest

回答1

0

自己解決

だいぶ時間が経ってしまいましたが、リポジトリを再作成してそちらを使っていくことにしたので、
その時の実施内容を記載しておきます。

概要は、
既にあるローカルリポジトリで全ブランチをローカルにチェックアウトし、
新しいリモートリポジトリにプッシュ、最後にリポジトリ名を変更しました。

以下詳細です。

・TFS上で新しくリポジトリを作成し、リポジトリのULRを取得する

・既にあるローカルリポジトリでブランチを一つずつチェックアウト、新しいリポジトリにプッシュする
git checkout [ブランチ名]
git push [新しいリポジトリのURL]

最初にプッシュしたブランチが既定のブランチになるので、masterブランチを最初にプッシュする。
ちなみに、上記コマンドで実行するとブランチ作成者が自分になるので、
ブランチ作成者を指定したい場合は、URLのhttp://の後ろに[ユーザー]@ をつけて実行する。

git push http://[ユーザー]@[新しいリポジトリのUR(http://から後)]

これをすべてのブランチで実施する。
コミット履歴はすべて引き継げた。

・新しいリポジトリがcloneできることを確認
git clone [新しいリポジトリのURL]

・TFS上でリポジトリ名を変更
[元のリポジトリ] → 別の名前
[新しいリポジトリ] → [元のリポジトリ]

これで、新しく作成したリポジトリへ、今までと同じURLで接続ができる。

・今までのローカルリポジトリから、プッシュができることを確認

・新しいリポジトリ(名前変更後)がcloneできることを確認

以上です。

この対応で、新規でcloneができるようになりました。
また、既にあるローカルリポジトリは設定変更などはせずそのまま使うことができました。
今のところは問題なく使えています。

コメントくださった皆様、ありがとうございました。

投稿2019/04/03 14:27

natsu2

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問