16

'svn copy'を使用してトランクをコピーして、誤って古いブランチを上書きしてしまいました。より具体的には、リリースごとに、トランクは分岐され、タグとして保持されます。

svn copy svn://machine/REPOS/trunk svn://machine/REPOS/tags/$RELEASENR

ただし、今回の「RELEASENR」の値は、新しいブランチではなく、古い既存のブランチの値でした。誰かがこの間違いを元に戻す方法について何かアイデアがありますか?すでにありがとう!

4

3 に答える 3

18

Subversion はそのようには機能しません。実際には上書きしていません。コピーまたは移動のターゲットが存在し、それがディレクトリである場合、コピーまたは移動されたアイテムはそのディレクトリに配置されます。

svn copy svn://machine/REPOS/trunk svn://machine/REPOS/tags/EXISTS_ALREADY

見ると、次のことがわかるはずです。

svn://machine/REPOS/tags/EXISTS_ALREADY/trunk 

これは、タグ付けしようとしたトランクのコピーです。この場合の修正は簡単です。

svn mv svn://machine/REPOS/tags/EXISTS_ALREADY/trunk \
       svn://machine/REPOS/tags/CORRECT_TAG_NAME

(あなたが *nix に精通していない場合: \ は、水平スクロールバーを過労から守るために、1 つの論理行を 2 つの物理行に分割したことを意味します。)

于 2009-04-07T09:20:10.273 に答える
4

元に戻すには

svn cp OLDFOLDER NEWFOLDER

変更がまだコミットされていない場合は、そのまま使用してください

svn revert NEWFOLDER --depth=infinity
于 2014-11-12T10:32:10.423 に答える
2

以前のリビジョンにマージして戻すことで、最後のリビジョンを元に戻すことができます。http://anilsaldhana.blogspot.com/2007/11/svn-undo-change.htmlを参照してください

svn merge --revision 92:91 .

そしてコミットします

于 2012-01-03T23:27:06.007 に答える