重命名SVN中的多个文件

时间:2018-11-13 00:47:50

标签: powershell svn

有没有一种方法可以轻松地重命名SVN中位于单个文件夹中的多个文件?最好使用一些基本的命令,例如命令行或powershell命令。

例如,如果我只是在Windows资源管理器中重命名它们,我将使用Get-ChildItem | Rename-Item -NewName {$_.name -replace "Rev A","RevB"}之类的powershell命令将所有文件名中的“ Rev A”更改为“ Rev B”。有没有办法做类似的事情并使SVN识别它?

2 个答案:

答案 0 :(得分:1)

使用SVN move command,您可以重命名文件(基本上是正在移动)。 PowerShell脚本可能类似于:

Get-ChildItem | ForEach-Object {
    svn mv $_.Name $_.Name.replace("Rev a", "Rev B")
}

正如@salvolds所说,您应该仔细选择文件名。更为重要的是,您应该谨慎使用版本控制系统,但我不会为此判断。

最后是文件删除和新添加。

答案 1 :(得分:0)

如果您直接在文件系统中更改文件的名称(例如,将file-revA更改为file-revB)(如您的脚本所建议),SVN将识别出file-revA的删除。然后,您必须将新的file-revB添加到SVN中,以使SVN知道它。

请注意:从SVN角度来看,file-revB是一个全新的文件,因此,您只会看到他的历史记录(从将其添加到SVN开始)(您将失去与以前的file-revA的“链接” )。

为避免丢失历史记录,可以使用特定的svn move命令。

无论如何,您都应该在项目开始时仔细选择文件名,或者最好仅在真正需要时或在历史记录无关紧要的情况下重命名它们,以免在读取历史记录时遇到麻烦。