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

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はつながらないです。

Mountain Lion に php の extension memcache をインストールする

memcacheしてみよう。 CentOS6 でmemcacheの仮想サーバをたてたので、 僕のMacでPHPを動かしてmemcacheサーバを利用する。 そのためにphpの拡張モジュールのmemcacheをインストールする。 memcacheは、pecl からインストールします。 PECLとは「The PHP Extension Code Library」の略で,C言語などで記述された拡張ライブラリです。 よく耳にする、一度は使ってみたいパッケージが結構あるです。 ちなみにPEARはPHPスクリプトによる拡張ライブラリです。  ① install-pear-nozlib.phar を実行して pear をインストール  cd /usr/lib/php/ php ./install-pear-nozlib.phar bash-3.2# php ./install-pear-nozlib.phar [PEAR] Archive_Tar    - installed: 1.3.7 [PEAR] Console_Getopt - installed: 1.3.0 [PEAR] Structures_Graph- installed: 1.0.4 [PEAR] XML_Util       - installed: 1.2.1 [PEAR] PEAR           - installed: 1.9.4 Wrote PEAR system config file at: /private/etc/pear.conf You may want to add: /usr/lib/php/pear to your php.ini include_path ②  php.ini に追記 cd /etc cp php.ini.default php.ini vim php.ini include_path = ".:/usr/lib/php/pear"  を追記 ③ アップデート pear channel-update pear.php.net pecl chan...

Hard days holiday !!

幼子を育てる世の中の母達は本当に偉大だと思う。 子供は、大人を幸せにする宝の様な存在だが、 大人を疲れさせるスペシャリストでもある。「大変と充実は比例する」のだが 大変な最中は大変なのだ。そんな事を考える余裕はない。 幼児は基本的にされると困る事をする。 「それだけはしないで」と言う事をする。例えば、 電車の中で奇声を発する。 人ごみのなかで姿をくらます。 こちらの疲れがピークの時に泣く。 一度泣くと泣き止まない。 そしてベビーカーがないのに寝る。 こける。 外でハイハイする。 立ち入り禁止の場所に入りたがる。 車が走っている道路へダッシュする。 目立つ事をする。 こぼす。 油まみれの手で触ってくる。 etc  つまり、すごく大変なのです。 そんな子供達を相手にしながら、マルチでアレもこれもこなす ママさん達は本当にすごい。 涼しい顔でサポートするママさんのママさんもすごい。貫禄を感じる。 そして、今日思った事は、同時にパパさんもすごいという事だ。 ママさんの手足になり、まさに「問答無用」の嵐を今日も受けて立つ。 人類の「宝」の守り神は「母」なのです。パパは本能的にそれをわかっているので すべてぐっと飲み込むのです。偉いのです。 パパさんも偉大なのです。 陰の戦いです。労い、賞賛、ご褒美などあまり有りません。 健気です。 大事なのは、これを糧にできる器と、 ストレスを溜め込まない賢さです。 でも、たいてい子供の寝顔が全て帳消しにしてくれるのです。 連休などは、全国どこでもこんな感じですよ。きっと。 吹奏楽の演奏会を鑑賞。 エグザンティアのタイヤを履き替えました。 306のタイヤをはいてみました。なかなかいいねぇ。 スポーティーな感じもたまにはいいかもね。 都内某所で奇跡の並列駐車。