2009年4月11日土曜日

subversion - 変更の取り消し

コードの変更を取り消したい時はたぶん今後あると思う。
その時には、どうしたらいいのかなんてのは絶対に覚えておく必要はあるよね。

大きくわけて、コミット前とコミット後があるよね。
コミット前ならローカルの修正を元に戻せばいいけど、コミット後だと焦るよね。

1. コミット前
 ローカルの変更の削除
> svn revert

2. コミット後
最初に必要なのは、更新を実行して、リポジトリとの同期を確保する事。
 > svn update

続いて、変更結果を取り消すべきリビジョンを性格に特定する。
 これには、svn log と、svn diff が役に立つ。

 > svn log Contacts.java
> svn diff -r 26:27 Contacts.java

変更を元に戻すには、
> svn merge -r 27:26 Contacts.java .

この場合だと、r27の修正を取り消す様な指示をしている。

day.txt
r28: 中身を空っぽにする
data.txt
r29: 一番上を削除する

day.txtの修正を元に戻す

> svn merge -r 28:27 Day.txt .
> svn commit -m "z"

ここでのDay.txtの中身は?
 データが入ってれば、修正の取り消しが出来ている。
 データが入ってなければ、修正の取り消しが失敗している。
 データが入っていて、Data.txtの修正が消えていたら失敗

svn update -r[n]
r28の時点では、Day.txtの中身は確かにからっぽ

svn update
HEADに更新をかけると、Day.txtの中身が元に戻った。

0 件のコメント:

コメントを投稿