0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【cygwin】cvs環境を作る

Last updated at Posted at 2020-07-22
  • 2020-07-28 更新。Subversion環境に移行。

1. 背景

RCSを使ってスクリプトをバージョン管理していたけど、ファイルも増えて来たのでCVS環境に切り替える。作業メモを記す。

2. 状況

  • リポジトリのパスはローカルになるが、実態はMEGAというフリーのストレージサービス。OneDriveもあるけど、利用頻度にしばりのあるMEGAを使う。
  • 登録対象のディレクトリ配下には管理対象とならないテキストファイルがある。

3. 参考ページ

4. 管理対象のディレクトリ

  • tools/ 諸々のスクリプトを置く.今回の管理対象.
    • cron/ 自動実行のスクリプトを置く.
      • TASK_NAME/ 関連スクリプトが複数ある場合に作成する
        • .temp/ 実行時の中間ファイルを置く.ファイルは管理対象外.
        • .data/ 実行後のファイルを置く.ファイルは管理対象外.
  • logs/ ログファイルを置く.管理対象外.

5. 手順

リポジトリ初期化

$ export CVSROOT="/cygdrive/c/Users/USERNAME/MEGA/MACHINE_NAME/cvs_repository"
$ cvs init

IMPORT前の準備

管理対象外にするファイルのために.cvsignoreを作成する。

IMPORT

$ cd tools
$ cvs import -m "My Script Files" tools BRANCH_1 RELEAS_1_1
  • カレントディレクト以下にあるファイルが登録される.
    • .cvsignoreで指定されているファイルは無私される.
  • オプションについて
    • tools ${CVSROOT}以下に作成されるディレクトリ名
    • BRANCH_1 ベンダータグと説明されているけど、最初のブランチタグっぽい
    • RELEAS_1_1 リリースタグ

CHECKOUT

toolsはホームディレクト直下にある

$ cd
$ cvs checkout tools
$ cvs checkout tools/cron
$ cvs checkout tools/cron/TASK_NAME
$ cvs checkout tools/cron/TASK_NAME/.data
$ cvs checkout tools/cron/TASK_NAME/.temp
  • 既にディレクトリがある場所に重ねるようにcvs checkoutを実行
  • 何もなければ一回で全てcheckoutされる

6. 日常的に使うコマンド

先ずは設定(~/.cvsrc)

cvs -q

作業状況の確認、他所で登録された更新の反映

cvs update

  • subversionから見ると、cvsは「他所の更新を確認する」「他所の更新を反映する」がコマンドとして分かれていない。

変更内容の登録

cvs commit -m "コメント"

7. 雑記

importのベンタータグについて

そういえば「import」で使う各引数の説明を見つけた
https://nxmnpg.lemoda.net/ja/1/cvs

`cvs import' を使うことで外部の供給元 (例えばソースベンダ) からのソース配布物 全体をあなたのソースリポジトリのディレクトリへ取り込めます。 最初のリポジトリの作成と、外部の供給元からのモジュールへの 大規模な更新の両方にこのコマンドを使うことができます。

ここまでの説明ではよく分からなかった。

外部からのソースは第一レベルの ブランチ、デフォルトでは 1.1.1に保存されます。 以降の更新は このブランチのリーフになります。 例えば、最初に import したソース集合からのファイルはリビジョン 1.1.1.1になり、 次の import による更新でファイルはリビジョン 1.1.1.2になり、以下同様に続きます。

ここまで読んで、改めて import の説明を読んでやっと分かった。

import が想定している状況

  1. 他社製のソースコードをもらってcvs importで登録
  2. 自社で開発を進める
  3. その後、他社から更新版をもらう
  4. ベンダータグを使って cvs checkout -r VENDOR_TAG を実行
  5. この環境で更新版を受け入れ、cvs commitを実行する
  6. CURRENTブランチでVENDOR_TAGとの差分を確認して適宜判断

通常は「他社製=自分」なのでピンと来なかったというわけです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?