rcsを使う(その2)


アニメ『ブラッドラッド』(2013)

本アニメ、いきなりヒロインが死んでしまいます。食虫植物に食べられて骨になります。

前回に続き、rcsを使って理解していきます。チェックイン、チェックアウトをもう一度練習したら、管理ファイルの内容を確認しようと思います。

では現在のカレントディレクトリの状態とログです。

takk@deb9:~/tmp$ ls
RCS  test.c
takk@deb9:~/tmp$ rcs log test.c

RCS file: RCS/test.c,v
Working file: test.c
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
TEST
----------------------------
revision 1.2
date: 2018/09/12 11:58:02;  author: takk;  state: Exp;  lines: +2 -0
2nd Check in
----------------------------
revision 1.1
date: 2018/09/12 11:49:34;  author: takk;  state: Exp;
Initial revision
=============================================================================
takk@deb9:~/tmp$ 

パーミッションは、やはりリードオンリーです。

takk@deb9:~/tmp$ ls -l test.c
-r--r--r-- 1 takk takk 65  9月 13 19:53 test.c
takk@deb9:~/tmp$ 

ロックを取得します。これでライト可能になるでしょうか?

takk@deb9:~/tmp$ rcs -l test.c
RCS file: RCS/test.c,v
1.2 locked
done
takk@deb9:~/tmp$ 

ロックを取得しても、パーミッションは変更なしです。前回と同じく自分で変えるしかないですね。
chmodで変更します。

takk@deb9:~/tmp$ ls -l test.c
-r--r--r-- 1 takk takk 65  9月 13 19:53 test.c
takk@deb9:~/tmp$ chmod 644 test.c
takk@deb9:~/tmp$ ls -l
合計 8
drwxr-xr-x 2 takk takk 4096  9月 13 19:58 RCS
-rw-r--r-- 1 takk takk   65  9月 13 19:53 test.c
takk@deb9:~/tmp$

適当にソースを変更して、チェックインします。

takk@deb9:~/tmp$ vi test.c
takk@deb9:~/tmp$ rcs ci test.c
RCS/test.c,v  <--  test.c
new revision: 1.3; previous revision: 1.2
enter log message, terminated with single '.' or end of file:
>> TEST
>> 
>> .
done
takk@deb9:~/tmp$

チェックインすると、ソースがカレントディレクトリから消えます。

takk@deb9:~/tmp$ ls
RCS
takk@deb9:~/tmp$ 

ログを確認。

takk@deb9:~/tmp$ rcs log test.c

RCS file: RCS/test.c,v
Working file: test.c
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
TEST
----------------------------
revision 1.3
date: 2018/09/13 11:00:44;  author: takk;  state: Exp;  lines: +3 -1
TEST
----------------------------
revision 1.2
date: 2018/09/12 11:58:02;  author: takk;  state: Exp;  lines: +2 -0
2nd Check in
----------------------------
revision 1.1
date: 2018/09/12 11:49:34;  author: takk;  state: Exp;
Initial revision
=============================================================================
takk@deb9:~/tmp$ 

1.3のログが増えましたね。

管理ファイルの内容を見ていきましょう。

takk@deb9:~/tmp$ cat RCS/test.c,v
head	1.3;
access;
symbols;
locks; strict;
comment	@ * @;


1.3
date	2018.09.13.11.00.44;	author takk;	state Exp;
branches;
next	1.2;

1.2
date	2018.09.12.11.58.02;	author takk;	state Exp;
branches;
next	1.1;

1.1
date	2018.09.12.11.49.34;	author takk;	state Exp;
branches;
next	;


desc
@TEST
@


1.3
log
@TEST
@
text
@#include <stdio.h>
int main()
{
	printf("HELLO1\n");
	printf("HELLO2\n");
	printf("HELLO3\n");
	return 0;
}
@


1.2
log
@2nd Check in
@
text
@d4 3
a6 1
	printf("HELLO\n");
@


1.1
log
@Initial revision
@
text
@d1 1
d4 1
@
takk@deb9:~/tmp$ 

日付、ログ、ソース本体、の順に情報が格納されています。
ソースは、最新のソースは、すぐに取り出せるように、そのまま格納されてるっぽいです。過去のソースは、一つ前のrevisionからの差分で管理してますね。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA