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

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...

ER Master

JuJu の ラジペディアを聞きながら、久しぶりの投稿! 記憶が正しければ5月から一日も休日を頂いていない。 そんな忙しさです。 60日以上連続出勤。。。ありえない。 Mac で ER図を書きたくて色々探していたのだけど、ER Masterという Eclipseのプラグイン に落ち着きました。 直感的に使えるし、import、exportの機能もあり、とっても使える感じです。 ■既存の mysql の データベースからインポートしてER図を作るやり方 こちらから、JDBC ドライバを頂いて、どこでもいいので、どこかに置いておきます。僕は、Eclipse/Plugin ディレクトリに放り込んでおきますた。 http://dev.mysql.com/downloads/connector/j/5.1.html 初回インポートの時に使用するドライバを選択してと言われるので上記のドライバを選択。 その他、ER Master に関する情報は、 http://ermaster.sourceforge.net/index_ja.html で親切に教えていただけます。 ありがとうございます。