SVNでの開発フロー
概要
SVNでソースを管理しているサイトの開発フローを共有します。
開発担当者は複数名、gitへの乗り換えは諸事情によりできない。
開発フロー
local→ステージング→本番
の順に反映を行っていきます。
localを最新に更新
svn up
変更のあったファイルの一覧が表示され。
At revision XXXX.
と結果が帰ってきます。
XXXXが最新のリビジョンになります。
最新でどんな更新があった確認したい場合は、
svn log --limit 10
等で確認できます。localの変更
vim XXXX
vimerなので・・・。
後々のことを考え、不要なファイルの変更を行わないように、
どのファイルにどんな変更をしたかは覚えておくと良い。localの変更の確認
svn status
もし不要な変更を行ってしまったファイルが有った場合は、
svn revert ファイル名
(gitでいうcheckout)
を使用して元に戻します。localのコミット準備
svn add ファイル名
コミットに反映させるファイルのみ指定する。
間違えて追加してしまった場合は、
svn revert ファイル名
で取り消すことが出来るlocalのコミット
svn commit ファイル名 -m "コミットコメント"
心配な場合は、
svn log --limit 10
等でリビジョンが増えていることを確認してください。ステージングに移動
ssh XXXX
cd /var/www/vhosts/XXXX/
ここは各サーバーの構成によります。ステージングを更新
svn up ファイル名
実際にステージングサイトにアクセスして確認
先方に確認
ステージングサイトを先方に見せ、本反映の許可をもらう。
場合により他のメンバーのダブルチェックをもらう。本番に移動
ssh XXXX
cd /var/www/vhosts/XXXX/
ここは各サーバーの構成によります。アップ待ちのファイルの確認
svn status -u
いわゆる「期日が来たら本番に反映」という機能やページがないか確認をおこなう
svn info ファイル名
で今のリビジョンとsvn上にある最新のリビジョンの差を確認する。
差がある場合は、今のリビジョンとsvn上にある最新のリビジョンの差の間に別の人のコミットが入っていないか確認をする必要がある。
コレはredmine等のツールを使用すると便利。
別の人のコミットが入っている場合は、アップして問題ないかそのコミットを行った人に確認をとる。本番を更新
svn up ファイル名
実際に本番にアクセスして確認
先方に確認を取り、終了
備考
svnで git stash
git stash 相当
$ svn diff > stash.patch
$ svn revert -R .
git stash pop 相当
$ patch -p0 < stash.patch
http://qiita.com/snaka/items/673c33e1210505a8851e
ファイルを操作するユーザーが限られている場合
コマンドの頭に
sudo -u XXX
で実行するユーザを指定する。
例:apache権限でsvn status
の実行
sudo -u apache svn status
svn上にある不要なファイルを削除したい場合
svn rm ファイル名
を使用する。