3

ほとんどのリポジトリを自分のSVNサーバーからホストされたリモートGitサーバーに変換したかったのです。リポジトリをよりスムーズに変換するために、いくつかのコマンドを見つけて自動シェルスクリプトに変換しました。

とにかく、それはすべて機能しましたがunexpected EOF、gitリポジトリのクローンを作成しようとすると、ホストされているサーバーからエラーが発生します。一部の大きなリポジトリ(2〜10ギガ)はインポートに時間がかかりすぎます...

そこで、最大のフォルダとグラフィックソースファイルを削除してリポジトリのサイズを小さくするために、フォルダfilter-branch削除に使用しようとしました。それはすべて私のコンピューターで動作しましたが、git-serverにアップロードしたいとき(非常に長い間待った後)、ディレクトリとファイルがまだそこにあることがわかります!

git repackパックも小さいことを確認し、リポジトリを新しいフォルダに複製しようとしましたが、問題の縮小部分では機能しましたが、続行するとgit branch -m trunk master次のようなエラーが発生しました。

1: error: refname refs/heads/trunk not found
2: fatal: Branch rename failed
3: error: src refspec master does not match any.
4: error: failed to push some refs to 'ssh://git@bitbucket.org/{username}/{projectname}'

トピックに関する次の返信で説明されているように、エラー#3に対して新しいコミットを行いましたが、まったく進展がありませんでした...

masterエラーはすべて相互に関連していることに気付きましたが、(ローカル)クローンリポジトリにトランクがない理由や、他のリポジトリに1つのブランチしかないのに突然2つのブランチができた理由がわかりません...

* [new branch]      origin/HEAD -> origin/HEAD
* [new branch]      origin/master -> origin/master

多くの試みの長い話をするために、短く:

  1. すべての履歴git svn clone --no-metadata -A -stdLayoutを含む新しいフォルダ( )に移動しますprojectname

    1b。廃止されたフォルダとファイル(リポジトリごとに定義)をすべて削除します

  2. 新しいリポジトリにgit init移動します(名前を付けましょうprojectname-copy
  3. bareを使用して作成したリポジトリにすべてをプッシュしますgit init --bare bare-repo
  4. ホストされているサーバーにアップロードしようとしましたが、エラーが発生するか、変更がありません

今私の質問は:リポジトリのサイズを(ローカルおよびリモートで)縮小し、それらを私のgit-serverにアップロードできるようにするソリューションはありますか?

PS:コマンドラインを書くことは私のお茶ではないことをご存知だと思いますので、私を撃たないでください:-)

4

1 に答える 1

1

気にしないで、自分で修正しました。

ローカルクローンを作成し、を実行しgit repack -A -d、次にagit gc --prune=now && git gc --prune=now --aggressiveを実行してから、ベアリポジトリを作成しました。

ブランチが正しいかどうかを確認する必要がありました。そうでない場合は、ブランチを作成してgit branch -m [branchname]から、ホスティングにアップロードできました。

皆さんと共有したいと思いました:-)

于 2012-08-28T10:06:11.247 に答える