如果事先没有被 RCS 锁定,如何提交修改后的文件(我使用的是 Emacs VC 模式)?

imz*_*hev 6 emacs

有时,RCS 控制下的文件在未锁定时被修改(= 由我检出以进行修改)。

(在这些情况下,它实际上被 RCS 设置为只读以防止此类修改;但它可能是 /etc/ 下的配置文件,因为我正在升级包而被修改。)

然后通常我还是想提交新的修改,就好像在修改之前已经签出最后一个修订版。

那么如何进行最好呢?

我通常使用 Emacs VC,并执行C-x v v检出和检入。但如果文件尚未预先检出,则此操作将失败。有没有办法专门从 Emacs 内部进行?但是也欢迎使用 shell 命令回答。

Mik*_*kel 7

其实要简单得多。您可以将rcs -l其锁定,然后再次尝试将其重新签入。

我假设你问这个问题时的情况是这样的:

$ echo v1 >foo
$ ci -u -t-"Test file." foo
$ chmod u+w foo
$ echo v2 >foo
Run Code Online (Sandbox Code Playgroud)

此时,cico都会失败:

$ co -l foo
foo,v  -->  foo
revision 1.1 (locked)
writable foo exists; remove it? [ny](n): 

$ ci -u foo
foo,v  <--  foo
ci: foo,v: no lock set by username
Run Code Online (Sandbox Code Playgroud)

这是锁定文件并提交更改的方法:

$ rcs -l foo
RCS file: foo,v
1.1 locked
done
$ ci -u -m"Second revision." foo
foo,v  <--  foo
new revision: 1.2; previous revision: 1.1
done
Run Code Online (Sandbox Code Playgroud)