LinuxでのSVNコマンドの詳細な説明

一般的なコマンド

1.ヘルプコマンド: help(h)

  • コマンドの使用法svn help
  • コマンドの略語svn h
  • コマンドの説明:このコマンドを使用して、svnに関するすべてのコマンドと略語を表示します。そのコマンドが忘れられることがあります、あなたはそれを見ることができます、それは非常に便利です。

2.リポジトリに新しいファイルを追加します。add

  • コマンドの使用法svn add xxx.txt
  • コマンドの説明:このコマンドを使用した後、コマンドを使用しsvn ci xxx.txtて送信する必要があります。
  • :(svn add *.php現在のディレクトリにすべてのphpファイルを追加します)

3.変更したファイルをリポジトリに送信します。commit(ci)

  • コマンドの使用法svn commit -m "LogMessage" xxx.txt
  • コマンドの略語svn ci -m "LogMessage" xxx.txt

4.ファイルをローカルにチェックアウトします。checkout

  • コマンドの使用法svn checkout path(项目库的路径)
  • コマンドの略語svn co path

5.バージョンの更新:update(up)

  • コマンドの使用法svn update -r m path
  • コマンドの略語svn up
  • コマンドの説明:このコマンドの使用頻度は最も高くする必要があります。svn update後でディレクトリまたはファイルがない場合、ディレクトリ内のファイルとサブディレクトリはデフォルトで最新バージョンに更新されます。 
    • -r:更新するバージョンを指定します。例:(svn up -r 200 123.txtローカル123.txtファイルをバージョンに復元します200

6.ログを表示します。log

  • コマンドの使用法svn log xxx.txt
  • コマンドの説明:このファイルの変更レコードと修飾子の変更の説明を表示するために使用されます。

7.ファイルの詳細を表示します。info

  • コマンドの使用法svn info xxx.txt
  • コマンドの説明:このコマンドは現在のファイルのパス、名前、バージョン番号、タイプ、およびその他の情報を表示します

8.違いを比較します。diff(di)

  • コマンドの使用法svn diff -r m:n xxx.txt
  • コマンドの略語svn di -r m:n xxx.txt
  • コマンドの説明:バージョンmとバージョンのn違いを比較します。 
    • -r:比較する2つのバージョン番号。例:svn di -r 2:3 123.txt(参照のバージョンとの間の違い123.txt23バージョン)。

9.ファイルを削除します。delete(del,remove,rm)

  • コマンドの使用法svn delete path -m "DeleteMessage"
  • コマンドの略語svn del/remove/rm path -m "DeleteMessage"
  • コマンドの説明:このコマンドを使用するには2つの方法があります。 
    • リモート削除:(svn delete svn://192.168.1.1/project_v1/123.php -m "delete test file"この方法で削除した後、バージョンライブラリ内のファイルは直接削除されます)。
    • 削除のために送信:最初にsvn delete 123.php、次にsvn ci -m "delete file"(この方法をお勧めします)。

 

 

珍しいコマンド

10.ファイルをロックします。lock

  • コマンドの使用法svn lock -m "LockMessage" xxx.txt
  • コマンドの説明:主にファイルの競合を防ぐため。

11.ファイルのロックを解除します。unlock

  • コマンドの使用法svn unlock xxx.txt

12.ファイルを移動するか、ファイルの名前を変更します。move(mv,rename,ren)

  • コマンドの使用法svn move -m "MoveMessage" xxx.txt
  • コマンドの略語svn mv/rename/ren -m "MoveMessage" xxx.txt
  • コマンドの説明:このコマンドをより直感的に理解するために、2つの例を挙げましょう。 
    • svn move -m "rename file" 123.txt 456.txt(現在のディレクトリの123.txt名前を変更456.txtます)。
    • svn move -m "move file" 123.txt test/123.txt(現在のディレクトリ123.txtを現在のサブディレクトリに移動しtestます)。

13.バージョンライブラリに属する​​ファイルとディレクトリを一覧表示します。list(ls)

  • コマンドの使用法svn list path
  • コマンドの略語svn ls
  • コマンドの説明pathディレクトリの下にバージョンライブラリに属する​​ファイルとディレクトリを表示します。pathパラメータがない場合は、現在のディレクトリのバージョンライブラリに属する​​ファイルとディレクトリが表示されます。

 

 

LinuxSVNコマンドの詳細な説明

 

1.ファイルをローカルディレクトリにチェックアウトします

        svn checkout  path(pathはサーバー上のディレクトリです)
        例:svn checkout svn://192.168.1.1/pro/domain
        省略形:svn co

2.リポジトリに新しいファイルを追加します

        svn add  file
        例:svn add test.php(add test.php)
        svn add * .php(現在のディレクトリにあるすべてのphpファイルを追加)

3.変更したファイルをリポジトリに送信します

        svn commit  -m "LogMessage" [-N] [--no-unlock] PATH (ロックを保持することを選択した場合は、-no-unlockスイッチを使用します)
        例:svn commit -m "add test file for my test "test .phpの
        略語:svn ci

4.ロック/ロック解除

        svn lock  -m "LockMessage" [--force] PATH
        例如:svn lock -m "ロックテストファイル" test.phpsvn
        ロック解除 PATH

5.特定のバージョンに更新します

        svn update -r  m path
        例:
        svn update後でディレクトリがない場合、現在のディレクトリとサブディレクトリ内のすべてのファイルがデフォルトで最新バージョンに更新されます。
        svn update -r 200 test.php(バージョンライブラリ内のファイルtest.phpをバージョン200に復元します)
        svn update test.php(更新、バージョンライブラリと同期します。送信時に期限切れのプロンプトが表示される場合は、競合が原因であり、最初に更新し、ファイルを変更してから、解決されsvnをクリアし、最後にコミットを送信する必要があります
        省略形:svn up

6.ファイルまたはディレクトリのステータスを表示する

        1)svnステータス パス(ディレクトリ内のファイルとサブディレクトリのステータス、通常のステータスは表示されません)
            [?: svnの制御下にない、M:コンテンツが変更されている、C:競合が発生している、A:に追加される予定リポジトリ; K:ロック]
        2)svn status -v  path (ファイルとサブディレクトリのステータスを表示)
            最初の列は同じままで、2番目の列は作業バージョン番号を表示し、3番目と4番目の列は最後に変更されたバージョン番号とそれを変更した人。
        注:svnはローカルバージョンの元のコピーをローカル.svnに保持するため、3つのコマンドsvn status、svn diff、およびsvnrevertはネットワークなしでも実行できます。
        略語:svn st

7.ファイルを削除します

        svn delete  path -m "delete test fle"
        例:svn delete svn://192.168.1.1/pro/domain/test.php -m "delete test file"
        または、直接svn delete test.php、次にsvn ci -m 'テストファイルの削除'、この
        省略形をお勧めします:svn(del、remove、rm)

8.ログを表示します

        svn log  path
        例:svn log test.phpは、このファイルのすべての変更レコードと、バージョン番号の変更を表示します。

9.ファイルの詳細を表示する

        svn info  path
        例:svn info test.php

10.違いを比較します

        svn diff  path(変更されたファイルを基本バージョンと比較します)
        例:svn diff test.php
        svn diff  -rm:n path(バージョンmとバージョンnの違いを比較します)
        例:svn diff -r 200:201 test .phpの
        省略形:Svn di

11.現在のファイルに2つのバージョン間の相違点をマージ

        svn merge -r  m:n path
        例:svn merge -r 200:205 test.php(バージョン200と205の違いを現在のファイルにマージしますが、通常は競合が発生するため、対処する必要があります)

12. SVNのヘルプ

        svn help
        svn help ci

-------------------------------------------------- ----------------------------

上記は一般的に使用されるコマンドですが、ここではあまり使用されないコマンドをいくつか示します。

-------------------------------------------------- ----------------------------

13.リポジトリの下のファイルとディレクトリのリスト

        svn list  path
        は、パスディレクトリ内のバージョンライブラリに属する​​すべてのファイルとディレクトリを表示します。
        省略形:svn ls

 

14.バージョン管理下で新しいディレクトリを作成します

        svn mkdir:バージョン管理下に新しいディレクトリを作成します。
        使用法:1。mkdirPATH ... 2. mkdir URL ...は、バージョン管理されたディレクトリ作成ます。1.作業コピーPATHで指定されたすべてのディレクトリがローカル側に作成され、次の送信のために新しいスケジュールが追加されます。2. URLで指定された各ディレクトリは、すぐに送信することでウェアハウスに作成されます。どちらの場合も、すべての中間ディレクトリが事前に存在している必要があります。
                
       
       
       
       

 

15.ローカルの変更を復元します

        svn revert:元の変更されていない作業コピーファイルを復元します(ローカルの変更のほとんどを復元します)。revert:
        使用法:revert PATH ...
        注:このサブコマンドはネットワークにアクセスせず、競合を解決します。ただし、削除されたディレクトリは復元されません

 

16.コードベースURLの変更

        svn switch(sw): 作業コピーを別のURLに更新します。
        使用法:
                 1。URL [PATH]を切り替えます。2。--relocateFROM TO [PATH ...]を切り替えます。

        1.作業コピーを更新し、新しいURLにマップします。その動作は「svnupdate」と非常によく似ています。また、サーバー上のファイルをローカルファイルとマージします。これは、作業コピーを同じウェアハウス内のブランチまたはタグにマッピングする方法です。
        2.作業コピーのURLメタデータを書き換えて、純粋なURLの変更を反映します。ウェアハウスのルートURLが変更された(たとえば、プロジェクト名またはホスト名が変更された)が、作業コピーが同じウェアハウスの同じディレクトリにマップされている場合は、このコマンドを使用して、作業コピーと倉庫。

 

17.競合を解決します

        svn resolve: 作業コピーのディレクトリまたはファイルの「競合」ステータスを削除します。
        使用法:解決されたPATH ...
        注:このサブコマンドは、構文に従って競合を解決したり、競合フラグを削除したりしません。競合する関連ファイルを削除してから、PATHを再度送信できるようにします。

 

18.指定したファイルまたはURLの内容を出力します。

        svn cat  target [@version] ...バージョンが指定されている場合、指定されたバージョンから検索されます。
        svn cat -rPREVファイル名>ファイル名(PREVは以前のバージョンです。特定のバージョン番号を書き込んで、出力結果を送信することもできます)

 

19.作業コピー内の残りのすべてのログファイルを見つけて、プロセスのロックを削除します。

Subversionが作業コピー(または.svn内の情報)を変更する場合は、可能な限り注意が必要です。変更する前に、ログファイルにインテンションを書き込み、ログファイル内のコマンドを実行してから、ログを削除します。ファイル。これは、元帳のファイルシステムアーキテクチャに似ています。Subversionの操作が中断された場合(たとえば、プロセスが強制終了された場合、マシンが停止した場合)、ログファイルはハードディスクに保存されます。ログファイルを再実行することにより、Subversionは最後に開始された操作を完了できます。コピー一貫した状態に戻すことができます。

これはsvnクリーンアップが行うことです:それは作業コピーに残っているすべてのログファイルを見つけて、プロセスのロックを取り除きます。Subversionから、作業コピーの一部が「ロック」されていることが通知された場合は、このコマンドを実行する必要があります。同様に、svnstatusはLを使用してロックされたアイテムを表示します。

$ svn status
L somedir
M somedir / foo.c

$ svnクリーンアップ
$ svn status
M somedir / foo.c

 

20.ユーザーのバージョン管理されていないディレクトリツリーをリポジトリにコピーします。
svn importコマンドは、ユーザーのバージョン管理されていないディレクトリツリーをリポジトリにコピーする最速の方法です。必要に応じて、いくつかの中間ファイルも作成します。

$ svnadmin create / usr / local / svn / newrepos $ svn import mytree file:/// usr / local / svn / newrepos / some / project mytree /foo.cの追加mytree / bar.cの追加mytree / subdirの追加mytree /の追加subdir /quux.hコミットされたリビジョン1。

前の例では、ディレクトリmytreeがリポジトリのsome / projectにコピーされます。

$ svn list file:/// usr / local / svn / newrepos / some / project bar.c foo.c subdir /

インポート後、元のディレクトリツリーは作業コピーに変換されないことに注意してください。作業を開始するには、svncheckoutを実行して作業コピーをエクスポートする必要があります。

添付ファイル:
Subversionのフックスクリプト を使用してSVNの電子メール通知を追加できます 
。Subversionをコンパイルしてインストールした後、ソースコードのツールの下にcomm-email.plのPerlスクリプトがあります。アーカイブディレクトリにPerlスクリプトがあります。Aフックディレクトリ、フックディレクトリに入り、post-commit.tmplの名前をpost-commitに変更し、実行権限を付与します。 
コミット後のスクリプトを変更し、comm-email.plスクリプトの絶対パスを追加します。そうしないと、SVNはcomm-email.plを見つけることができません。 

REPOS = "$ 1" 
REV = "$ 2" 
は/ usr / local / SVN /resp/commit-email.pl "$ REPOS" "$ REV" [email protected] [email protected] 
#log-commit.py -リポジトリ "$ REPOS" --revision "$ REV" 

最後の行はロギング用です。私はこの関数を使用しないので、コメントアウトしました。

おすすめ

転載: blog.csdn.net/qq_14874791/article/details/109114474