nDiki : ブランチ

2012年6月26日 (火)

今日のさえずり: 昆虫採集セットで注射した経験について共有できなかった

2012年06月26日

  • 09:26 UV っていったら座標軸だよね。
  • 09:40 屋上あがってみたい。 (@ 株式会社ミクシィ (mixi, Inc.) w/ 2 others) http://t.co/hoEtpkFM
  • 12:52 Git でリモートリポジトリから、(ブランチ名やタグ名じゃなくて)コミットを指定してとってくる方法がわからぬ。
  • 13:46 茅輪神事。 (@ 金王八幡宮 w/ 2 others) http://t.co/TAKMdurb
  • 13:50 @gnue どっかのブランチかタグの履歴上になくても clone で持ってこれるのかな。調べてみます。
  • 15:20 昆虫採集セットで注射した経験について共有できなかったので残念でありました。
  • 22:20 退勤。夕方のシュークリームで駆動中。
  • 22:27 @NetPenguin レモン電池よりは馬力出ます。
  • 22:39 タフマン、何編成走ってるんだろ。遭遇しすぎ。
  • 22:43 みんながイケてないって言ってるのに、イケてるようにならないのは何でかね。
[ 6月26日全て ]

2013年1月4日 (金)

CVS リポジトリGit リポジトリに cvs2git で移す

しばらく放置していたこの nDiki のコード(DiKicker)に手を入れようと思うのだけれど、CVS で管理し続けるのもなぁと思い、これを機会に Git に移行させることにした。移行は cvs2git で。ローカルで自分だけでバージョン管理していたものだし、ブランチも切ってなくてタグを売ってあるだけなので一番ちょろいケースか。

Debian GNU/Linux sid 上に cvs2svn Debian パッケージをインストール。以下の手順でコンバートした。

オプションファイルを作る

Git リポジトリ上できちんとユーザ名とメールアドレスが入るようにしたいため、オプションファイルを使うようにする。

 zcat /usr/share/doc/cvs2svn/examples/cvs2git-example.options.gz > cvs2git.options

でひな型をコピーして以下を書き換え。

  • ctx.username = 'cvs2svn' のところを naney に。
  • author_transforms に 'naney' : ('WATANABE Yoshimasa', 'naney@naney.org'), を追加
  • run_options.set_project で CVS リポジトリのパスを r'/home/naney/path/to/cvsroot', のように指定。

git fast-import 用のファイルを生成

以下のコマンドで。

 cvs2git --options=cvs2git.options

Git リポジトリを作成しインポート

 mkdir <プロジェクト名>
 cd <プロジェクト名>
 git init
 cat ../cvs2svn-tmp/git-blob.dat ../cvs2svn-tmp/git-dump.dat | git fast-import

で QGit や git log などで、どのようにインポートされたかを確認。trunk のラインから、タグ毎に分岐したコミットができてそこに CVSROOT/ 以下が差分として入っているという形になっているのが特徴的。CVSROOT/ は特にいらないので、数が多くないし手でタグ打ち直すかなあという感じ。

git fast-import したままだと作業ツリーが空なので git checkout して master を checkout するなりすれば、後は普通に Git 上でバージョン管理をしていくことができる。

あっさり移行できたので一安心。

[ 1月4日全て ]

2013年2月4日 (月)

今日のさえずり: デスクの上に片方土足を置いていたので「これは大物だ!」と思っていた

2013年02月04日

  • 07:38 “お前このサブネットでも同じ事言えんの? - 知らないけどきっとそう。” http://t.co/w3c4pLf1
  • 09:24 @y_aki 今後は Bootstrap あたりを使って、どのデバイスでも見やすくなるようにはしたいです。サイドバーは他人の Blog 見てる時に無意識に脳内フィルタリングしてるのでいらないかなあと。
  • 09:48 福は内。 (@ 株式会社ミクシィ (mixi, Inc.)) http://t.co/grL7yVGi
  • 10:07 いつもバッグに入っているクレジットカードと折り畳みバッグを今日は忘れた。帰りにスーパー寄る予定があるのに。
  • 10:12 今日は体調不良で2人お休み。昨日豆をまかなかったに違いない。
  • 15:37 いただきもののブランチに add 忘れられているものがあるっぽい。
  • 15:40 「個人の端末で無線 LAN を使えますか?」を「故人の端末で無線 LAN を使えますか?」と書き間違えていた。
  • 19:12 渋谷区2Fのポールンロボ。 / “花粉プロジェクト - ウェザーニュース” http://t.co/0Fx21bLs
  • 19:12 JASGAガイドライン及び運営体制基準を策定。 / “JASGA自主規制の概要” http://t.co/sSSAbllv
  • 19:27 Perl やっててよかったー。 / “Perlの食えない事情 - 演算子編 - アリ” http://t.co/i7pyFIPD
  • 19:27 “そりゃそうだ! iOS版公式『Tumblr』アプリのレーティングが17歳以上になる | NANOKAMO BLOG” http://t.co/TGRtlycg
  • 20:16 2月1日に入社した人がデスクの上に片方土足を置いていたので「これは大物だ!」と思っていたのだけれど、今日よく見たら靴型のペンケースだった。
  • 20:17 っていうか降る前に靴欲しい。
  • 20:42 “『Twitterカード』を設定してサイトへの流入数を「若干」増やそう!1万6742文字に渡る開発者向けドキュメントの日本語訳まとめ。” http://t.co/m1ZjsLQV
  • 21:29 @py0n 誕生日おめでどうございます!
  • 21:37 今日帰りにレジ袋を買わなければならないのか、口惜しい……。
[ 2月4日全て ]

2013年3月11日 (月)

今日のさえずり: 「再リスケ」より「リリスケ」の方がかわいいと思う

2013年03月11日

  • 08:49 Flipboard という Twitter リスト作った。
  • 09:17 振替輸送される。
  • 09:32 出社したら煙霧時間帯の負荷グラフ見る。
  • 09:39 今日はこっちの改札口。 (@ JR 渋谷駅 新南口) http://t.co/x1HdcdHz4H
  • 09:53 平常運転。 (@ 株式会社ミクシィ (mixi, Inc.)) http://t.co/KxMGqI2KMj
  • 13:25 ウルトラマン! http://t.co/2ibgaeX1x2
  • 13:25 ウルトラマン・オブジェクツ展「明日のヒカリへ」 (@ 8/02/CUBE 1,2,3) http://t.co/16n4HI7NEM
  • 13:32 ダダのパスケース売ってた。
  • 14:53 花粉のシーズンは昼に顔を洗うというのを忘れていて思い出したので顔を洗ってきた。
  • 20:07 入門Git p.215 「13.7.3.1. 上流が後になってようやく依存条件を満たした場合」上流リポジトリのブランチに必要だったコミットが入った時点で、その上にトピックブランチの内容をリベースしてやれば良いことになります。
  • 20:08 for 後ろの人
  • 20:15 2年前。 http://t.co/kzjuJzt8Hd
  • 20:19 「再リスケ」より「リリスケ」の方がかわいいと思う。
  • 24:42 1/31100 食べた。白いやつ。 / “3万1100個で作った「世界最大のおむすびアート」、渋谷でギネス達成 - シブヤ経済新聞http://t.co/Hnuu4Xs6YB
  • 24:44 @yosh8 早寝!
[ 3月11日全て ]

2013年4月16日 (火)

今日のさえずり: 3年目始めます

  • 07:58 2年前ぐらいの日記あげた。
  • 08:04 明日の「おかあさんといっしょ」録画予約した。
  • 09:51 3年目始めます。 (@ 株式会社ミクシィ (mixi, Inc.)) http://t.co/8NJXZ5ppCw
  • 10:19 チタンのスプーン・フォーク・ナイフを家から持参した。これで大丈夫。
  • 13:13 和文タイプライターライクなキーボードが完全普及したら、ブランチ日本語でも許すかも。
  • 13:26 picnic は高かった。 (@ お弁当の大臣) http://t.co/wvcKw0dMIz
  • 14:21 HK 変態仮面、TOHOシネマズ 川崎か。
  • 14:46 ユーザーサポートマネージャーの、この規模のCS部門の戦略立てられる経験てなかなか無いぜっていうセリフに惚れた。
  • 20:30 あした新卒懇親会があるのでひげ剃り買った。
  • 20:38 RT @nissen: あまり信じていただけないのですが、当アカウントは商品・サービスに関する通常のお問合わせも承っております。細かい確認が必要な内容や、お客様情報の照会が必要な内容はお客様窓口へお願いしておりますが、それ以外のことであればぜひお気軽にリプライくださいませ。スミス
  • 21:27 ここ数日マスク無しにしているけど、ちょっぴりアレグラで押さえきれないぐらいはまだ浮遊しているっぽい。
  • 21:43 「課題に対して、どう優先度をつけて解決に導くかを楽しみながらチャレンジできる方に来て欲しいですね。」 / “株式会社ミクシィユーザーサポート・健全化開発エンジニア 転職 求人情報” http://t.co/8tjNlN7h7t
  • 21:50 土曜日の夜に注文した Aterm、届くの6月2日から6月15日ぐらいかぁ。イーサーネットコンバータセットじゃなくて単品ずつで買うと2300円増しだけど明日には届いちゃうのでそっちにするかなぁ。
  • 22:04 注文しなおした。
  • 22:34 ISP も乗り換えようかな。So-net とかどうなんだろ。
  • 22:52 シェアでいくと OCN か。
  • 25:38 日記システムは「システムの寿命よりもデータの寿命を特に重視して設計されていなければならない」と個人的に思ってる。
[ 4月16日全て ]

2013年9月18日 (水)

今日のさえずり: トピックブランチに統合ブランチを安易にマージしちゃ駄目

[ 9月18日全て ]

2013年11月15日 (金)

今日のさえずり: 尻に入るノートを調達

2013年11月15日

[ 11月15日全て ]

2014年1月29日 (水)

git-new-workdir で複数の Git ブランチをチェックアウトして同時に作業する

Git のトピックブランチで開発している時に、他のブランチを同時にチェックアウトしておきたくなる事がままある。

  1. 割り込みで他の人のコードをレビューするため。
  2. 途中で別の不具合見つけたので、別トピックブランチで先に fix するため。
  3. 複数のブランチ上のファイルをつまみ食い的に Emacs で開いて中を見たりしたいため。
  4. 他の人に使い勝手などを確認してもらうため、あるブランチWeb サーバを起動したいため。

いったんテンポラリコミットを作ったり、あるいは stash したりして作業ツリーを保存してチェックアウトしなおして用事を済ませて元に戻すとかはやるのだけれど、ちょっと面倒。3番目のケースは同時にチェックアウトしたいのでこの方法だと駄目だし、4番目のケースだとしばらくそのままにしておかないのでもっと困る。

そのような時はローカルリポジトリから別ディレクトリへ clone して、そちらをサブで使ったりするんだけれど、サブの方でちょっと修正したりした際にローカル間で push/pull とかしなければならなくてこれまた面倒。

なんかいいのないかなと思ったら Git の contrib に git-new-workdir というのがあるのを昨日知った。

 git-new-workdir . ../sub
 あるいは
 git new-workdir . ../sub

で作業ツリーを新しく作れる。/tmp/git/main を /tmp/git/sub に new-workdir すると sub の方の .git の中は

 drwxr-xr-x 3 naney naney 4096  1月 30 00:37 .
 drwxr-xr-x 3 naney naney 4096  1月 30 00:37 ..
 -rw-r--r-- 1 naney naney   23  1月 30 00:37 HEAD
 lrwxrwxrwx 1 naney naney   25  1月 30 00:37 config -> /tmp/git/main/.git/config
 lrwxrwxrwx 1 naney naney   24  1月 30 00:37 hooks -> /tmp/git/main/.git/hooks
 -rw-r--r-- 1 naney naney  104  1月 30 00:37 index
 lrwxrwxrwx 1 naney naney   23  1月 30 00:37 info -> /tmp/git/main/.git/info
 drwxr-xr-x 2 naney naney 4096  1月 30 00:37 logs
 lrwxrwxrwx 1 naney naney   26  1月 30 00:37 objects -> /tmp/git/main/.git/objects
 lrwxrwxrwx 1 naney naney   30  1月 30 00:37 packed-refs -> /tmp/git/main/.git/packed-refs
 lrwxrwxrwx 1 naney naney   23  1月 30 00:37 refs -> /tmp/git/main/.git/refs
 lrwxrwxrwx 1 naney naney   26  1月 30 00:37 remotes -> /tmp/git/main/.git/remotes
 lrwxrwxrwx 1 naney naney   27  1月 30 00:37 rr-cache -> /tmp/git/main/.git/rr-cache
 lrwxrwxrwx 1 naney naney   22  1月 30 00:37 svn -> /tmp/git/main/.git/svn

のような感じで HEAD と index と logs/HEAD 以外はもとのローカルリポジトリへのシンボリックになっている。なので sub での checkout や index の Git 操作など以外は main の方へ反映されるようになっている。わざわざ push/pull しなくて良いのでこれは楽ちん。もちろん作業ツリーはそれぞれ独立しているので、例えばサブの方で Web サーバを起動しておいたり時間のかかるフルテストを走らせておくとかもできる。

ただ複数チェックアウトして作業していると、気がつくと Emacs で違うほうの作業ツリーのファイルを開いて編集していたりして「あれ? 変更したけれどなぜか反映されない……」とかやっちゃうので(実際やった)ちょっと注意が必要ではある。

git-new-workdir は contrib の中(Debian GNU/Linux sid だと /usr/share/doc/git/contrib/workdir/git-new-workdir)にあるみじかいシェルスクリプトなので適当に PATH の通ったところにコピーして実行権限を設定しておけば OK。

Git はこういうところがカワイイよね。

[ 1月29日全て ]

2014年12月20日 (土)

aufs で ro なブランチに書き込まれたかと思った

かなり久しぶりに aufs を使った Web サイトのドラフト作成をしようと思ってマウントしたのだけれど、なぜかスタックされた ro の方のディレクトリのファイルが書き変わってアレレとなった。

しかもディレクトリによっては rw の方にきちんと変更が書き込まれて、ro は変更されないようにきちんとなっている。

なんだろうと思ってしばらく調べた結果、一部のディレクトリはシンボリックリンクaufs でマウントした外のディレクトリを指していてアウトオブ aufs だったというオチ。ああ。

[ 12月20日全て ]

2022年2月9日 (水)

MkDocs でワーキングノートを GitHub Pages にデプロイし公開する

Markdown で書いているノートを「公開で作業する」というコンセプトで社内で公開するのに、 GitHub Enterprise Server (以下 GHE) の GitHub Pages を使ってみることにした。

静的サイトジェネレータ MkDocs には GitHub Pages にデプロイする機能が入っている。GHE 上のリポジトリに対しても問題なく動いた。

手順1: MkDocs をインストール

 $ pip3 install mkdocs mkdocs-material

手順2: GHE でリポジトリを作成

GHE 上で notes リポジトリを作成する。プライベートでも OK。

手順3: MkDocs プロジェクトを作成する

 $ git clone git@example.com:Naney/notes.git
 $ cd notes
 $ git config user.name 'WATANABE Yoshimasa'
 $ git config user.email naney@example.com

MkDocs 設定ファイルと Markdown ファイルは既存の Obsidian vault の中にそれぞれ置いておき、シンボリックリンクしておくことにする。

 $ ln -s /path/to/vault/Settings/mkdocs.yml

mkdocs.yml 内で以下を指定しておく。

 docs_dir: /path/to/vault/notes

手順4: MkDocs ビルトインサーバでどのようなサイトになるか確認する

 $ mkdocs serve

を実行し、 Web ブラウザで http://127.0.0.1:8000/ に接続しどのように表示するか確認する。

手順5: GitHub Pages にデプロイする

 $ mkdocs gh-deploy

を実行すると gh-pages ブランチ上に静的サイトが生成され、リモートリポジトリに push してくれる。 GHE のリポジトリ側も自動で gh-pages ブランチを GitHub Pages で公開するように設定してくれる。びっくり。 https://example.com/pages/Naney/notes/ が公開 URL になる。

あとは Markdown ファイルを追加・更新・削除したら必要に応じて mkdocs serve で確認しつつ、 mkdocs gh-deploy していけば良い。

やってみると思ったよりお手軽だった。

GitHub Pages は公開

プライベートリポジトリでも GitHub Enterprise Server の GitHub Pages サイトは公開となるので、組織内で限定公開するには境界型セキュリティに頼ることになる。ゼロトラストと考えるなら、漏洩してはならない情報を書かないよう注意して使うべきだ。

[ 組織内公開ワーキングノートサイト ] [ 公開で作業する ]

[ 2月9日全て ]

About

Naney Naneymx

Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。

※本サイトの内容は個人的見解であり所属組織とは関係ありません。

Process Time: 0.024321s / load averages: 0.21, 0.28, 0.29