0

ファイルがさまざまな変更で複数回コミットされる場合、一度に 1 つの変更、つまり一度に 1 つの変更セットを取得するにはどうすればよいですか?

私はEclipse、Subversion、およびSubclipseを使用していますが、前者の2つ(またはMSプラットフォーム..)は当分変更できません。

Eclipse のチーム/同期ビュー (subclipse を使用) でチェンジセット モデルを選択すると、すべてのチェンジセットがリストされていても、ファイルは最新の関連するチェンジセットにのみリストされているようです。したがって、以前の変更セットは、必ずしも元のコミットのファイルの完全なセットを表示するわけではなく、コミットのファイルの元の差分も表示しません。

更新: コード レビューを簡素化するために変更セットを使用することを考えているので、1 つの変更セットでコミットされたすべてのファイルを部分的に更新したいと考えています。日食で特定のファイルの差分と特定のリビジョンを取得するのは簡単ですが、1 つの特定のコミット/変更セットのすべての変更を実用的な方法で実行したいと思います。

4

2 に答える 2

0

Subversionはアトミックチェンジセットをサポートしていません。

(注:誰かが私を間違っていると証明できる場合は、受け入れられた回答を喜んで切り替えます。)

TortoiseGitとTortoiseSVNを使用してGitとSubversionを比較しました(そしてコマンドラインで何ができるかを調べました)。

SvnとGitの両方を使用して、特定のリビジョンに更新したり、一度に1つのファイルのみの異なるバージョンを表示して更新したりできます。

両方のTortoiseクライアントで、リポジトリからの個々のコミット(リビジョン)を確認し、リビジョンと以前のリビジョンの間の変更を確認できます。(Eclipseではこれを実行できないようです。質問を参照してください。)

ただし、Gitを使用した場合にのみ、分離されたコミットを更新またはチェリーピックすることができます。Subversionのこの機能に最も近いのは、headに更新してから、「サブトラクティブマージ」を使用して特定のリビジョンを元に戻すことです...

テストセットアップ:プロジェクトの作成、プロジェクトのチェックアウトまたはクローン作成、他の場所からのリポジトリへの2つの個別のコミットを作成します。これには、両方のコミットで変更された少なくとも1つのファイルが含まれます。次に、Gitを使用して:リモート変更をフェッチします。次に、GitとSubversionの両方で:ログを確認します。

于 2011-03-01T10:04:35.710 に答える
0

ご存知のとおり、svn upデフォルトではファイルの最新リビジョンを取得します。

ただし、この-rパラメーターを使用しsvn upて、ファイルの特定のリビジョンを取得できます。したがって、ファイルがリビジョン5、7、および9でコミットされていることがわかっている場合は、次のようにすることができます。

svn up -r5 myfile
svn up -r7 myfile
svn up -r9 myfile

Subclipseにも同様のオプションがあり、「Update to Revision ...」のようなラベルが付いていると思います(ただし、目の前にインストールされていません)。

于 2010-04-06T13:44:17.450 に答える