CVS共通コマンド
CVS共通操作Howto
著者 廖 裕磊
最終更新日 2003/06
コンテンツ一覧
- サーバーへのプロジェクトのインポート
- サーバーからドキュメントを更新する
- サーバーへの変更コミット
- サーバーに新しいファイルやディレクトリを追加する
- プロジェクトからのファイルの削除
- プロジェクトからのディレクトリの削除
- ファイルの移動・名前変更
- ディレクトリを移動または名前変更する
- アイテムの削除
- サーバー上の全アイテムをリストアップ
- CVS情報を含まないプロジェクトディレクトリをエクスポートします。
- cvs操作のための説明情報を指定する
- ローカルファイルとcvsサーバ上のファイルを比較する
- 変更の競合を解決する
- サーバーへのファイル転送の高速化
- バイナリーファイルの取り扱い
<テーブル
chdir myproject
cvs import -m "インポートプロジェクト" myproject nes init
hello.cがインポートされ、プロジェクト名がmyprojectになりました。
このインポートによって生じるコンフリクトはありません
<スパン このインポートによって作成されたコンフリクトはありません
<テーブル
略称:cvs up
cvs update -d
cvs サーバーです。を更新しています。
M shutdown.c
ファイル名の前には、次のような文字があり、それぞれ異なる意味を持ちます。
<テーブル
略称:cvs ci
cvs commit -m "テスト関数を追加しました"。
shutdown.cでチェックする。
/cvsroot/shutdown/shutdown.c,v <-- shutdown.c
(コミットファイル)
新リビジョン:1.3、旧リビジョン:1.2
(新リビジョン1.3、旧リビジョン1.2。このリビジョン番号は、cvs サーバー上のファイルリビジョン記録であり、プロジェクトのバージョン番号とは関係ありません)
完了
問題がある場合は、次のような出力メッセージが表示されることがあります。
cvs サーバーです。up-to-date check failed for `hello.c'.
cvs [server aborted]: まず上記のエラーを訂正してください!
上記2行のメッセージは、 "hello.c" ファイルの更新チェックに失敗したので、上記のエラーを先に修正するよう要求している、という意味です。
通常、この問題の最も一般的な理由は、あなたが修正したファイルが他の誰かによって修正され、cvs サーバーにコミットされたことです。 をご覧ください。ローカルファイルとcvsサーバー上のファイルを比較する方法
この問題を修正する唯一の方法は、まずサーバーからローカルに変更されたファイルを cvs update コマンドで更新することです。競合がある場合は、競合を解決した後、再度 cvs commit コマンドを実行してください。 参考 変更の競合を解決する方法
<テーブル
cvs add -m "テスト.cファイルを追加します" test.c
cvs add -m "複数の.cファイルを追加する" *.c
(ファイル追加操作のスケジューリング)
cvs サーバー: 'cvs commit' を使ってこのファイルを恒久的に追加してください。
(実際にコミット操作を行うには cvs commit を使用します)
ディレクトリを追加する場合は、以下の手順で行います。
<スパン cvs add mydir
? mydir/ProjectDoc.cpp
(? 記号は、ファイルが cvs add コマンドで cvs サーバに追加されていないことを意味します)
ディレクトリ /cvsroot/myproject/mydir がリポジトリに追加されました。
(プロジェクトにディレクトリmydirが追加されました。)
chdir mydir
cvs add ProjectDoc.cpp
cvs server: ファイル `ProjectDoc.cpp' を追加するためにスケジューリングしています。
cvs サーバー: 'cvs commit' を使ってこのファイルを恒久的に追加します。
cvsコミット
<スパン cvsコミットします。を検証しています。ログメッセージが変更されないか、指定されないか
RCSファイルです。/cvsroot/myproject/mydir/ProjectDoc.cpp,v
完了
ProjectDoc.cppで確認中。
/cvsroot/myproject/mydir/ProjectDoc.cpp,v <-- ProjectDoc.cpp
初期リビジョン:1.1
完了
追加するファイルが複数ある場合は、ワイルドカードを使用することができます。すべての追加が終わってから cvs commit でコミットする方が効率的です。
<テーブル
cvs remove test.c
cvs remove *.c
cvs server: ファイル `test.c' はまだ作業ディレクトリにあります。
cvsサーバ。1 ファイルが存在します; 最初に削除してください
(ファイル "test.c" がまだローカルディレクトリにあるので、まずローカルファイルを削除してください)
削除したいローカルファイルは、まず名前を変更するか別の場所に移動し、後で不要になったことが確認できたら削除することをお勧めします。これは cvs が削除された後のサーバ上のファイルを復元できないからです。
ren test.c test.c.bak
cvs remove test.c
cvs server: `test.c' を削除するようにスケジューリングします。
cvs server: 'cvs commit' を使ってこのファイルを永久に削除してください。
cvsコミット
test.cを削除する。
/cvsroot/myproject/test.c,v <-- test.c
新しいリビジョン:削除、以前のリビジョン:1.1
完了
最後に、cvs commit コマンドを使用して、削除操作をコミットします。
今実行した削除を取り消すには (cvs commit で削除をコミットする前に行う必要があります)、cvs add コマンドを使用します。
cvs add test.c
U test.c
cvs サーバー: test.c, バージョン 1.5, 復活
(ファイル "test.c" resurrected)
同じ効果を得るためのもう一つの方法。
test.c test.c.bakにリネームします。
cvs削除
cvsコミット
<テーブル
chdir mydir
delete *. *.
cvs削除
cvsコミット
上記の操作により、mydir ディレクトリからすべてのファイルが削除され、mydir は空のディレクトリになります。その後、cvs update -P コマンドを使用して空のディレクトリを削除できます (しかし、それらはまだサーバ上にあり、-P 引数なしで cvs update -d コマンドを使用すると、ローカルに作成されます)。
<テーブル
test.c を new.c にリネームする。
cvs remove test.c
cvs add new.c
cvs commit -m "ファイル test.c を new.c" にリネームしてください。
<テーブル
mkdir newdir
chdir mydir
を動かす *. * ... \Ίταμμα
cvs削除
chdir ... \新しいディレクトリ
cvs add *. *
cvs commit -m "ディレクトリmydirをnewdirにリネームします"。
<テーブル
plink user@host "rm -i -r /cvsroot/myproject"
上記のコマンドは実際にサーバーにログインし、/cvsroot/myprojectディレクトリをrmコマンドで削除しています。
警告 rmコマンドは非常に危険ですので、この方法を使ってプロジェクトを削除しないことを強くお勧めします。代わりに、CVS リポジトリの管理者に頼んで、不要なプロジェクトを削除してもらうようにしましょう。
http://www.chiark.greenend.org.uk/~sgtatham/putty/
<テーブル
plink user@host "ls -lF /cvsroot/ | grep -v "CVSROOT""
上記のコマンドは、サーバー上の全項目を一覧表示します。または、以下のスクリプトを使用します。
エコーオフ
もし、! CVSROOT% == !終了
for /f "tokens=2,3 delims=:" %%i in ("%CVSROOT%") do @plink %%i "ls -lkF %%j/ | grep -v "CVSROOT/ "".Ls %%j/ %%j/ %%i %%i %%i "ls -lkF %%j/ | grep -v %%i "CVSROOT/ ""
:終了
drwxrwxrwx 4 cvs_daut cvs 512 May 6 16:48 atl-freebsd_diary/
drwxrwxrwx 3 cvs_daut cvs 512 5月5日 13:43 atl-msgplus2/
drwxrwxrwx 3 cvs_daut cvs 512 May 5 13:43 atl-nav2003/
drwxrwxrwx 4 cvs_daut cvs 512 May 5 13:43 atl-os/
drwxrwxrwx 9 cvs_daut cvs 512 May 9 04:52 case-ae/
drwxrwxrwx 2 cvs_daut cvs 512 5月7日 11:39 case-hlg/
drwxrwxrwx 4 cvs_daut cvs 512 May 8 02:55 case-sdae/
drwxrwxrwx 5 cvs_daut cvs 512 5月5日 13:44 case-wdae/
drwxrwxrwx 2 cvs_daut cvs 512 May 5 13:44 docs-MeetingRecord/
drwxrwxrwx 6 cvs_daut cvs 512 5月7日22:10 docs-devl_common/
drwxrwxrwx 3 cvs_daut cvs 512 May 9 09:25 docs-freebsd_diary/
....
<テーブル
cvs export -D now -d myproject_release myproject
cvs exportです。myproject_release を更新中
U myproject_release/test.c
U myproject_release/hello.c
(2つのファイルがエクスポートされました)
<テーブル
cvs add -m "ファイル test.c" test.c を追加します。
m引数を使用するのとは対照的に、メモ帳に複数行の説明情報を入力し、操作の詳細を記述することができます。CVS: で始まる行はメモ帳のウィンドウでは無視されます。
<テーブル
cvs diff test.c
インデックス:test.c
===================================================================
RCSファイルです。/cvsroot/test/test.c,v
リビジョン1.1.1.1の取得
diff -r1.1.1.1 test.c
3c3
< int main()
---
> int main(int argc, char* argv[])
5c5,7
< printf("Hello, world !\n");
---
> printf("Hello, world ! Come on, Baby !\n");
> printf("My god, you are pig!)
>
上の出力で、接頭辞が < のものが cvs リポジトリにあるバージョンの内容、接頭辞が > のものがローカルファイルの内容を示しています。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例