4

Javaを介してプログラムでSVN、CVS、Gitのチェンジセットにアクセスしたい。つまり、 「同期」ビューに表示されるデータが必要です。

私はコード内の正しい使用法を見つけるためにいくつかのアプローチを試しました、そしてここに私が見つけることができたいくつかのドキュメントがあります(しかし成功しませんでした):

  • TeamUI.getSynchronizeManager()チェンジセットを介してSynchronize-Viewにアクセスできましたが、アクセスできませんでした。

  • 私が試したもう1つのことはFocusedTeamUiPlugin.getDefault().getContextChangeSetManagers()、(マネージャーを取得してから、ChangeSetを取得しようとしたChangeSetProviderを取得した)経由でカンジセットを取得することでしたが、常に空です(最初に呼び出したときに作成されたため)。

では、Eclipse(Mylyn)で(Javaを使用して)ChangeSetにアクセスするにはどうすればよいですか?結局、コミット数とコードチャーン(loCの追加/削除/編集)が必要です。それとも、おそらく他のより良いアプローチがありますか?

どんな助けでも本当にありがたいです!

4

3 に答える 3

3

Eclipseはまだこの機能をパブリックAPIとして実装していないと思います。ただし、次のリンクが役立つ場合があります。

内部チェンジセットクラスおよびその他のAPI:http ://www.cct.lsu.edu/~rguidry/ecl31docs/api/index.html?org/eclipse/team/internal/core/subscribers/ChangeSet.html

まだ実装していない理由について話し合う機能拡張リクエスト(ただし、2008年の日付ですが、バグはまだ開いていますか?)https://bugs.eclipse.org/bugs/show_bug.cgi?id=116084

申し訳ありませんが、これ以上のお手伝いはできませんでした。多分これは正しい方向にあなたを助けるでしょう...

于 2012-11-09T04:15:33.187 に答える
1

あなたはおそらくEclipseを回ることができます:

  • rsyncを適用して、CVSサーバーからCVS "*、v"ファイルを取得します。わたしにはできる。
  • cvs2svnの「 cvs2git」コマンドをCVSリポジトリに適用します。わたしにはできる。
  • 「gitsvnclone」(「git-svn」で説明)をSVNリポジトリに適用します。私はそれを試していません。
  • 最後に、JGitのAPIを使用して、すべてのリポジトリから変更セットを取得します。この時点では、すべてのリポジトリはgitリポジトリです。私はあなたが特にこれらを必要とするだろうと思います:
    • クラスGit
    • クラスFileResolver
    • クラスBaseConnection
    • インターフェイスリポジトリ
    • クラスCheckoutCommand
    • クラスLogCommand
    • クラスRevCommit
    • クラスDiffCommand
    • クラスDiffEntry
    • クラスDiffFormatter
于 2012-11-12T04:04:31.770 に答える
1

私はこれを1ヶ月間探しています。プロジェクトのチェンジセット(リポジトリの「作業コピー」)を読み取ることができるEclipse用のプラグインをプログラムしようとしました。

私が今やったことは醜い回避策です。

Runtime.exec()を使用してcmd-command/Shell-コマンドを実行しました。svn-commandline Clientをインストールする場合は、「svn status -v -u It」と入力すると、変更セット情報を含む作業コピーのすべてのファイルのリストが表示されます。

次に、リストを解析して、「M」で始まるすべての行を見つけることができます。「変更された」の場合は、変更されたファイルのパスを取得します。

于 2013-08-22T10:34:25.620 に答える