TOP

Vimでsubversion+ftp環境で作業環境構築したときのメモ

2017-04-14 08:58:37

subversionでバージョン管理、ftpでファイルアップロード、という環境で作業することになったので、その作業環境を作った時のメモ

subversion: svn diffでvimdiffを使う

svn diff実行時のスクリプトを作成

$ cat ~/bin/svndiff

#!/bin/sh
DIFF="/usr/bin/vimdiff"
$DIFF $6 $7

実行権限をつけて、~/.subversion/configに設定

$ chmod +x ~/bin/svndiff

$ cat ~/.subversion/config | grep diff-cmd
### Set diff-cmd to the absolute path of your 'diff' program.
diff-cmd = ~/bin/svndiff

subversion: svn logを常にlessにパイプする

aliasって半角スペース使えないのかな

alias svnlog='svn log | less'

subversion: svn関係のコマンドメモ

// コミットをChangeListにまとめる
$ svn cl (ChangeList名) path/to/file1 path/to/file2 path/to/file3
$ svn commit --changelist (ChangeList名)

// 変更ファイル
$ svn st

// 元に戻す
$ svn revert path/to/file
$ svn revert -R .

// 犯人探し
$ svn blame path/to/file

ftp: ncftpを使う

標準のftpよりベターなコマンドライン用FTPツール NcFTP - Qiita

ディレクトリごとアップしたい時に使用

ncftp> put -R directory

ftp:vim-syncを使う

GitHub - eshion/vim-sync

いつのまにか、eshion/vim-sftp-syncの方が、Please note! vim-sftp-sync has been superseded by vim-sync.となったので入れ替え

READMEに書いてあるスクリプトをプロジェクトルートに.syncとして保存→接続先を編集、だけで認識するようになってた。便利。

(ただし、プロジェクトルート直下はPATHが2重になってしまうので調整が必要なようです。未対応。)

$ cat /path/to/project/.sync

#!/bin/sh
if [ "upload" == $1 ];then
  ncftpput -m -u login_name -p login_password -P 21 remote_host remote_path/$2 `dirname $0`/$2/$3
elif [ 'download' == $1 ];then
  ncftpget -u login_name -p login_password -P 21 remote_host `dirname $0`/$2 remote_path/$2/$3
fi

$ chmod +x /path/to/project/.sync