Windowsで、Gitのリモートリポジトリをローカルフォルダーに置く
以下のようなとき、この方式の使いでがあると思うからメモっとく。
- リモートリポジトリのしくみを学習中だったり、WindowsのLAN内で完結する作業で、わざわざGitサーバーを置くほどでもない場合。
- またはGitHubとかクラウドのリモートリポジトリが会社のポリシーとかで禁止されてる場合。
自分はリモートリポジトリの学習するときもっとワンタッチでリモート置けないかと思って調べたらこの方式があった。今までGitHubべったりでちゃんと学習してなかった。
せっかくなのでサンプルケースを設定し詳細手順を
サンプルケースと手順の概要
ここではサンプルケースととしてC:\dev_repo 以下にローカルリポジトリとリモートリポジトリを作る。そしてローカルでやった作業をリモートにpushするまでをコマンドで示します。
※dev_repoフォルダーはもう存在してるつもり。
次の7手順がこの記事に書くすべて。
↑の詳細手順
まずコマンドプロンプトを起動。
1.
C:\> cd dev_repo C:\dev_repo> md test
2.
C:\dev_repo> cd test C:\dev_repo\test> git init
3.
C:\dev_repo\test> echo hello,world > hello.txt C:\dev_repo\test> git add . C:\dev_repo\test> git commit -m "initial commit"
4.
C:\dev_repo\test> cd.. C:\dev_repo> md test.git
5.
C:\dev_repo> cd test.git C:\dev_repo\test.git> git init --bare --shared=true
6.
C:\dev_repo\test.git> cd ..\test C:\dev_repo\test> git remote add origin file:///c:/dev_repo/test.git
7.
C:\dev_repo\test> git push -u origin master
ローカルフォルダーにリモートリポジトリができました。めでたしめでたし
_ \ヽ, ,、 _ `''|/ノ \`ヽ、| \, V `L,,_ |ヽ、) ,、 .| ヽYノ / r''ヽ、.| / ,.. -──- .、 `ー-ヽ|ヮ .| , ‐'´ __ `ヽ、 `| | / , ‐'"´ ``''‐、 \ | | / / \ ヽ | ヽ, y' /` ‐ 、 ,.. -'ヘ ヽ. }ノ ヽ,' / /`,ゝ' ´ ヽ Y. . i ,' { { ヽ `、 l ,イ─- 、.._ ヽ ,, _,.. -─:} ! . | r‐i| ー=ェェ:ゝ ,.∠ィェェ=ー' |r 、. l | {ト」l|. : | " ``: |!トリ | . │ ヽ、| ;.」_ |'ソ ! . │ ヽ r──ッ /ノ | | lヽ  ̄ ̄ / イ │ . ! 丶ヾヽ ~ , ' ノ │ ! ト. ミ.ゝ ヽ.____./ / l / ヽ ヽ イ ,' / , ' ┼ヽ -|r‐、. レ | \. ノレ'/ d⌒) ./| _ノ __ノ
ActiveRecordでDB更新したらログ吐かせたい
データの変更とか追いたいから、モデルがsaveされる(DBが更新される)ごとにログ吐くようにする。
以下2手順にて実現
1.モデルの共通的なベースを作る(前準備)
2.ベースのafter_saveフック内でログを吐かせる(やりたかったこと)
もっといい方法あるかもし、このやり方がうまげって保証無し。
手順1.モデルの共通的なベースを作る(前準備)
まずモデルにアプリ内で共通的に使う拡張機能を付ける。
このやり口はやっとくと便利な取り組みだと思ってる。開発とか数件しかしたこと無いけど。
ここでやることは2種類
concernという仕組み使ったモジュールを書き、これをアプリの標準的なモデルに取込ませる。
やること1.concern例:
共通の機能はActiveSupport::Concernを継承したモジュール書いてそれにメソッドとか定義。
models/concerns/regular_model.rb
# このアプリの共通的なモデル拡張 module RegularModel extend ActiveSupport::Concern def common_method # 何か共通的な処理 end end
やること2.model側の取込み例
modelのコードに以下の「これ」を追加。→ concernで定義した機能をmodelが持つ!
class Unko < ActiveRecord::Base # ↓これ include RegularModel end
手順2.ベースのafter_saveフック内でログを吐かせる(やりたかったこと)
先にコード例。そのあと補足1点。
models/concerns/regular_model.rb
# このアプリの共通的なモデル拡張 module RegularModel extend ActiveSupport::Concern included do after_save :after_save_log end def after_save_log logger.warn "#{Time.now.localtime.strftime('%H:%M:%S')}に#{self.class.name}が更新されました。" # ← ログ出力 self end end
補足1.includedてなんなの
ペラペラのモデルにフック書くなら
after_save :method_name # メソッド名シンボルを書く
でいいはずなのだけども、この方式はそのままconcernには持ち込めない。
includedで囲ってやる必要がある。
ruby on rails - Is it possible to define a 'before_save' callback in a module? - Stack Overflow
included do after_save :method_name end
複数のWebページを巡回して自動でスクショとりたい
CrenaHtml2jpg というソフト
Windows環境下で手早くて有用そう。
GUI、コマンドラインからWebページのスクリーンショットが取れる。
作業を楽にするため、コマンドライン用に自動化バッチファイルを書いた
自動化ソフトの更に自動化。
getss.bat
@echo off setlocal for /f "tokens=1,2 delims= " %%a in (url.txt) do ( CrenaHtml2jpg -o%%a -fjpeg -w1920x1080 -s1920x1080 -l5 -p -q92 -t25 -u%%b ) endlocal exit /b
バッチ使い方
getss.bat と 同じフォルダーに url.txt というのを置いて、
1.jpg http://www.yahoo.co.jp 2.jpg http://www.google.co.jp
みたいな感じで画像ファイル名+半角スペース+URLを記述して保存。
> getss.bat
課題
ログインを要求するサイトには何か別のしくみがひつようなのかな
参考にしたサイト
はてブにMyベストタグを作った
あとで読み返してすごがるとかうけるために「○○Myベスト」というタグを置いた。それだけです。
たとえば雑学とかエロとか。
はてブの読み返したさを管理するいい方法ないかなー。。
雑学Myベストに関するkiyo_hikoのはてなブックマーク
エロMyベストに関するkiyo_hikoのはてなブックマーク
Rubyでゼロ埋め文字列 (printf %0s的な何か)
なんとなく必要になって書きました。
def printf_0n(n, str) n <= str.length and return str "#{1.upto(n - str.length).map{0}.join}#{s}" end
旅行(2) 計画2~広島旅行前半
年末年始の広島旅行記
旅程の計画は画像のようになった。
計画してすぐ出発したから、既に旅程の半分ぐらいに差し掛かりつつある。
10連休ぐらいあれば1週間ゆっくり止まりたかったけどさほど日数がなく、4泊の行程でただいま2泊めである。
旅程の計画の画像
日程に関わる部分だけ抜粋
前半の行動と感想
初日:12/31
初日は朝、モサッと起きてのぞみ乗って広島駅に降り立った。
着いたのが14時ぐらいであるが、ホテルのチェックインは15時であることが事前にわかっており、本当はそれに合わせて着きたかった。
新幹線予約がギリギリだった弊害である。なるべく早く予約しないとダメだな。。
暇つぶしにいきなりゲーセンに行く(ダメ人間)。
その後駅至近のホテルにチェックインし、夕方市内散策。
徒歩で白鳥→広島城→原爆ドーム→平和記念公園と歩き回り、アーケード街のフタバ図書で買い物したりして帰投。
あと路面電車って歩行者的にはどう相手をすればいいのかわからなくてビビっていたけど、だいたい車と同じような感じで信号で停まったり?していたし特に気にしなくていいことわかった。広島市街を3時間ぐらい歩いた。
漫才とかクイズサバイバーとか笑ってはいけないシリーズ見たりしてゲラゲラしてたら年が明けた。めでたい。
ベッドで気がついたら寝ていた。
2日目:1/1
尾道行くつもりだったが午前中超寝てしまって行動開始タイムとか13時だったし呉に行くことにした。
往路はgoogle:image:227系でかっこよかった。
歴史の見える丘に徒歩で行って大和ミュージアム見学してフラフラしてた。展示内容が充実しすぎてて午後から行くと全然時間足りないこと判明した。
駆け足で回ってしまい、いつかちゃんとフルでみたい。
- 企画展示で写真技術とかやってた。
- ベスト・ポケット・コダックとか国産のコピー製品?とかあった
- 呉の歴史とか見た
- 金剛の缶?とかあった
- 艦船模型いっぱいあった。高雄。ちょうど夕日が差して、壁に艦橋のシルエットが映ってかっこよかった。
- 1/10大和
- 人との比較でスケール感
あと歴史の見える丘行ったらDDH-182「いせ」が見えた。
そのあとフタバ図書で本見たりしていた。クルーズとかあったけど行けなくてショックを受けた。
帰りは黄色い各駅停車で帰った。呉駅のホームが超寒かった。呉市街+ミュージアムと緑地?を4時間ぐらい歩いた。
夜になったら脚にガタが来てて辛くなった。モウ歳なんで今後旅行とかあれば歩く距離とかも検討する必要がありそう。
あるていどゲーセンで遊んで帰投。
旅行(1) 計画1
帰省とか考えなくていい天涯孤独な独身のうちに年末年始使って旅してくることにした。
旅程を練っており、そのとき考えたことの記録。
30日になってから計画立て始めたので即席の雑なプランだけど、先月の株式売却益が10万程度あるし、あるていど金で解決できそう
計画前構想
コンセプト:行ったことのない大阪以西の本土に行きたい
(中学高校の修学旅行で行った京都が今まで行った本土の西の限界な模様)
- 予算:8~10万円程度
- 行先:広島
計画たて中:寄り道する?
など、もやりもやりと考えてルートを勘案してみたら、2つの候補になった:
…。
もともと呉とか三原あたりでのんびり3泊ぐらいして戻って2日ぐらい自宅でまったりと思っていたが、これでは何かハードスケジュールであり、休んでる余地が薄い。。
年末年始休業は1週間ちょっとであり、今年はあまり余裕が無い。(有給は余ってて捨てまくってるけど使ってる余裕もない)
ということで便乗で四国行く案は却下とした。
道中にあたる大阪や神戸も行ったこと無くて行ってみたかったけど日程的に却下。どうせなら2~3週間ぐらいのバカンスほしい
計画たて中:広島で完結か
行きたいところリストアップしてみる
- 尾道
- ラーメン
- 山?
- 小道?
- 呉
なお12/30、12/31は平和記念資料館はお休み、広島城もお休みだそうで、広島市内行くなら正月か。
呉では大和ミュージアムは開いてるものの、てつのくじら館はお休み、入船山記念館もお休み。
交通手段検討
余裕が無いので青春18きっぷでムーンライトながらやローカル線乗り継ぎは却下。サンライズで岡山行くか、なければのぞみで岡山行く。
よくわからないが往復割引乗車券で往復3万円強?
新尾道行くのは岡山-尾道の所要時間を半減させられるが、乗り換えが発生してめんどくさそうだった
岡山-尾道が山陽本線で1.5時間弱 1,320円
尾道-呉が山陽本線・安芸路ライナーで2時間弱 1,660円
呉-広島が安芸路ライナーで40分 500円
であり、呉を泊地としてこのへんの見どころをうろうろしたい。
あと内陸では神龍湖というところすごそうだったけど、Google候補で心霊とかでてきてビビったし、時間も貧しそうなので行かない。
絞った旅程では、18きっぷは使うメリットなさげ
ラッシュとかも検討
帰省しないのに帰省ラッシュに巻き込まれるの避けたいので。
ピークは12/31が下り、1/3が上りっぽい。こりゃ1月4日まで旅先でごろごろするかな。