Emacs
如果事先沒有被 RCS 鎖定(並且我使用的是 Emacs VC 模式),如何送出修改過的文件?
有時,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
此時,兩者
ci
和co
都會失敗:$ 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