ファイルの履歴を可能な限り保持するために、SVN リポジトリ内でコピーして名前を変更している一連のファイルがあります。ソースからターゲットにコピーするだけでなく、新しい形式の新しいファイルと、別の場所にあるコンテンツの更新を既に持っています。新しいファイルの上に別の場所から新しいファイルの更新されたバージョンをコピーして、ファイルに変更を適用しています。したがって、シーケンスは次のようになります。
# Copy and rename the files within svn
svn cp <old-directory><old-file-name> <new-directory>/<new-filename>
# Copy and update version of the new file in place
cp <updated-directory>/<new-filename> <new-directory>/<new-filename>
次に、ファイルのステータスを確認すると、次のようになります。
A + <new-directory>/<new-filename>
これは、このファイルが移動されることを意味すると理解しています(コミット後)
ちなみに、移動ではなくコピーする理由は、コードがかなり重要であり、段階的に移動したいからです。
<old-directory>
が と同じ場合もある<new-directory>
ため、名前の変更と内部の変更のみです。これらのファイルに対して を実行するsvn log
と、通常のログ履歴が得られます。ただし、他のケースでは、ファイルをコピーするときに<new-directory>
存在せず、使用したsvnに新しいディレクトリを作成する必要がありました:
svn mkdir <new-directory>
これらのファイルとディレクトリは、次のようにも表示さA +
れます。
A <new-directory>
A + <new-directory>/<new-filename-one>
A + <new-directory>/<new-filename-two>
これらのファイルを実行しようとするとsvn log
、次のエラー メッセージが表示されます。
svn: Unable to find repository location for '<new-directory>/<new-filename>' in revision 0
ここで間違いを犯したかどうかはわかりません:svn mkdir
ファイルをディレクトリに追加する前にコミットする必要があったのでしょうか? おそらく、すべてをコミットした後に解決するのでしょうか? アンピックしなければならない穴に特に深く入りたくないので、まだファイルをコミットしていません。