質問: ♡o。.。o♡o。.。o♡o。.。o♡o。.。o♡o。.。o♡o。.。o♡o。.。o♡ XcodeのSCMリポジトリに登録したsubversionをXcodeの中から操作しています。 本当はGUIでrevision番号を指定して、戻りたかったのですが、方法がわからなかったので、ターミナル上で実行してみました。 Xcodeはそのまま開いたままです。 下記コマンドを執行した後、 svn update --revision 9 svn up svn update -r9 xcode上でもupdateしてみたのですが、 最新のまま、前のバージョンに戻す事ができませんでした。 どうすればいいのでしょうか? よろしくお願いいたします。 よろしくおねがいします٩(๑❛ᴗ❛๑)۶ ♡o。.。o♡o。.。o♡o。.。o♡o。.。o♡o。.。o♡o。.。o♡o。.。o♡
回答: GUIは使ったことがないので、svnコマンドで説明します。 『Subversionによるバージョン管理』第4章「典型的な利用方法」「ブランチとマージ」に「変更の取り消し」という、まさにそのものの説明があります。通常のマージは、よそのブランチの更新差分を自ブランチに適用するものですが、「変更の取り消し」では、自ブランチ**自身**の更新差分**の逆**を自ブランチに適用します。 たとえば、自ブランチのURLが`file:///repo/proj/trunk/`で、リビジョン`9`に戻すとすると、自ブランチをチェックアウトした作業コピーに対して次の手順を実施すればいいでしょう。 ``` $ cd 作業コピーのルート $ svn update # とりあえずHEADにアップデート $ svn merge -rHEAD:9 file:///repo/proj/trunk/ # r9からHEADまでの変更*の逆*をマージ # 衝突 (conflict) が生じたらここで直す $ svn commit # マージ結果をコミット ``` これで、リポジトリの新しいHEADの内容はリビジョン9の内容と同じになりますので、Xcode側でも、updateすればその内容に更新されるはずです。 なお、この手順でリポジトリに加えた変更は取り消せません (リポジトリというのはそもそもそういうものですが)。もしもマージや衝突の解消といった作業に不慣れなのでしたら、リポジトリのバックアップを取っておいて、失敗しても元にもどせるようにしてから実施するといいかもしれません。