Movatterモバイル変換


[0]ホーム

URL:


hydroculのメモ >コマンドの使い方(Linux) >Subversion (svn)

Subversion (svn)2013/12/29

以下は、gitをCUIのみで使っている筆者がsvnを使わないといけなくて、かつCUIのみで使いたいときに、gitとの比較の観点でsvnコマンドの使い方を調べたメモです。

gitとの違い2013/06/11

参考

スポンサーリンク

チェックアウト2013/06/11

# チェックアウト# (カレントディレクトリにtrunkというディレクトリが作成される)svn checkout svn://id@host/path/to/svnroot/trunk# カレントディレクトリにチェックアウトsvn checkout svn://id@host/path/to/svnroot/trunk .# 作成されるディレクトリの名前を指定してチェックアウト# (カレントディレクトリにhogeというディレクトリが作成される)svn checkout svn://id@host/path/to/svnroot/trunk hoge

詳細情報表示2013/06/11

# カレントディレクトリの詳細情報を表示svn info# 作業用ディレクトリ特定のパスを指定して詳細情報を表示svn info foo/bar

ログ表示2013/06/11

# リポジトリのルートを指定してログを表示svn log svn://id@host/path/to/svnroot# リポジトリの特定のパスを指定してログを表示# ファイルでもディレクトリでも可能svn log svn://id@host/path/to/svnroot/trunk/foo/bar# リポジトリの特定のリビジョンを指定してログを表示svn log svn://id@host/path/to/svnroot/trunk/foo/bar@r999# リポジトリの特定のリビジョンを指定してログを表示svn log svn://id@host/path/to/svnroot@r999# カレントディレクトリのログを表示svn log# 作業用ディレクトリの特定のパスを指定してログを表示svn log foo/bar

差分表示2013/06/25

# カレントディレクトリの最後のコミットと作業用ディレクトリとの差分を表示svn diff# カレントディレクトリについてのリビジョン間の差分を表示svn diff -r r998:r999# 差分のファイル名のみを表示svn diff --summarize -r r998:r999# 作業用ディレクトリの特定のパスについてのリビジョン間の差分を表示svn diff -r r998:r999 foo/bar# リポジトリの特定のパスとリビジョンを指定して差分を表示svn diff svn://id@host/path/to/svnroot/trunk@r998 svn://id@host/path/to/svnroot/tags/hoge@r999

ファイル一覧表示2013/06/14

# カレントディレクトリのファイル一覧を表示# (まだaddしていないファイルがあれば、それは表示されない。#  まだrmしていない削除済みファイルは表示される)svn ls# ファイル一覧を詳細に表示 (ls -l みたいな)svn ls -v# ファイル一覧をサブディレクトリも再帰的に表示 (find みたいな)svn ls -R# 作業用ディレクトリ特定のパスを指定してファイル一覧を表示svn ls foo/bar# リポジトリの特定のパスを指定してファイル一覧を表示svn ls svn://id@host/path/to/svnroot/trunk/foo/bar

新規作成ファイルの登録2013/07/02

# ファイルをステージングに登録# git add newhoge.txt に相当svn add newhoge.txt# ディレクトリをステージングに登録# ディレクトリの中も再帰的に登録# git add newhogedir に相当svn add newhogedir

既存ファイルの削除2013/12/19

# ファイル削除をステージングに登録# git rm hoge.txt に相当# ディレクトリに対しても同じコマンドで可能svn delete hoge.txt

コミット2013/07/02

# コミット# git commit && git push に相当(?)# svn update しないと、svn log したときの結果には反映されない# コミットメッセージを入力するエディタが開くsvn commit && svn update# コミットメッセージを指定してコミット# git commit -m "hogehoge message" && git push に相当(?)svn commit -m "hogehoge message" && svn update

編集取り消し2013/06/18

# まだコミットしていない編集済みのファイルを元に戻す# git checkout foo/bar.txt に相当svn revert foo/bar.txt

更新を取り込むには2013/09/18

# 更新を取り込む# git pull に相当(?)# カレントディレクトリ配下のみをとり込むので、# 作業ディレクトリのルートより下で実行すると# カレントディレクトリは以下とそれより上のディレクトリとで# リビジョンがずれるsvn update# ディレクトリを指定して更新を取り込むsvn update ../hogedir

update前に手動でファイルをいじっていても、結果的にupdate後と同じ状態にしてあれば、svn update は成功する。

ブランチの作成2013/07/11

svn copy svn://id@host/path/to/svnroot/trunk svn://id@host/path/to/svnroot/branches/hoge -m "hogehoge message"

タグの設定2013/07/11

svn copy svn://id@host/path/to/svnroot/trunk svn://id@host/path/to/svnroot/tags/hoge -m "hogehoge message"

または、ローカルにtrunk, tagsディレクトリの存在する作業ディレクトリがあれば

# trunkに対してタグを設定する# trunk, tagsディレクトリの存在する作業ディレクトリにてsvn copy trunk tags/hogehoge && svn commit -m "commit message"

作業ディレクトリを特定のブランチに切り替え2013/08/31

# git checkout hoge に相当svn switch svn://id@host/path/to/svnroot/branches/hoge

マージ2013/07/12

# hogeブランチをtrunkにマージ。現在の作業ディレクトリがtrunkだとして# hogeブランチを作ったリビジョンが99だとしてsvn merge -r 99:HEAD svn://id@host/path/to/svnroot/branches/hogesvn commit -m "hogehoge message"

マージしたあとのコミットはなぜかsvn update しなくてもローカルのリビジョン番号が上がる。

レポジトリ作成2013/07/02

# カレントディレクトリをレポジトリにする# git init --bare . に相当svnadmin create .
このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。
スポンサーリンク

[8]ページ先頭

©2009-2025 Movatter.jp