以前の記事を参考に進めていきます。
Mercurial(hg)の使い方~詳しく書かないだって自分メモだから~
自分環境(ローカルサーバ)で作業の内容を別サーバへ反映する手順です。
環境
- Ubuntu
- Twig使用
いざデプロイに向けて、バージョン管理の基礎から
- hg コマンドを認識
$ hg --version
バージョンが返ってこなかったらMercurial(hg)のインストール
sudo apt update
sudo apt install mercurial
2. 初期設定(誰が変更したかを記録)
さきにinitをしてしまっても構わない。
ただ、「履歴を保存(コミット)する時」までに絶対に必要となる。
$\tiny{Mercurial(hg)は履歴を保存する時に「誰がこの変更をしたか(作者名)」というハンコを必ず記録するルールになっている}$
$\tiny{もし設定しないまま commit を実行すると、「誰の作業かわからないから保存できないよ!」とエラーを出して止まってしまう}$
$ hg config --edit
エディターを選びます
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.basic
3. /usr/bin/vim.tiny
4. /bin/ed
Choose 1-4 [1]: 2
設定ファイル ~/.hgrc が作られて、編集画面で開きます
該当箇所に記入
username = tago <your.email@example.com>
3. プロジェクトの初期化(hg init)
開発中のプロジェクトフォルダがある一番上の階層で
hg init
.hgが作られます
4. 無視リスト(.hgignore)の作成
- Composerの自動生成ファイルは管理しない(サーバ側でインストールするため)
-- composer.json と composer.lock はインストールに必要なので管理する
Composerはサーバでインストール
・本番サーバーで composer install を叩く・hg で本番サーバーにソースコード(composer.json と lock 含む)を送る
・本番サーバーでcomposer install --no-dev を実行して vendor を作る
「履歴に入れたくないファイル」を登録
.hgignore
---------------
syntax: glob
# Composerの自動生成ファイル
vendor/**
# ログファイル
log/**
*.log
# OSの隠しファイル
.DS_Store
Thumbs.db
----------------
5. 最初の履歴保存(状態の確認・管理対象に追加)
$ hg status
$ hg add
$\tiny{もし、add の時にPermission deniedとなったら自分権限に変えましょう}$
sudo chown -R $(whoami) .
間違えて追加(add)してしまったファイルやフォルダを取り消すには、hg forget というコマンドを使います。
hg forget ファイル名
hg forget "フォルダ名/**" <ーフォルダごと
もし「全部イチからやり直したい!」という場合は
hg forget "set:added()" <ー今 add したものをすべて一括で取り消す(追加前の状態に戻す)
6. 記録
hg commit -m "初期コミット:ユーザー管理機能のベース完成"
できてるのか確認したいなら
hg log
記録が出てくれば問題なしです
おまけ
ちゃんと記録できてるのかを視覚的に確認したい
SSHトンネリング(ポートフォワーディング)を使う
1. サーバーのターミナルでは、オプションなしで普通に起動
hg serve
2. 自分のパソコン(手元)で、もう1つターミナルを開く
ssh -L 8000:localhost:8000 ユーザー名@サーバーのIP
トンネリングの説明
すでに安全が確認されているSSHの通信パイプ(トンネル)の中に、もう一つWeb用の秘密の通り道を通してしまう
ssh -L 【手元の入口】:【サーバー側から見た目的地】:【目的地の出口】 ユーザー名@サーバー名
- ssh -L:
- SSHのトンネルを掘る
- 8000:(手元の入口):
- パソコン(手元)のブラウザで http://localhost:8000 にアクセスしたら、その通信を全部トンネルの中に吸い込ませる
- localhost:(サーバー側から見た目的地):
- トンネルを抜けてサーバー側に到着したら、サーバー自身(localhost)に向かえ!
- :8000(目的地の出口):
- サーバー自身の8000番ポート(つまり hg serve が待ち構えている場所)に通信を届けろ!
3. ブラウザでアクセス
http://localhost:8000
