スキップしてメイン コンテンツに移動

SVNでロールバック

たまにしかやらないのでいつも思い出せない。
今日はメモっておこう。


作りきってリリースするつもりだったので 作成途中でソースを大量にコミット。が、 割り込み作業やら、スケジュール変更やら何やらで、 まだ完成してないのに、今すぐSVNのソースをWebサーバに適用せねばならないシチュエーション、たまにそんな事ありませんか?


しかも他の人が修正した分だけ適用しなきゃならん状況です。 
もちろん、現状、Trunkには僕の作成中のソースもたくさんあがっているからそのソースだけ除外して、それ以外をWebサーバに適用するのです。面倒きわまりない!


① コマンド svn log で表示したコミットログを目視で確認しながら、あげちゃぁだめよのソースをピックアップ。


svn log -v -r1234:HEAD
※ rev1234が自分が手を入れる直前のrevision 


これだとすべてのログがでるので自分の物だけにしぼるため、
テキストに吐き出そう。 
svn log -v -r1234:HEAD > svnLog.txt 
そして、自分のコミット以外の情報を除去。svn log って名前で絞り込むオプションってないのかしら?


② ①でピックアップしたソースが自分がコミットした後に他のメンバーがコミットしていないか確認。 


面倒だけど、ファイル一個ずつ svn log でコミットログを確認。
svn log -r1234:HEAD /aaa/bbb/file.php
ここで他のメンバーの名前が出てきたら、revision をメモっておく。
※次に行う作業でローカルのソースが上書きされるのでバックアップをとっておく。 


➡他のメンバーも直していたら、svn merge ③へ


➡自分だけが直していたら、svn export ④へ


③rev 1235 で僕が直していて、rev 1239 で他のメンバーが直していたら、 
svn merge -r1235:1234 /aaa/bbb/file.php
これで1235 の変更が 1234 に戻ります。
こうすると1239の変更は戻ったりしません。


④rev 1236 , 1240 で自分だけが直している場合、 
svn export -r1234 /aaa/bbbb/file.php /aaa/bbbb/file.php 
とやって対応前のソースで現在のソースを上書きします。 


こんな感じに対応。


svn diff とやると見事に対応した部分が戻るように差分がでます。 
差分をちゃんと確認してコミット。 


ちなみに、rev 1241 で僕がなおして、rev 1242 で 他の人がなおして、rev 1245 でまた僕がなおしたなんてソースがあると、 楽にロールバックするにはどうすればいいの?って感じです。rev1234 に戻したあと、1242をマージかな? 
そんなケースが出たときにまた。


ちなみにもっとスマートな方法ありましたら是非教えてくださいませ。

コメント

このブログの人気の投稿

iphone アプリ 「RPS」を使ったテザリング

■iphone アプリ 「RPS」を使ったテザリング。 先ずは、Mac と iPhoneのアドホック接続します。 アドホック接続とは、端末同士の接続という意味です。 ①  Wifi のマークをクリック。 すると「ネットワークの作成」があるのでクリック。   ②  「RPS」というネットワーク名で新規作成します。 ③ System Preferences の Network をクリック ④ Advanced.. をクリックし 「TCP/IP」タブを選択 ⑤ IPv4 Adress に 13.37.13.10 と入力する。 ⑥ Subnet Mask に255.255.255.0 と入力する。 ⑦ iPhone の設定で Wifi の設定を行う。 先ほどMacで作成したネットワーク「RPS」が 表示されるので選択する。 ⑧ iPhone で 「RPS」を起動。 はさみ、石、紙の順にタップした後に左上をタップする。 ⑨ Tethering を 「ON」にする。 すると IP Addressが表示されます。 ⑩ ③④の手順で Proxies タブを開き、 左側のリストの「SOCKS Proxy」にチェック。 そして右側のSOCKS Proxy Server の IP Address に ⑨で表示された IP Address 「169.254.250.25」 と ポート番号 「1080」を設定する。 OK をクリックし、Apply をクリックするとその時点から Tethering が始まる。 来年からは正式なテザリングサービスが始まるので、 そうしたら、 RPSもいらなくなりますね。 ※本記事は著者のメモです。一切の責任は負いかねます。 ※ 理由は調査していませんが、テザリング時、skypeはつながらないです。

MacBook Pro 15-inch, Mid 2010. Change Strage

メモリを8Gに増やした次の日にHDDをSSDに交換したのに、 忙しくて書けなかった。 今日こそは書く。 えーっと。思い出せない。 そうそう。物はメモリと同じ SAMSUNG にしました。 色々見た結果速度も早いし、メモリと同じメーカーという事で決めました。 値段はソフマップが一番安かった。 SSD は Solid State Drive の略名で HDDと比べるとほとんどメリットしかない。 寿命が短いらしい事と値段が高い事が唯一のマイナス要素だけど 使い始めるともうHDDには戻れないです。 1、2年後にはHDD搭載のPCは店頭から消える気がする。 交換に関する情報はたくさんあり、それほど大変ではなかった。 ちなみに、この度の交換にあたり、シリアルATAという言葉を覚えた。 HDDやSSDを接続するためのインターフェースの規格。 記憶が確かなら僕のマックはSATA2.0 で最大通信速度が3G/秒だったと思う。 SATA3.0という規格もあるらしく、こちらは最大通信速度が6G/秒だったと思ふ。 購入した SAMSUNGのSSD ( MZ-7PC128B )の仕様は、SATA 6G/s 、 最大読込速度 520MB/s 最大書込み速度 320MB/s という情報があったので、 秋葉館に質問電話をしたところ、 「 SATA2.0のPCにも使う事ができるが、速度は半分になると考えてくださって結構です。」 と迅速かつ丁寧に答えくれたその声から、 自信とプライドを持ち合わせているスタッフさんであると感じる事ができた。 driveを固定していた部品をはずしHDDを取り出す。 ⇩SAMSUNGのSSD ( MZ-7PC128B )の裏側。 ⇩SAMSUNGのSSD ( MZ-7PC128B )の表側。 ⇩SAMSUNGのSSD ( MZ-7PC128B )を装着。 ⇩SAMSUNGのSSD ( MZ-7PC128B )を固定用パーツで固定。 バックアップの復元の方法もたーくさん情報あ...

Safari 6 Webインスペクタ

safari を 6 にバージョンアップしたら、 結構使い勝手が変わってるので最初は戸惑いましたが、 ようやく普通に使えるようになってきた。 よく使う機能だけまとめます。 ■ 一番最初にやっておいた方がよい事。 ➡ スクリプトのデバッグを止める。  デフォルトで、All Exceptionsのタグみたいなマークが「On」の状態(濃いブルー)になっているので、「Off」の状態(淡いブルー)にする。⬇写真参照 こうしておかないとスクリプトエラーがあった場合に問題箇所でブレークして画面の読み込みが終わらない。 ■ 続きまして、使用頻度の高いものとしてコンソール。 左の吹き出しをクリックし、Current Log を選択すると右側に コンソールエリアが出ます。 ここで、console.log()でデバッグした値が見られます。 ■ あと、サーバからのResponse 情報はよく見ますね。 左側にある「時計」マークをクリックすると Network Request が出てきます。それを選択し、「Recording ◯ 」をクリックすると リクエスト、レスポンスの記録を取ります。 Name の列にリクエスト情報が表示されます。 ここをクリアしたい場合は、「Recording ◯ 」をクリックして記録を止め、再度クリックして記録をスタートさせます。そうするとクリアされます。 Name 列のリクエスト情報にマウスオーバすると➡マークが出るのでそれをクリック。 そうするとResponse情報が見れます 。 Ajaxで通信してる時など便利ですよね。 ■ 要素の検証 左側の「書類」をイメージさせるマークをクリックしすると下に現在のページのURLが あるのでそれを選択する。 するとHTMLが表示されHTMLソースの右上に「人差し指をたてた」様なマークがあるのでそれをクリック。 そうすると画面上で要素を選択できる。 CSS情報の見え方は旧バージョンの方が全然よかった。 現状では、CSSのファイル名などをスタイル情報と一緒に右側のエリアに表示する方法が分からないー。