まだ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$



コメント