トップ 一覧 ping 検索 ヘルプ RSS ログイン

subversionの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!subversion
[subversion][Eclipse]

::SVNBOOK
*http://psyto.s26.xrea.com/misc/svnbook/
::Subversion Download
*http://subversion.tigris.org/getting.html
*http://subversion.apache.org/packages.html

*subversionの導入
!!!クイックスタート
!!基本の概要
{{ref_image svn01.jpg}}
!!導入
*subversionの導入
!!リポジトリ
!リポジトリとは
*単なる仮想的にバージョン化されたファイルシステム
*どんなデータも含むことのできる大きなツリー構造
!リポジトリ作成
 # svnadmin create /var/www/svn/myrepo
 # chown -R apache:apache myrepo

!!インポート
 import [<パス>] <URL>

 c:\work>tree /f myproject
 フォルダー パスの一覧
 ボリューム シリアル番号は 00000002 F2F7:41B7 です
 C:\WORK\MYPROJECT
 ├─branches
 ├─tags
 └─trunk
         Bar.java
         Foo.java
 
 
 c:\work>svn import ./myproject http://192.168.24.14/svn/myrepo/ --username piroto --password north123
 
 -- この行以下は無視されます --
 
 A    myproject
 
 ログメッセージの変更や指定がなされていません
 中断 (a), 続行 (c), 編集 (e):
 c
 追加しています              myproject\trunk
 追加しています              myproject\trunk\Foo.java
 追加しています              myproject\trunk\Bar.java
 追加しています              myproject\branches
 追加しています              myproject\tags
 
 リビジョン 1 をコミットしました。

*これで、ツリー構造がデータベースに取り込まれた。
*もとのファイル群は削除しても問題ない。

!ツリー構造
*ツリー構造はbranches, tags, そしてtrunk という名前の三つの最上位ディレクトリを含む必要があります。
*trunk ディレクトリはすべてのデータを含んでいるはずですが、branches とtags ディレクトリは空です
*branches, tags, trunk サブディレクトリは実際にはSubversion に必要なものではありません。後で利用する時におそらくもっとも便利になるように考えられた、よく利用される命名規約にすぎません。


!!チェックアウト
*リポジトリのデータを操作するためには、このデータのために、一種の個人用の作業領域となる新しい「作業コピー」を作る必要がある
 URL[@REV]... [PATH]

 c:\work>svn checkout http://192.168.24.14/svn/myrepo/trunk myproject
 A    myproject\Foo.java
 A    myproject\Bar.java
 リビジョン 1 をチェックアウトしました。

""ローカルリポジトリの場合、file:///{path}
!!編集の確認
*Foo.java を編集
*Hoge.java を追加
!svn status
 c:\work\myproject>svn status
 ?       Hoge.java
 M       Foo.java

!svn add
*作業コピーに追加したファイルを、バージョン管理下へ置くことを予約する(commitで反映される)
 c:\work\myproject>svn add Hoge.java
 A         Hoge.java
!svn diff
*変更点に対するunified diff 出力を確認
 c:\work\myproject>svn diff
 Index: Hoge.java
 ===================================================================
 --- Hoge.java   (リビジョン 0)
 +++ Hoge.java   (リビジョン 0)
 @@ -0,0 +1,4 @@
 +public class Hoge {
 +       public static void main(String[] args) {
 +       }
 +}
 \ No newline at end of file
 Index: Foo.java
 ===================================================================
 --- Foo.java    (リビジョン 1)
 +++ Foo.java    (作業コピー)
 @@ -1,4 +1,5 @@
  public class Foo {
         public static void main(String[] args) {
 +               System.out.println("Foo!");
         }
  }
 \ No newline at end of file
!svn commit

*リポジトリに自分のファイルの新しいバージョンをコミット
 commit [<パス>...]

 c:\work\myproject>svn commit
 
 -- この行以下は無視されます --
 
 A    Hoge.java
 M    Foo.java
 
 ログメッセージの変更や指定がなされていません
 中断 (a), 続行 (c), 編集 (e):
 c
 送信しています              Foo.java
 追加しています              Hoge.java
 ファイルのデータを送信しています ..
 リビジョン 2 をコミットしました。
!svn update
*リポジトリの「最新の」状態を自分の作業コピーに反映します。
*リポジトリの変更箇所と作業コピーの変更箇所に競合がある場合
 c:\work\myproject>svn update
 'Bar.java' で競合が見つかりました。
 選択: 延期 (p), 全差分 (df), 編集 (e),
         衝突自分 (mc), 衝突他人 (tc),
         , すべてのオプションを表示 (s): e
 public class Bar {
         public static void main(String[] args) {
 <<<<<<< .mine
                 System.out.println("Bar!");
 =======
                 System.out.println("Bar2");
 >>>>>>> .r3
         }
 }選択: 延期 (p), 全差分 (df), 編集 (e), 解決版 (r),
         衝突自分 (mc), 衝突他人 (tc),

!!Tips
!subversionの導入
*subversionの導入
*subversion ホスト名が解決できない エラー対応
*EclipseでSubversionプラグインのオーバーレイアイコンが消えたときの対応

*subversion リポジトリの引越し
!!Client
!Windows 
*subversion VisualSVN Windows用サーバーの導入
!Eclipse
*[[subclipse Eclipse Subversion Plugin|subclipse]]
!Visual Studio
*[[Visula Studio用 Subversion プラグイン Ankhsvn|Visual Studio Ankhsvn (Subversion Plugin)]]

{{ref Subversion.jpg}}