2011-08-08 12 views
1

Subversionでバージョンnと(n-1)の間でいくつかの変更を元に戻したいとします。Subversionで復帰する

バージョン(n-1)からファイルを戻すだけです - リポジトリから取り出し、トランクの最新バージョンとしてチェックインし直してください。

ここでは、バージョン(n-1)からブランチを作成し、トランクに戻したいと思うようです。

これはどのようにして「より正確に」、「より正確に」なりますか?

この場合、1つのディレクトリ内にいくつかのファイルがあります。 これらのファイルには、最近のその他の変更はありません。きれいに、あなたのために、他のコミット悪いを削除するには

答えて

0

過去に1000年と1010年を言って、特定のリビジョン間の変更を削除するには、次の

をコピー型の作業データまで、チェックアウトから:

svn merge -r 1010:1000 . 

これはすべて削除されますリビジョン1000と1010の間の作業コピーの変更(1000自体に加えられた変更を含まない)。あなたがローカルな変更をしておらず、あなたが望んだことを確認するまで結果を確認しない限り、これを使って遊んでも安全です。あなたの特定のケースで

あなただけではなく、より一般的-rの「-c」を使用することができ、単一のリビジョンを削除するので、:削除2000:

svn merge -c 2000 . 

これは、1999年-rと同じです1999年から2000年に変更されました。

+0

私の質問に直接答えるものではありませんが(私の会社では何をしているのでしょうか)、それはより良い方法だと私に思います。 これはディレクトリ3の一部で動作すると思われますか? – Olav

+0

ブランチに変更を保存したい場合は(ブランチに移動する) – Olav

+0

変更を含むリビジョンを含むリビジョンからブランチを作成できます。また、ブランチに対してマージコマンドを実行して、指定した変更をブランチの上または下に移動することもできます。 –

2

...

「元に戻す」ことが唯一のローカルな変更に影響を与えるので、あなたが探しているものではありません。そう、あなたを

current rev: 1337 

bad rev: 1330 

$sh> svn merge -c -1330 svn://your.svn.url:/your.svn.path . 
$sh> svn ci -m "removed revision 1330" 

:あなたはremove.exampleしたいリビジョンの前に(ぬ) - 「」あなたが置くことによって否定構文を使用して「SVNのマージ」を使用する必要があり、既に提出リビジョンを元に戻すために、リポジトリを "-1330"に逆マージしてからチェックインして、あなたと他の開発者のために1330からの変更を削除してください。

ウィル

0

svn mergeを使用すると、非常に便利です。

svn merge -c n http://xxxx/xxx/xx 
関連する問題