web-dev-qa-db-ja.com

Git-svnとEclipse?

Git-svn用のEclipse用プラグインはありますか? GitでSVNリポジトリを処理する方法を探しています(高速ブランチ切り替えなど)。

45
Konrad Garus

まだgit-svnをサポートするEclipse用のGitプラグインがあるようには見えません。

EGit は現在Eclipseで最もアクティブで人気のあるGitプラグインであり、git-svnをサポートしていませんが、EGitをEclipseで使用したりgit-と対話したりするのを妨げるものはありません。コマンドラインを介したsvn(または tortoise git などを使用)。

Eclipseバグ315264 はgit-svnをサポートするためのEGitバグであり、EGitのメンテナーが喜んで実装しているように見えますが、他の優先順位があります。したがって、機能が必要な場合は、必ずこのバグに投票してください。

52
ztatic

EGit は、現時点でEclipse用の唯一のGitプラグインです。 git-svnはサポートしていません。しかし、EGitをSubversionリポジトリで動作させる方法があり、このアプローチは他のどのGitクライアントでもうまく機能します。

SubGit は、SubversionリポジトリへのGitアクセスとGitリポジトリへのSubversionアクセスを可能にするサーバー側のソリューションです。詳細については SubGit documenation を参照できますが、一般的には非常に簡単です。

$ subgit configure --layout auto $SVN_URL $GIT_REPO
# Adjust $GIT_REPO/subgit/config
#     to specify your branches, tags and other settings
# Adjust $GIT_REPO/subgit/authors.txt 
#     to introduce svn author names to their git counterparts
# Adjust $GIT_REPO/subgit/passwd
#     in case you have no SVN credentials cached on your machine
$ subgit install $GIT_REPO
$ ... translating ... a little git is gonna born right here ... 
$ TRANSLATION SUCCESSFUL

その後:

  1. $ GIT_REPOのGitリポジトリが$ SVN_URLのSVNリポジトリと同期しています。この同期は確実に双方向です。つまり、SVNリポジトリとGitリポジトリの両方が引き続き書き込み可能であり、SubGitが両側からの変更を処理します。

  2. SubGitは$ GIT_REPO/hooksディレクトリにフックをインストールし、そのリポジトリへのすべてのgit Pushでトリガーされます。

  3. SubGitは、新しいリビジョンを取得するためにSVNリポジトリをポーリングします。

チームメイトが同じミラーを使用して変更をSubversionリポジトリに送信する場合があることに注意してください。この場合、Gitサーバーをセットアップする必要があります。幸い、SubGitは現時点で利用可能なほぼすべてのGitサーバーをサポートしています。

  • git-http-backend 、GitLab、Gitosis、Gitoliteを使用するApache HTTPサーバー:そのまま使用できます。
  • Atlassian Bitbucket Server:この場合、SubGitエンジン上に構築された SVNミラーアドオン を使用できます。
  • Gerrit:この場合、 GerritのSubGitプラグイン をインストールする必要があります。

免責事項:私はSubGit開発者です。 SubGitは、小規模なチーム、オープンソース、および学術プロジェクト向けの無料オプションを備えた商用ソフトウェアです。

6
vadishev

この質問は4歳ですが、最近見つかった回避策を共有したいと思いました。

  1. "External Tools Configurations""Run Configurations"のすぐ隣)を開き、新しい "Program"構成を作成します。
  2. 作業ディレクトリについては、ワークスペースからプロジェクトを選択します。
  3. 引数テキストフィールドにsvn dcommitを入力します。
  4. 構成を複製し、svn dcommitsvn rebaseに置き換えます。

これで、2回のクリックでgit svn dcommitgit svn rebaseを起動できます。

0
Kirill Rakhman