1

これは、「SVN のリビジョンから 1 つのファイルを削除するにはどうすればよいですか?」 の続きの質問ですが、おそらく非常に異なる答えがあり、他の人が答えを知ることで恩恵を受けると信じているためです。(答えはまだわかりません。)

前の質問に回答したところ、SVN からリビジョンを削除できないことがわかりました。2 番目に最適な解決策は、SVN からファイルを削除し、コミットしてから、ファイルを追加して再度コミットすることでした。

元のファイルのリビジョン履歴がなくなっていることを確認したいと思います。したがって、「削除されてから SVN に再送信されたファイルのリビジョン履歴を見つけるにはどうすればよいですか? 」という質問に対する答えは、できないということであると期待しています。

4

4 に答える 4

3

Subversion からリビジョンを削除できないと思う理由は何ですか? あなたの他の質問 ( svndumpfilter) に与えられた解決策は、まさにそれを行います (パラメーター--drop-empty-revsとを参照してください--renumber-revs)! そして、リビジョンがなくなると、リビジョン履歴を取得する方法がないのは明らかです。なぜなら、そもそもそこになかったからです。

于 2008-08-29T02:42:13.340 に答える
2

シンプルな

svn log -v [folder]

追加と削除をすばやく閲覧できます。

------------------------------------------------------------------------
r14 | kame | 2008-08-29 04:23:43 +0200 (ven., 29 aoû2008) | 1 line
Chemins modifié :
   A /a.txt

Readded a
------------------------------------------------------------------------
r13 | kame | 2008-08-29 04:23:24 +0200 (ven., 29 aoû2008) | 1 line
Chemins modifié :
   D /a.txt

Delete a
------------------------------------------------------------------------
r12 | kame | 2008-08-29 04:23:06 +0200 (ven., 29 aoû2008) | 1 line
Chemins modifié :
   A /a.txt

svn log はファイルを表示せず、svn diff は古いリビジョンが存在しないふりをしますが、古いリビジョンを対象とする svn checkout は喜んで古いファイルを提供します。

于 2008-08-29T02:33:39.677 に答える
2

簡単な答え:できます

長い答え:

残念ながら (あなたにとってはそうかもしれませんが、ほとんどの人にとってはそうではないかもしれませんが)、削除されたファイルの改訂履歴はまだ残っています。

次に例を示します。

$ touch one
$ svn add one
$ svn ci -m "Added file one"
$ date >> one 
$ svn ci -m "Updated file one"
$ date >> one
$ svn ci -m "Updated file one again"
$ svn log file:///repos/one

------------------------------------------------------------------------
r3 | andrewr | 2008-08-29 12:27:10 +1000 (Fri, 29 Aug 2008) | 1 line

Updated file one again
------------------------------------------------------------------------
r2 | andrewr | 2008-08-29 12:26:50 +1000 (Fri, 29 Aug 2008) | 1 line

Updated file one
------------------------------------------------------------------------
r1 | andrewr | 2008-08-29 12:25:07 +1000 (Fri, 29 Aug 2008) | 1 line

Added file one
------------------------------------------------------------------------

$ svn delete one
$ svn ci -m "Deleted file one"
$ svn up
$ touch one
$ svn add one
$ svn ci -m "Adding file one back in"
$ svn log file:///repos/one

------------------------------------------------------------------------
r5 | andrewr | 2008-08-29 12:29:13 +1000 (Fri, 29 Aug 2008) | 1 line

add one back
------------------------------------------------------------------------

動作しているように見えますが (古い履歴は消えています)、古いリビジョンでファイルを要求すると、削除されたファイルの履歴が取得されます。

$ svn log -r 3:1 file:///repos/one

------------------------------------------------------------------------
r3 | andrewr | 2008-08-29 12:27:10 +1000 (Fri, 29 Aug 2008) | 1 line

Updated file one again
------------------------------------------------------------------------
r2 | andrewr | 2008-08-29 12:26:50 +1000 (Fri, 29 Aug 2008) | 1 line

Updated file one
------------------------------------------------------------------------
r1 | andrewr | 2008-08-29 12:25:07 +1000 (Fri, 29 Aug 2008) | 1 line

Added file one
------------------------------------------------------------------------
于 2008-08-29T02:43:37.080 に答える
1

私はあなたができないと言ったでしょう-SVNの目には新しいファイルが作成され、したがってリビジョンツリーが作成されました。

古いツリーを個別に復元することは可能かもしれませんが (実際の削除を管理したのか、SVN 削除だけを管理したのかは不明です)、古いリビジョン ツリーと新しいリビジョン ツリーの間にリンクはありません。

于 2008-08-29T02:24:32.913 に答える