tech_memo
vimdiff風にファイル差分を表示する †
参考 †
手順 †
- 適当な場所にvimdiffを呼び出すシェルを作成する。
- 実行権限付与
chmod +x /usr/local/bin/svndiffwrap.sh
- $HOME/.subversion/config のhelper項目に以下を追記する
[helpers]
diff-cmd = /usr/local/bin/svndiffwrap.sh
- これで設定は完了。普通にsvn diffを実行すると、vimdiffが呼び出される
リポジトリ移行 †
- 参考
- 移行元リポジトリをダンプ
svnadmin dump <リポジトリパス> | svndumpfilter --drop-empty-revs --renumber-revs include Top/trunk/project1 Top/tags/project1 Top/branches/project1 > org_repo.dump
オプション | 意味 |
include | 1部のファイル・ディレクトリだけダンプする場合に指定。ただし、過去に指定外のパスからsvn mvやcopyなどしているとエラーになる。その場合は、そのパスもincludeの引数に指定する |
--drop-empty-revs | includeやexcludeを指定した場合に、関係ない過去コミットは「単に番号が飛ばないようにするための空のリビジョンです。」的なリビジョンでdumpされるため、それを抑止する |
--renumber-revs | --drop-empty-revsを指定しただけだと、リビジョンが飛番になるので、それを抑止する |
- dumpファイルの編集
- 移行先にdumpファイル内の最下層より一つ上までのディレクトリを作成
svn mkdir trunk branches tags
svn commit -m "Create top directories."
- リストア
svnadmin load <移行先リポジトリパス> < org_repo.dump
SVNリポジトリ作成 + apache公開 †
- リポジトリ作成
svnadmin create <リポジトリパス>
- 権限変更
chown -R apache:apache <リポジトリパス>
- webDav導入
yum install mod_dav_svn
- subversion設定ファイルを作成
# vim /etc/httpd/conf.d/subversion.conf (ファイル名は任意)
- 誰でも参照・更新可能
<Location /svn/repos>
DAV svn
SVNParentPath "<リポジトリパス>"
SVNListParentPath on
</Location>
- Basic認証付
<Location /svn/repos>
DAV svn
SVNParentPath "<リポジトリパス>"
SVNListParentPath on
AuthType Basic
AuthName "Subversion repository"
AuthzSVNAccessFile <任意のパス>/authzsvn.conf
AuthUserFile <任意のパス>/.htpasswd
Require valid-user
</Location>
- apache設定ファイルリロード
service httpd reload
- Basic認証ユーザ作成
htpasswd <上記任意のパス>/.htpasswd <OSユーザー名>
- ユーザ権限設定(サンプル)
# vim <上記任意のパス>/authzsvn.conf
[groups]
dev = hoge, huga
admin = hoho
[/]
* = r
dev = rw
admin = rw
me = rw
コマンド集 †
特定のディレクトリをワーキングディレクトリから除外 †
コメントの取得 †
subversionのバージョンアップ †
- Wandisco yumリポジトリを作成
vim /etc/yum.repos.d/wandisco.repo
[wandisco-svn]
name=WANDisco Repository - snv-1.7 centos5
baseurl=http://opensource.wandisco.com/centos/5/svn-1.7/RPMS/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-WANdisco
- GPG keyのインポート
[root@sv05 ~]# wget http://sv18/cobbler/localmirror/pkgs/RPM-GPG-KEY-WANdisco
[root@sv05 ~]# rpm --import RPM-GPG-KEY-WANdisco
- 現在のsubversionをアンインストール
[root@sv05 ~]# rpm -e subversion.x86_64 subversion.i386 # i386とx86_64のmultipleパッケージになっているので両方抜く
- subversionをインストール
[root@sv05 ~]# yum install --enablerepo=wandisco-svn subversion
# 中略
=============================================================================================================================
Package Arch Version Repository Size
=============================================================================================================================
Installing:
subversion i386 1.4.2-4.el5_3.1 core-2 2.3 M
subversion x86_64 1.7.22-1 wandisco-svn 2.4 M
Installing for dependencies:
apr-util-ldap x86_64 1.5.3-2.WANdisco.8 wandisco-svn 6.4 k
apr-util-pgsql x86_64 1.5.3-2.WANdisco.8 wandisco-svn 11 k
apr-util-sqlite x86_64 1.5.3-2.WANdisco.8 wandisco-svn 8.4 k
Updating for dependencies:
apr x86_64 1.5.0-1.WANdisco.2 wandisco-svn 98 k
apr-util x86_64 1.5.3-2.WANdisco.8 wandisco-svn 81 k
Transaction Summary
=============================================================================================================================
Install 4 Package(s)
Upgrade 2 Package(s)
Total download size: 2.6 M
Is this ok [y/N]:
# 以上でインストールは完了。すでにチェックアウト済みのローカルリポジトリを操作するには、一度 svn upgrade コマンドを実行する必要がある
[soapui@sv05 soapUI_scripts]$ svn update
svn: E155036: Please see the 'svn upgrade' command
svn: E155036: Working copy '/home/soapui/soapUI_scripts' is too old (format 8, created by Subversion 1.4)
[soapui@sv05 soapUI_scripts]$ svn upgrade
削除されたディレクトリをsvn export †
svn export <削除ディレクトリのURL>@<リビジョン>
リポジトリのIP変更 †
- リポジトリのIPが変更になり、ローカルのworkingディレクトリと同期が取れなくなったときにも有効。以下のコマンドで変更可能。
過去リビジョンで削除したファイルを復旧する。 †
マージ †
コンフリクト発生時 †
SVNのリビジョンを戻す †
svn merge -r HEAD:999 [PATH | DIR] # r999に戻る
ユーザ名とパスワードを引数指定で実行 †
svn export <URL> --username <USER_NAME> --password <PASSWORD>
externalsプロパティ †
複数ディレクトリのリンクを張る †
GUIでの設定 †
ファイルを更新せずにコメントだけ変更する †
SVN command †
最新の20件
2023-01-26
2022-11-11
2022-03-02
2022-02-03
2021-11-18
2021-11-11
2021-10-27
2021-10-04
2021-09-30
2021-08-24
2021-04-01
2021-02-25
2020-08-13
2020-05-22
2020-04-16
2020-04-15
2020-03-23
2020-03-12
2020-02-27
今日の2件
- counter: 529
- today: 1
- yesterday: 0
- online: 1