一、コード管理プラットフォームの紹介、SVNのインストール、クライアント上でSVN(Linux)、Windowsの使用


一、コード管理プラットフォームの紹介
バージョン管理、いくつかのファイルの内容の変化を記録して、将来特定のバージョンの改訂状況を調べる
バージョン管理ツールの発展概要、CVS→SVN→Git
CVS:互換性があまりよくありません.
SVN:遅すぎます.フルネーム:Subversionは、2000年に始まったオープンソースバージョン制御システムです.
Git:Linuxの創始者linusが発起し、2005年に発表された.最初の目的はLinuxカーネルコードをよりよく管理することだった.
GitとSVNの違いは,Gitがサービス側に依存することなく動作できること,すなわちGitが分散していることである.
GitとSVNの比較について、参考http://blog.lishiming.net/?p=305
SVNとGitの最も主要な違いは分布式である.
SVN優勢:
1.ストレージ
SVNサーバはCVSが持つデータ格納の利点があり、データは一般的に失われないと同時に、独自の特色を持っている.SVNは、リレーショナル・データベースおよびバイナリの格納方式により、従来は同じファイルを同時に読み書きできなかったなどの問題を解決するとともに、独自の「ゼロまたは1」の原則を加えたものです.
2.速度
SVNは初期のCVSと比較して速度運転において大きく向上した.SVNサーバはわずかな情報・リソース伝送しかサポートしていないため,他のシステムに比べてオフラインモードをサポートしているため,ネットワーク混雑現象の発生を回避している.
3.安全性
SVNは技術的により安全な製品であり、システムと制御の両面の結合を実現している.一方、システム全体の安全機能を効率的に分岐システムに分布させ、さらに分岐システムが正常に運行することを保証し、それによって各分岐システムが相補的になり、最終的にシステム全体性の安全性が保障され、均衡原則を通じて最終的に安全を追求する目的を実現することができる.
Gitの優劣:
メリット:
分布式開発に適し,個体を強調する.
パブリックサーバの圧力もデータ量もあまり大きくありません.
スピードが速くて、柔軟です.
任意の2人の開発者の間で衝突を簡単に解決することができます.
オフライン作業
欠点:
資料が少ない(少なくとも中国語の資料は少ない).
学習サイクルは相対的に長い.
常識に合わない.
コードの機密性が悪く、開発者がライブラリ全体をクローン化すると、すべてのコードとバージョン情報を完全に公開することができます.
GitHubはGitベースのオンラインウェブページコード管理プラットフォームであり、有料サービスを選択することができる.
GitlabはオープンソースGitHubと考えられ,両者は直接関連していない.
一言で区別すると、gitは管理ツールであり、githubはオンラインのgitベースのプラットフォーム(またはサービスと呼ばれる)である.gitlabはgithubと同様にgitベースのwebインタフェースを提供するコード管理プラットフォームでもある.
二、SVNを取り付ける
# yum install -y subversion
バージョンライブラリの作成
#mkdir-p/data/svnroot/myproject//このディレクトリパスはカスタマイズ可能
#svnadmin create/data/svnroot/myproject//このディレクトリでファイルを初期化
# cd !$/conf#authzは権限プロファイル、passwdはパスワードファイル、svnserveである.confはSVN倉庫のプロファイルです.
# vim authz  //          :
[groups]
admins = aming,user1   //        

[/]
@admins = rw   //@     
* = r   //  admins              。

[myproject:/]
user1 = rw
# myproject    ,       /data/svnroot/         ,           。
#            ,        ,           dir1,dir2。    [/dir1]、[/dir2]   。
#            。   [/dir1]、   [myproject:/],    。          。

aliases:別名
groups:ユーザーグループ
[/]:/data/svnroot/myprojectというディレクトリを指します.
倉庫内のディレクトリまたはプロジェクト内のディレクトリ、これらのプロジェクトに対して構成されたユーザーとグループの読み書き権限:
[/foo/bar]
[repository:/baz/fuz]
# vim passwd  //[users]   
[users]
aming = aming_!(*$123     ##     ,     。
user1 = user1_^^^123
user2 = user2-***123

# vim svnserve.conf
[general]  ##      5   
anon-access = none  ##    ,    
auth-access = write  ##      ,    
password-db = passwd  ##        
authz-db = authz  ##        ,         ,              ,        ,  svnserve.conf     。
realm = /data/svnroot/myproject  ##          ,    。

# svnserve -d -r /data/svnroot/   //  SVN,-d:deamon   ,    ;-r:  SVN    ;          。
# ps aux |grep svn
root       1621  0.0  0.0 162200   656 ?        Ss   19:53   0:00 svnserve -d -r /data/svnroot/
root       1623  0.0  0.0 112676   984 pts/0    S+   19:53   0:00 grep --color=auto svn
# netstat -lntp |grep svn
tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      1621/svnserve
# iptables -nvL  //            ,            。

三、クライアント上でSVN(Linux)を使用する
# yum install -y subversion  //        ,         svn   。
# mkdir svntest
# cd !$
# svn checkout svn://192.168.93.130/myproject --username=aming  //checkout,    。         ,       svn       ,       ,                   svnserve       。               myproject       。
    :  /data/svnroot/myproject
“aming”   : aming_!(*$123          //                 
-----------------------------------------------------------------------
  !      ,     :

    /data/svnroot/myproject

          !        ,         ,  Subversion
          。            。

      “/root/.subversion/servers”     “store-plaintext-passwords” “yes” “no”,
          。
-----------------------------------------------------------------------
        (yes/no)?yes   //      /root/.subversion/servers 
     0。
[root@MRX svntest]# ls
myproject
# cd project ; ls -la
    0
drwxr-xr-x 3 root root 18 8   29 18:43 .
drwxr-xr-x 3 root root 23 8   29 18:43 ..
drwxr-xr-x 4 root root 75 8   29 18:43 .svn

[root@MRX myproject]# cp /etc/fstab .
# svn add ./fstab  //         ,                    
A         fstab
# svn commit -m "add file"   //         。   ,   。
# svn commit -m "add fstab"
           fstab
      .
        1。
# svn delete filename  //     
# svn commit -m "delete filename"  //       
[root@MRX myproject]# svn delete fstab 
D         fstab
[root@MRX myproject]# svn commit -m "delete fstab"
           fstab

        2。
# svn update  //                ,           。
# svn log  //      
/root/.subversion/auth/svn.simple      ,           ,        。

四、クライアントでSVN(windows)を使用する
公式サイトhttps://tortoisesvn.net/index.zh.html
TortoiseSVNをダウンロードしてインストール
チュートリアルhttp://www.jianshu.com/p/6b3b7b915332
ダウンロード後、myprojectを新規作成するなど、フォルダを選択します.右クリックすると、SVN CheckoutとTortoiseSVNが表示されます.
初めて使用する場合も、SVNチェックアウトをクリックすると、ウィンドウが開きます.一番上のURL of repositoryでサービスアドレスとプロジェクトアドレスを定義すればOKです.svn://192.168.93.130/myproject.
OKをクリックしてから、ユーザー名とパスワードを定義します.
aming , aming_!(*$123
もうちょっとOK
テスト:
Windowsのmyprojectディレクトリの下にtxtドキュメントを作成し、内容を勝手に書きます.この文書を右クリックすると、Linux上と同様の操作で、TortoiseSVN→add、さらに右クリックSVN commitとなり、上の空白枠にadd 123が入力.txt、もう少しOKでいいです.
サービス側または別のクライアントにsvn updateを同期すると123が表示される.txtです.
Linuxにドキュメントを書いて、同じ操作をして、WindowsでSVN updateを右クリックして、同じ111を見ることができます.txt.
# svn add 111.txt
A         111.txt
[root@MRX myproject]# svn commit -m "add 111.txt"
           111.txt
      .
        4。