まだrcsコマンドやってます。
今回は、シンボリック名使ってみます。タグみたいなものでしょうか。
man rcsの-nオプションの解説を読んでみます。
-nname[:[rev]] 枝またはリビジョン rev にシンボリック名 name を関連付けます。 : も rev も省略した場合、シンボリック名 name は削除されます。 name がすでに別の リビジョンに関連付けられていた場合はエラーとなりま す。 rev がシンボリック名の場合も name との関連付けは番号によっ て行われます。枝番号に . を付加したものは、その枝での最新のリビ ジョンを示します。 : だけで rev を省略した場合、デフォルト枝(通 常は幹)の最新のリビジョンが関連付けられます。 たとえば、 rcs -nname: RCS/* はすべての RCS ファイルの最新のリビジョンに対 してシンボリック名 name を関連付けます。一方、 rcs -nname:$ RCS/* は各 RCS ファイルに対応したワークファイル中の キーワードに含まれる リビジョン番号と name を関連付けます。
単純にレビジョンの別名のように思えます。
使ってみましょう。
takk@deb9:~/tmp$ rcs -nTEST1:1.3 test2.c RCS file: RCS/test2.c,v done takk@deb9:~/tmp$
これでレビジョン1.3がTEST1というシンボリック名で指定できるようになりました。
どうやって使うのか。。。ヘルプを見てみます。
takk@deb9:~/tmp$ rcs log --help ~省略~ Options: -L Ignore RCS files with no locks set. -R Print the RCS file name only. -h Print only the "header" information. -t Like -h, but also include the description. -N Omit symbolic names. -b Select the default branch. -dDATES Select revisions in the range DATES, with spec: D -- single revision D or earlier D1<D2 -- between D1 and D2, exclusive D2>D1 -- likewise <D, D> -- before D >D, D< -- after D Use <= or >= to make ranges inclusive; DATES may also be a list of semicolon-separated specs. -l[WHO] Select revisions locked by WHO (comma-separated list) only, or by anyone if WHO is omitted. -r[REVS] Select revisions in REVS, a comma-separated list of range specs, one of: REV, REV:, :REV, REV1:REV2 -sSTATES Select revisions with state in STATES (comma-separated list). -w[WHO] Select revisions checked in by WHO (comma-separated list), or by the user if WHO is omitted. -T No effect; included for compatibility with other commands. -V Obsolete; do not use. -VN Emulate RCS version N. -xSUFF Specify SUFF as a slash-separated list of suffixes used to identify RCS file names. -zZONE Specify date output format in keyword-substitution. -q No effect, included for consistency with other commands. ~省略~
シンボリック名を指定するオプションがないので、-rオプションで直接指定すれば良いのかもしれません。
takk@deb9:~/tmp$ rcs log -rTEST1 test2.c RCS file: RCS/test2.c,v Working file: test2.c head: 2.2 branch: locks: strict access list: symbolic names: TEST1: 1.3 keyword substitution: kv total revisions: 105; selected revisions: 1 description: test ---------------------------- revision 1.3 date: 2018/09/23 07:04:11; author: takk; state: Exp; lines: +1 -1 log5 ============================================================================= takk@deb9:~/tmp$
-rオプションで指定できましたね。
では今度は、作成したシンボリック名を削除します。
-nオプションでシンボリック名を指定する時に、レビジョンを指定しなければ削除になります。
takk@deb9:~/tmp$ rcs -nTEST1 test2.c RCS file: RCS/test2.c,v done takk@deb9:~/tmp$
削除されました。
これで、TEST1では指定できなくなったと思います。
takk@deb9:~/tmp$ rcs log -rTEST1 test2.c log: RCS/test2.c,v: Symbolic name `TEST1' is undefined. takk@deb9:~/tmp$
コメント