Hatena::Groupptech

ぷちてく RSSフィード

Archive
 
ProfileProfile

2012-05-19

バージョン管理はコードの友達 コーダじゃなくても君の友達

04:01

どーもこんちわ。ボーッとじぶんブログみてたら突如脳みその神経回路がピシャーン!して、

「すごいこと気づいた!すごい!」 「なんかもうすごい!じぶんの気づかないっぷりがすごい!」

と感じたはなしでまんがでポエムで教養番組

「知ってる」≠体感する

まじで 「晴天の霹靂ってこういうときにあるんだ・・」 てしばらくジーンとした。こういうの もじゃパーマ自称脳ドクトル は 「アハ体験」とか「セレンディピティ」 とかいいたがるだろうけど、こういう言葉を見るとゲンナリグニョーンてなる体質なので、マネするのは追徴課税くらいにしておこう。たぶんこっちのもじゃもじゃ度が足りないんだとおもう

気づいた瞬間

の感覚にどれが近いかなコンテスト

ピコーン!
       |
   \  __  /
   _ (m) _ピコーン
      |ミ|
    /  `´  \
     ('A`)
     ノヽノヽ
       くく

ドクヲの表情はちがうなー もっと衝撃感ほしい

「うわっ…私の年収、低すぎ…?」

うわぁぁぁ…!私たちの報酬、低すぎ…?

http://seiga.nicovideo.jp/seiga/im1199185

え?違う意味でちがう?うーん

楳図かずおメソッド
         _____
       /;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;ヽ
     /;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;\
    /;:;:;:;:;:;:;:;:;:;:;:;(;:(ヽ;:|ヽ;:i;:;:;:;:;:;:ヽ
    /;:;:;:;:;ノノ;:ノヽ;:ヽ   ソヽ(ヽ;:;:|
    |;:;:;:;:/ ´ ー'" !  ! ::    レ:;:|
    |;:;:;:;L:: ,,.-ニニ'" !i ゙`ニニ-、:: 1;/
    ヽ;:;|  《 ● 》  《 ● 》/ニつニつ‐ニつ
    i'^、ヽ  '''''''''"",,  ""'''''/ // //ィ''´,.‐'つ
    ヾ υ   /  - -' ヽ. | '' '' '' ´,.-'´
     ヽー|  i /ニニニ'ヽ、!ノ  三三 ノー
       ヽ、 ヾヽ(∨) r'"_   _,..ー'//
   --―/ ヽ、゙`-ニニニ-(_ノ `Tー-'" ノ
      /  |ヽ` ̄  ̄/|   |ヽ< _ _
    //\| ヾー―ノ |/\」 ヾ`ヽ_
     ̄   /       ヽ     |

ギャッ・ギャーッ」系。ちかいちかいかなりちかい

みんな大好きはてなちゃん(みたいな子)

このままだとコンテストでおわりそうなので、ささ、はじめよう

わ、わたし日記のバックアッ... - 告白 - はてなセリフ

http://serif.hatelabo.jp/90712b3fd0b38bc34a0ee530ea589fc055926256/d41dabc7508f5e9a57a4780490ad4b8f221215da


ジョエル教の彼に合わせてたのに・・

「どうして・・? わたしだってバージョン管理システム(VCS)ガンガン使ってるのに・・#1なんか当然パスなのに・・ひどい・・こんなのひどすぎるよ・・」

最後のはあんまり関係ないんだけども

「日記バックアップってなに?」

はてなダイアリーには日記のエクスポート機能がある。アカウント名.xmlとかでエントリ全部出せる。たぶん大抵のブログにあるとおもう

CSS・ヘッダ・フッタのHTMLバックアップ機能が無いから自分でテキストファイルとかに保存する必要がある

本来移行用とかだと思うけど、デザインとかHTMLとかエントリいじって事故ったときにとっておくといいかんじ。特にCSS

はてなちゃん(みたいな子)のやり方

コマンドプロンプトtree /fしてみるとこうなる。VCS使ったことあるひとはジョエル信者の彼になんでフラれたかもうわかるよね

>tree /f
フォルダ パスの一覧:  ボリューム Hatena
ボリューム シリアル番号は XXXX-XXXX です
C:.
│  gist_embed.css
│  NicoliveParts.html
│
├─kss
│  ├─2011-06-06_132533
│  │      design.css
│  │      footer.html
│  │      header.html
│  │      noromanba.csv
│  │      noromanba.txt
│  │      noromanba.xml
│  │
│  ├─2011-10-04_164029
│  │      design.css
│  │      footer.html
│  │      header.html
│  │      noromanba.csv
│  │      noromanba.txt
│  │      noromanba.xml
│  │
│  ├─2011-11-03_103608
│  │      design.css
│  │      footer.html
│  │      header.html
│  │      noromanba.csv
│  │      noromanba.txt
│  │      noromanba.xml
│  │
│  ├─2011-11-09_184013
│  │      design.css
│  │      footer.html
│  │      header.html
│  │
│  ├─2011-11-10_042007
│  │      design.css
│  │      footer.html
│  │      header.html
│  │      noromanba.csv
│  │      noromanba.txt
│  │      noromanba.xml
│  │
│  ├─2011-11-28_023752
│  │      design.css
│  │      header.html
│  │      hooter.html
│  │      noromanba.csv
│  │      noromanba.txt
│  │      noromanba.xml
│  │
│  ├─2012-01-13_025931
│  │      design.css
│  │      Footer.html
│  │      Header.html
│  │      noromanba.csv
│  │      noromanba.txt
│  │      noromanba.xml
│  │
│  ├─2012-02-05_110307
│  │      design.css
│  │      footer.html
│  │      header.html
│  │      noromanba.csv
│  │      noromanba.txt
│  │      noromanba.xml
│  │
│  ├─2012-03-15_050124
│  │      design.css
│  │      footer.html
│  │      header.html
│  │      noromanba.csv
│  │      noromanba.txt
│  │      noromanba.xml
│  │
│  ├─2012-03-28_044210
│  │      design.css
│  │      footer.html
│  │      header.html
│  │      noromanba.csv
│  │      noromanba.txt
│  │      noromanba.xml
│  │
│  ├─2012-04-01_175822
│  │      design.css
│  │      footer.html
│  │      header.html
│  │
│  └─_2010
│      ├─20100609
│      │      css.txt
│      │      footer.txt
│      │      header.txt
│      │
│      ├─20100618
│      │      CSS_20100618144934.txt
│      │      Footer_20100618112703.txt
│      │      Header_20100618112707.txt
│      │
│      └─20110414
│          │  CSS_20110414063641.css
│          │  Footer_20110414063709.html
│          │  Header_20110414063727.html
│          │
│          └─Entries
│                  noromanba.csv
│                  noromanba.xml
│                  noromanba_MT.txt
│
├─lab
│  └─2012-03-28_044138
│          design.css
│          export.xml
│          footer.html
│          header.html
│          noromanba.csv
│
└─ptech
    └─2012-03-28_044149
            design.css
            footer.html
            header.html
            toppage.html

そう、そうなんだ、そうなんだよ!これだってコードと同じでプロジェクトなんだ。それにいまさら気づいたはてなty・・いやぼくなんだけども は衝撃をうけたんだ。CVSVSSSVNGit その他モロモロ VCSとお友達だったはずなのに

バックアップ頻度少ない & ファイル名ほぼ任意だし、日記データ管理はこれでいいと思ってた。でも違う、これは差分モデルだ。スナップショットだ。

――と、モデルに気づくのってすごいひらめきが必要で難しいんだなー っていうすばらしい体験をした

「プロジェクトっぽさ」

もしかしてわからない人もいるから あげておこう

ほとんどファイル名が同じ

だからVCSに突っ込みやすい。入れててよかったCygwin なコマンドでやってみるよ。なに?日本語でおk

バックアップディレクトリ以下のサブディレクトリを含む全ディレクトリからファイルのみ検索して同ファイル名は大文字小文字の違いを無視してまとめて表示」

日本語長すぎでなんか意味わからないけどOK?

>find -type f -printf '%f\n' | sort | uniq -i
css.txt
CSS_20100618144934.txt
CSS_20110414063641.css
design.css
export.xml
footer.html
footer.txt
Footer_20100618112703.txt
Footer_20110414063709.html
gist_embed.css
header.html
header.txt
Header_20100618112707.txt
Header_20110414063727.html
hooter.html
NicoliveParts.html
noromanba.csv
noromanba.txt
noromanba.xml
noromanba_MT.txt
toppage.html

で、ファイル名に日時付いてるやつとか名前が違うだけなの省くと、これしかない。日時も変更も全部VCSが飲み込んでくれる

design.css
footer.html
gist_embed.css
header.html
NicoliveParts.html
noromanba.csv
noromanba.txt
noromanba.xml
toppage.html

最終的に管理するファイル数がこんなもんになる。ブログごとに分けて多少増えるけど、いままでのものすごいフォルダとファイル数より全然いいよね

目当ては過去のスナップショット

ブログバックアップした上でやりたいことは

  • 何かをいじって失敗したから安定してたやつから書き戻したい
  • 前使ってたデザインとか見て今のに反映させたい

とか、何かしらのチェンジセットがあればいいだけ。まさにVCSのコンテンツ

Git

1人づかいでブランチ・タグなしでもSubversionと比較すると

  • 軽め
  • metadataがトップディレクトリだけにおかれる*2
  • ignoreの編集がテキストだからラク
    • .gitignore。svn:ignoreはバイナリだった気がする。TortoiseSVNでいじったりとかコマンド叩いたり・・は、したっけ

ってかんじで個人リポジトリでももうやっぱGitの方がいいなー

そんなかんじでしーゆー

*1:いつのまにかサーバ復活おめでとー

*2:ように見えるけどちがうかも?

トラックバック - http://ptech.g.hatena.ne.jp/noromanba/20120519