gpt4 book ai didi

svn - 如何使用svn重命名文件?

转载 作者:行者123 更新时间:2023-12-03 05:15:39 25 4
gpt4 key购买 nike

当我尝试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

最佳答案

根据目标文件名是否已存在,行为会有所不同。这通常是一种安全机制,至少有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重命名文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17279947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com