2012-05-01 6 views
3

に加えられた変更をコミットし、何とか私はそれを把握することはできません。SVNこれはシンプルであるべき古いリビジョン

私は最後から改正、のはHEADがである(リビジョン100を言わせに更新します101)、次のようになります。svn up -r 100。それから、私はいろいろな変更を加えましたが、修正されたファイルをリビジョン102としてチェックインするようにしました(必要ならば101に戻ることができます)。それ、どうやったら出来るの?もし私が単にsvn commitを行うと、私は "期限切れ"というエラーが出ます。私はsvn upのいずれかの古い(HEAD(101)の変更が戻って来ないようにするために古いものを修正することはできません...)

+0

Subversionはこのように動作するようには設計されていません。 –

+1

OKですが、これは一般的な使用例でなければなりません...私は100%で動作しない変更を行いますが、将来参照するためにコミットして、別の場所から古い状態に戻したいパス。何か案は? – pholz

答えて

3

変更したファイルを一時フォルダに保存します。バックアップのためにローカルリポジトリの名前を変更します。新しいローカルリポジトリを作成します。コードの変更を一時フォルダにコピーされたファイルにペーストします。コミット。

コミットする前にKDiffを実行して、すべての変更が正しいことを確認したい場合があります。

これは、この問題を解決するのに役立ちます。以前の変更を元に戻すためにコミットするには

+0

いくつかの奇妙な理由から、 'svn merge'はうまくいかなかったので、この提案は本当に便利です、ありがとう。 PS:貼り付ける前に新しいローカルリポジトリの.svnフォルダを削除する方が安全だと思います。 –

2

、あなたがsvn mergeを、使用すべきではないsvn up

代わりのsvn up -r100、HEADリビジョンをチェックアウトして、同じ内容になりsvn merge -c -101 .

を行いますあなたのローカルファイルが、コミットする前にSubversionはリビジョン101の変更を再適用しようとしなくなりました。

the svn manual on undoing changesも参照してください。

+0

ありがとう、私は将来そのようにします。 CMcClendonの答えは、すでに行われたダメージのために働いた。 – pholz

関連する問題