Emacs

如果事先沒有被 RCS 鎖定(並且我使用的是 Emacs VC 模式),如何送出修改過的文件?

  • April 6, 2014

有時,RCS 控制下的文件在未鎖定的情況下被修改(= 我已簽出以進行修改)。

(在這些情況下,它實際上被 RCS 設置為只讀以防止此類修改;但它可能是 /etc/ 下的配置文件,因為我正在升級軟體包而被修改。)

然後通常我仍然想送出新的修改,就好像最後一個修訂在修改之前已經被簽出一樣。

那麼如何進行最好呢?

我通常使用 Emacs VC,並且做C-x v v簽出和簽入。但是如果文件沒有事先簽出,這將失敗。有沒有辦法專門從 Emacs 中進行?但也歡迎使用 shell 命令回答。

實際上它要簡單得多。您可以rcs -l將其鎖定,然後嘗試重新簽入。

我假設您提出問題時的情況是這樣的:

$ echo v1 >foo
$ ci -u -t-"Test file." foo
$ chmod u+w foo
$ echo v2 >foo

此時,兩者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

這是您可以鎖定文件並送出更改的方式:

$ 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

引用自:https://unix.stackexchange.com/questions/123122