90

私がしようとするとsvn mv old_file_name new_file_name、私は得る

 svn: Path 'new_file_name' is not a directory

正しい方法は何ですか?(申し訳ありませんが、これはとても些細なことのようですが、私は立ち往生しています)。

PS。svn バージョン 1.6.11 を使用

編集new_file_name現在バージョン管理されているファイルの名前を参照している場合にのみ、このエラーが発生するようです。この場合、もちろん、私は簡単に

 mv old_file_name new_file_name
 svn delete old_file_name
4

4 に答える 4

117

対象のファイル名が既に存在するかどうかによって動作が異なります。これは通常、安全メカニズムであり、少なくとも 3 つの異なるケースがあります。

ターゲット ファイルが存在しませ:

この場合svn mv、次のように動作するはずです。

$ svn mv old_file_name new_file_name
A         new_file_name
D         old_file_name
$ svn stat
A  +    new_file_name
        > moved from old_file_name
D       old_file_name
        > moved to new_file_name
$ svn commit
Adding     new_file_name
Deleting   old_file_name
Committing transaction...

ターゲット ファイルは既にリポジトリに存在します:

この場合、ソース ファイルの名前を変更する前に、ターゲット ファイルを明示的に削除する必要があります。これは、次のように同じトランザクションで実行できます。

$ svn mv old_file_name new_file_name 
svn: E155010: Path 'new_file_name' is not a directory
$ svn rm new_file_name 
D         new_file_name
$ svn mv old_file_name new_file_name 
A         new_file_name
D         old_file_name
$ svn stat
R  +    new_file_name
        > moved from old_file_name
D       old_file_name
        > moved to new_file_name
$ svn commit
Replacing      new_file_name
Deleting       old_file_name
Committing transaction...

の出力の はsvn statRファイルが置き換えられたこと、およびファイルに履歴があることを示します。

ターゲット ファイルは既にローカルに存在します(バージョン管理されていません):

この場合、ローカル ファイルの内容は失われます。問題がなければ、既存のファイルの名前を変更する前に、ファイルをローカルで削除できます。

$ svn mv old_file_name new_file_name 
svn: E155010: Path 'new_file_name' is not a directory
$ rm new_file_name 
$ svn mv old_file_name new_file_name 
A         new_file_name
D         old_file_name
$ svn stat
A  +    new_file_name
        > moved from old_file_name
D       old_file_name
        > moved to new_file_name
$ svn commit
Adding         new_file_name
Deleting       old_file_name
Committing transaction...
于 2013-06-24T20:26:24.950 に答える
6

このメッセージは、大文字と小文字を区別しないファイル システム (Mac など) を使用していて、名前を大文字にしようとしている (または大文字と小文字を変更しようとしている) 場合に表示されます。その場合、3 番目のダミーの名前に名前を変更する必要があります。

svn mv file-name file-name_
svn mv file-name_ FILE_Name
svn commit
于 2016-10-19T09:34:08.830 に答える