変更されたファイルがRCSによって事前にロックされていない場合(Emacs VCモードを使用している場合)、どのようにコミットできますか?

変更されたファイルがRCSによって事前にロックされていない場合(Emacs VCモードを使用している場合)、どのようにコミットできますか?

時にはRCS制御下のファイルはロックされずに変更されます(=チェックアウトして変更されます)。

(この場合、実際にはそのような修正を防ぐためにRCSによって読み取り専用に設定されていますが、パッケージをアップグレードしている間は、変更された/ etc /の下の設定ファイルかもしれません。)

その後、通常、変更が適用される前に最後のリビジョンがチェックアウトされたかのように新しい変更をコミットしたいと思います。

それでは、どのように進むのが最善ですか?

私は主にEmacs VCを使用してC-x v vチェックアウト、チェックインを行います。ただし、最初にファイルをチェックアウトしないと、この操作は失敗します。 Emacs内でのみこれを行う方法はありますか?ただし、シェルコマンドを使用して応答することもできます。

ベストアンサー1

実際にははるかに簡単です。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

おすすめ記事