41

チェックインしたファイルを CVS ブランチから削除しました。つまり:

cvs remove -f file.txt
cvs commit

ファイルを復元するにはどうすればよいですか?

4

8 に答える 8

40

私は信じている:

cvs add file.txt
cvs commit file.txt

...屋根裏から復活させます。

于 2008-09-27T22:56:30.803 に答える
25

を使用して、既にコミットされcvs addた操作を元に戻すことができないことがわかりました。cvs removeしたがって、これは機能します:

$ cvs remove -f file.txt
$ cvs add file.txt

しかし、これは機能しません:

$ cvs remove -f file.txt
$ cvs commit
$ cvs add file.txt

これまでに見つけた最も簡単な方法は、実行cvs status file.txtしてリビジョン番号を見つけることです。次に、リビジョンの内容を取得して、再度追加します。

$ cvs update -p -r rev file.txt > file.txt
$ cvs add file.txt
$ cvs commit
于 2008-09-28T06:50:34.110 に答える
4

サーバー上の私の cvs バージョンが非常に古いため、これcvs addはうまくいきませんでした。CVS バージョン 1.11.22 で問題なく動作することを確認しています。

于 2008-09-28T08:10:22.077 に答える
4

試す:

cvs add file.txt
cvs update file.txt
cvs commit file.txt
于 2012-08-02T09:11:47.483 に答える
3

$CVSROOT ディレクトリ、関連するモジュール ディレクトリ、次に Attic に cd し、fileOfInterest,v を編集して、Dead; という行を変更します。指数へ; 次に、fileOfInterest,v を上のディレクトリに移動します。

チェックアウトしたモジュールを更新すると、ファイルが復元されるようになりました。

于 2013-04-18T13:37:45.027 に答える
3

ハリーの成功の欠如を考慮して、上記の答えが機能することを実証するために私が行ったことの記録を以下に示します (その長さについて事前にお詫びします)。

C:\foo>dir
 Volume in drive C is Local Disk
 Volume Serial Number is 344F-1517

 Directory of C:\foo

28/09/2008  05:12 PM    <DIR>          .
28/09/2008  05:12 PM    <DIR>          ..
28/09/2008  05:12 PM    <DIR>          CVS
28/09/2008  05:11 PM                19 file.txt
               1 File(s)             19 bytes
               3 Dir(s)  22,686,416,896 bytes free

C:\foo>cvs status file.txt
===================================================================
File: file.txt          Status: Up-to-date

   Working revision:    1.2     Sun Sep 28 07:11:58 2008
   Repository revision: 1.2     C:\jason\CVSROOT/foo/file.txt,v
   Sticky Tag:          (none)
   Sticky Date:         (none)
   Sticky Options:      (none)


C:\foo>cvs rm -f file.txt
cvs remove: scheduling `file.txt' for removal
cvs remove: use 'cvs commit' to remove this file permanently

C:\foo>cvs commit -m "" file.txt
Removing file.txt;
C:\jason\CVSROOT/foo/file.txt,v  <--  file.txt
new revision: delete; previous revision: 1.2
done

C:\foo>cvs status file.txt
===================================================================
File: no file file.txt          Status: Up-to-date

   Working revision:    No entry for file.txt
   Repository revision: 1.3     C:\jason\CVSROOT/foo/Attic/file.txt,v

C:\foo>more file.txt
Cannot access file C:\foo\file.txt

C:\foo>dir
 Volume in drive C is Local Disk
 Volume Serial Number is 344F-1517

 Directory of C:\foo

28/09/2008  05:12 PM    <DIR>          .
28/09/2008  05:12 PM    <DIR>          ..
28/09/2008  05:12 PM    <DIR>          CVS
               0 File(s)              0 bytes
               3 Dir(s)  22,686,400,512 bytes free

C:\foo>cvs add file.txt
cvs add: Resurrecting file `file.txt' from revision 1.2.
U file.txt
cvs add: Re-adding file `file.txt' (in place of dead revision 1.3).
cvs add: use 'cvs commit' to add this file permanently

C:\foo>cvs commit -m "" file.txt
Checking in file.txt;
C:\jason\CVSROOT/foo/file.txt,v  <--  file.txt
new revision: 1.4; previous revision: 1.3
done

C:\foo>more file.txt
This is a test...

C:\jason\work\dev1\nrta\foo>dir
 Volume in drive C is Local Disk
 Volume Serial Number is 344F-1517

 Directory of C:\jason\foo

28/09/2008  05:15 PM    <DIR>          .
28/09/2008  05:15 PM    <DIR>          ..
28/09/2008  05:13 PM    <DIR>          CVS
28/09/2008  05:13 PM                19 file.txt
               1 File(s)             19 bytes
               3 Dir(s)  22,686,375,936 bytes free

明らかに彼は正しいことをしていますが、彼が観察している行動は異なっています。おそらく、CVS のバージョンによる違いがあります (私は Windows で 1.11.22 を使用しています)。

于 2008-09-28T07:25:57.740 に答える
1

これを行うための最も簡単な方法は、削除されたファイルと同じ場所にある CVS ディレクトリに 'cd' することです。

次に「Entries」というファイルを編集します。

削除されたファイルを表す行を見つけます。/ の後に「-」があることに注意してください。

「-」を削除し、ファイルを保存して出来上がり!

うん、でもうまくいく。

于 2014-02-14T02:43:02.450 に答える
0

これが私がすることです。同じ名前の空のファイルを作成し、それを追加してコミットし、古いバージョンを取得して再コミットするだけです。

于 2010-11-17T15:18:54.853 に答える