| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「Subversion」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
(ページの作成:「==subversion== [subversion][Eclipse] =====SVNBOOK===== *http://psyto.s26.xrea.com/misc/svnbook/ =====Subversion Download===== *http://subversion.tigris.org/getting…」)
 
1行目: 1行目:
 
==subversion==
 
==subversion==
[subversion][Eclipse]
+
[[subversion][Eclipse]]
  
 
=====SVNBOOK=====
 
=====SVNBOOK=====
23行目: 23行目:
  
 
===インポート===
 
===インポート===
  import [<パス>] <URL>
+
  import [&lt;パス&gt;] &lt;URL&gt;
  
  c:\work>tree /f myproject
+
  c:\work&gt;tree /f myproject
 
  フォルダー パスの一覧
 
  フォルダー パスの一覧
 
  ボリューム シリアル番号は 00000002 F2F7:41B7 です
 
  ボリューム シリアル番号は 00000002 F2F7:41B7 です
36行目: 36行目:
 
   
 
   
 
   
 
   
  c:\work>svn import ./myproject http://192.168.24.14/svn/myrepo/ --username piroto --password north123
+
  c:\work&gt;svn import ./myproject http://192.168.24.14/svn/myrepo/ --username piroto --password north123
 
   
 
   
 
  -- この行以下は無視されます --
 
  -- この行以下は無視されます --
66行目: 66行目:
 
  URL[@REV]... [PATH]
 
  URL[@REV]... [PATH]
  
  c:\work>svn checkout http://192.168.24.14/svn/myrepo/trunk myproject
+
  c:\work&gt;svn checkout http://192.168.24.14/svn/myrepo/trunk myproject
 
  A    myproject\Foo.java
 
  A    myproject\Foo.java
 
  A    myproject\Bar.java
 
  A    myproject\Bar.java
 
  リビジョン 1 をチェックアウトしました。
 
  リビジョン 1 をチェックアウトしました。
  
<blockquote>ローカルリポジトリの場合、file:///{path}</blockquote>
+
&lt;blockquote&gt;ローカルリポジトリの場合、file:///{path}&lt;/blockquote&gt;
 
===編集の確認===
 
===編集の確認===
 
*Foo.java を編集
 
*Foo.java を編集
 
*Hoge.java を追加
 
*Hoge.java を追加
 
====svn status====
 
====svn status====
  c:\work\myproject>svn status
+
  c:\work\myproject&gt;svn status
 
  ?      Hoge.java
 
  ?      Hoge.java
 
  M      Foo.java
 
  M      Foo.java
82行目: 82行目:
 
====svn add====
 
====svn add====
 
*作業コピーに追加したファイルを、バージョン管理下へ置くことを予約する(commitで反映される)
 
*作業コピーに追加したファイルを、バージョン管理下へ置くことを予約する(commitで反映される)
  c:\work\myproject>svn add Hoge.java
+
  c:\work\myproject&gt;svn add Hoge.java
 
  A        Hoge.java
 
  A        Hoge.java
 
====svn diff====
 
====svn diff====
 
*変更点に対するunified diff 出力を確認
 
*変更点に対するunified diff 出力を確認
  c:\work\myproject>svn diff
+
  c:\work\myproject&gt;svn diff
 
  Index: Hoge.java
 
  Index: Hoge.java
 
  ===================================================================
 
  ===================================================================
111行目: 111行目:
  
 
*リポジトリに自分のファイルの新しいバージョンをコミット
 
*リポジトリに自分のファイルの新しいバージョンをコミット
  commit [<パス>...]
+
  commit [&lt;パス&gt;...]
  
  c:\work\myproject>svn commit
+
  c:\work\myproject&gt;svn commit
 
   
 
   
 
  -- この行以下は無視されます --
 
  -- この行以下は無視されます --
130行目: 130行目:
 
*リポジトリの「最新の」状態を自分の作業コピーに反映します。
 
*リポジトリの「最新の」状態を自分の作業コピーに反映します。
 
*リポジトリの変更箇所と作業コピーの変更箇所に競合がある場合
 
*リポジトリの変更箇所と作業コピーの変更箇所に競合がある場合
  c:\work\myproject>svn update
+
  c:\work\myproject&gt;svn update
 
  'Bar.java' で競合が見つかりました。
 
  'Bar.java' で競合が見つかりました。
 
  選択: 延期 (p), 全差分 (df), 編集 (e),
 
  選択: 延期 (p), 全差分 (df), 編集 (e),
137行目: 137行目:
 
  public class Bar {
 
  public class Bar {
 
         public static void main(String[] args) {
 
         public static void main(String[] args) {
  <<<<<<< .mine
+
  &lt;&lt;&lt;&lt;&lt;&lt;&lt; .mine
 
                 System.out.println("Bar!");
 
                 System.out.println("Bar!");
 
  =======
 
  =======
 
                 System.out.println("Bar2");
 
                 System.out.println("Bar2");
  >>>>>>> .r3
+
  &gt;&gt;&gt;&gt;&gt;&gt;&gt; .r3
 
         }
 
         }
 
  }選択: 延期 (p), 全差分 (df), 編集 (e), 解決版 (r),
 
  }選択: 延期 (p), 全差分 (df), 編集 (e), 解決版 (r),

2020年2月15日 (土) 08:06時点における版

subversion

[[subversion][Eclipse]]

SVNBOOK
Subversion Download
  • subversionの導入

クイックスタート

基本の概要

1189 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 をチェックアウトしました。

<blockquote>ローカルリポジトリの場合、file:///{path}</blockquote>

編集の確認

  • 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] [subclipse Eclipse Subversion Plugin]

Visual Studio

  • [Visual Studio Ankhsvn (Subversion Plugin)] [Visula Studio用 Subversion プラグイン Ankhsvn]

テンプレート:Ref Subversion.jpg