今度の現場はSubversionをバリバリに使っている。自分もSVNは使っていたとはいえ、ぶっちゃけYakiBikiなど個人レベルでしか使っていないため、担当者毎のbranchをtrunkに統合したり、間違ってcommitしたのをrollbackしたりなどは行っていない。(rollbackだって、-r付でco下のをバックアップした後、最新版に上書きしてcommitするで済ませてた(;´Д`)) 以下のまとめは、次のURLから当座必要な「trunkの変更をbranchにマージ(or その逆)」「commitしたファイルをロールバック」のやり方を抜き書きしたもの。 - "Subversion メモ" -- http://www-aos.eps.s.u-tokyo.ac.jp/~takagi/subversion.html * trunkの変更をbranchにマージ マージの基本: svn merge -r : <マージ元> <作業コピーパス> "", ""はリビジョン番号で、""から""の間に行われた "<マージ元>" に対する変更を "<作業コピーパス>" に対して適用する。<作業コピーパス>省略時は、カレントディレクトリに適用される。 例えば "file:///opt/SVNREPOS/repo1/trunk" 以下に行われた r100から最新版(HEAD)までの変更を、"repo1/branch/abc" をcheckoutして作業中のカレントディレクトリに対して適用するのであれば、 svn merge -r 100:HEAD file:///opt/SVNREPOS/repo1/trunk となる。作業コピーパスはカレントディレクトリなので、省略している。 逆に、カレントの作業コピーがtrunkで、 repo1/branch/abc をマージしたい場合は svn merge -r 100:HEAD file:///opt/SVNREPOS/repo1/branch/abc となる。 * commitしたファイルをロールバック 「未来から過去に向かっての変更点」をマージすると考える。 すると、例えば作業コピー中の foo.txt というファイルを間違ってcommitして、commitする前のバージョンに巻き戻したい場合は、以下のようにmergeコマンドを実行する。 svn merge -r COMMITTED:PREV foo.txt 「直前」などではなく、明確に「リビジョンXXX」に戻したいという場合は svn merge -r HEAD:XXX foo.txt or svn merge -r COMMITTED:XXX foo.txt というようになる。 ** 単純に以前のバージョンを見たいだけの場合(svn cat) svn cat <対象>@ 例:commitする前のバージョンを見たい svn cat foo.txt@PREV or svn cat -r PREV foo.txt