[解決済み] svnを使用してファイル名を変更するには?
2023-04-20 08:16:24
質問
私が
svn mv old_file_name new_file_name
を試すと、次のようになります。
svn: Path 'new_file_name' is not a directory
正しい方法は何でしょうか?(すみません、些細なことのようですが、行き詰まっています)。
PS.svnバージョン1.6.11を使用しています。
EDIT
の場合のみ、このエラーが発生するようです。
new_file_name
が現在バージョンコントロール下にあるファイルの名前を参照している場合のみ、このエラーが発生するようです。この場合、もちろん、私は単に
mv old_file_name new_file_name
svn delete old_file_name
どのように解決するのですか?
対象となるファイル名がすでに存在するかどうかで、動作が異なります。これは通常安全機構であり、少なくとも 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 stat
の出力では
R
はファイルが置き換えられたこと、そしてそのファイルに履歴があることを示します。
対象ファイルが既に存在する ローカルに (バージョン管理されていない)。
この場合、ローカル ファイルのコンテンツは失われます。それで問題ないなら、既存のファイルの名前を変更する前に、そのファイルをローカルで削除することができます。
$ 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...
関連
-
[解決済み] コマンドプロンプトからSVNクリーンアップを実行する
-
[解決済み] SVNエラー - 作業コピーではありません
-
[解決済み] コミット前のSVNアンドゥ削除
-
[解決済み] 履歴のある SVN リポジトリを新しい Git リポジトリに移行するにはどうすればよいですか?
-
[解決済み] svn log -v' のように 'git log' にファイル名を表示させる方法
-
[解決済み] SVNでディレクトリを無視するには?
-
[解決済み] SVNで作業コピーXXXがロックされ、クリーンアップに失敗する。
-
[解決済み] あるSubversionのリポジトリから別のリポジトリに1つのフォルダを移動するにはどうしたらいいですか?
-
[解決済み] git-svnはgitコマンドではない?
-
[解決済み] Subversionのステータスシンボル「~」は何を意味しているのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Subversionでファイルの削除を取り消す簡単な方法は何ですか?
-
[解決済み] svn diff で2つのリビジョン間の非空白行の変更点のみを表示させる方法
-
[解決済み] ブランチをトランクにマージする場合、「svn merge --reintegrate」と「svn merge without reintegrate」はどう違うのですか?
-
[解決済み] Subversionでファイルを無視するにはどうしたらいいですか?
-
[解決済み] Subversionが管理するファイル名の@文字をエスケープするには?
-
[解決済み] svnログに特定のユーザのコミットを表示するには?
-
[解決済み] SubversionのリポジトリをGitのサブモジュールとして持つことは可能ですか?
-
[解決済み] ブランチをトランクにマージする
-
[解決済み] Subversionで2つの特定のリビジョンの違いを出力するにはどうしたらいいですか?
-
[解決済み] SVN+SSHでssh-addを毎回する必要はない?(Mac OS)