乌龟svn质量重命名文件合并

乌龟svn质量重命名文件合并,svn,tortoisesvn,Svn,Tortoisesvn,我有一个文件夹,其中一位同事必须重命名其中的所有文件。该文件夹大约有12000个文件,这些文件已通过重命名工具重命名。现在我有一个问题,乌龟SVN无法识别文件,因为现在文件名不同了。这就引出了我的问题:我能否告诉subversion文件已重命名,以便它在文件夹中查找匹配的文件?内容没有改变,只有名字 我知道有一种方法可以告诉乌龟,如果你同时选择丢失的条目和新文件,并选择“修复移动”,文件被重命名。但这只适用于两个文件。我有12000个文件,没有人会手动重命名它们。文件名只是部分更改。e、 g.:

我有一个文件夹,其中一位同事必须重命名其中的所有文件。该文件夹大约有12000个文件,这些文件已通过重命名工具重命名。现在我有一个问题,乌龟SVN无法识别文件,因为现在文件名不同了。这就引出了我的问题:我能否告诉subversion文件已重命名,以便它在文件夹中查找匹配的文件?内容没有改变,只有名字

我知道有一种方法可以告诉乌龟,如果你同时选择丢失的条目和新文件,并选择“修复移动”,文件被重命名。但这只适用于两个文件。我有12000个文件,没有人会手动重命名它们。文件名只是部分更改。e、 g.:data.00001.house.txt->data.house.txt

任何帮助都将不胜感激。 问候语,
Florian

我想你必须重新访问你同事的重命名工具。希望是.bat文件或可以修改的文件。
更改它,使其正确使用SVN MOVE命令

i.e. instead of:
mv <oldname> <newname>
use:
SVN MOVE <oldname> <newname>
即代替:
mv
使用:
SVN移动
您会注意到,这不是一个真正的乌龟解决方案,而是一个通用的Subversion解决方案,使用Subversion命令行“svnmove”命令。 见:


在小范围内对其进行测试,以确保其正常工作。然后删除他所有的坏文件,恢复他的更改,重新运行新的实用程序,签入,就完成了。

我想你必须重新访问你同事的重命名工具。希望是.bat文件或可以修改的文件。
更改它,使其正确使用SVN MOVE命令

i.e. instead of:
mv <oldname> <newname>
use:
SVN MOVE <oldname> <newname>
即代替:
mv
使用:
SVN移动
您会注意到,这不是一个真正的乌龟解决方案,而是一个通用的Subversion解决方案,使用Subversion命令行“svnmove”命令。 见:


在小范围内对其进行测试,以确保其正常工作。然后删除他所有的坏文件,恢复他的更改,重新运行新的实用程序,签入,就完成了。

这些文件是如何重命名的?下面是对邪恶之路的一种命令行描述:

copy %FILE% %DIR%
svn delete %FILE%
svn add %DIR%\%FILE%
svn commit -m"Moved %FILE% to %DIR."
在这种方法中,文件被复制到新位置,旧文件被删除,新文件被添加。问题是,要颠覆旧的已删除文件与新删除的文件没有关系。与此类似:

svn delete --keep-local foo
svn add foo
svn commit -m"Deleted and added foo"
我删除了一个名为
foo
(并保留了本地副本)的文件,然后将其添加回。对于Subversion,即使两个
foo
文件位于同一目录中,甚至具有相同的内容,但它们是两个不同的文件,不共享相同的历史记录

要确保重命名工具正在执行的操作是:

svn move %FILE% %DIR%
svn commit -m"Moved %FILE% to %DIR"
您的重命名工具是如何工作的?这是64000美元的问题。最好的做法是记录其中一个重命名的文件(使用详细模式,并确保未设置“复制时停止”),然后查看历史记录是否返回到旧的位置和名称

如果没有,您可能需要重新命名。这意味着撤消初始重命名,提交更改,然后以正确的方式重新重命名

使用命令行工具,不要依赖第三方工具

假设重命名发生在版本12345中:

C> svn merge -c -12345 .
这将撤消更改12345


现在,您必须重命名每个文件。我不是批处理专家,但对于每个文件,请使用
svn move
进行重命名。

文件是如何重命名的?下面是对邪恶之路的一种命令行描述:

copy %FILE% %DIR%
svn delete %FILE%
svn add %DIR%\%FILE%
svn commit -m"Moved %FILE% to %DIR."
在这种方法中,文件被复制到新位置,旧文件被删除,新文件被添加。问题是,要颠覆旧的已删除文件与新删除的文件没有关系。与此类似:

svn delete --keep-local foo
svn add foo
svn commit -m"Deleted and added foo"
我删除了一个名为
foo
(并保留了本地副本)的文件,然后将其添加回。对于Subversion,即使两个
foo
文件位于同一目录中,甚至具有相同的内容,但它们是两个不同的文件,不共享相同的历史记录

要确保重命名工具正在执行的操作是:

svn move %FILE% %DIR%
svn commit -m"Moved %FILE% to %DIR"
您的重命名工具是如何工作的?这是64000美元的问题。最好的做法是记录其中一个重命名的文件(使用详细模式,并确保未设置“复制时停止”),然后查看历史记录是否返回到旧的位置和名称

如果没有,您可能需要重新命名。这意味着撤消初始重命名,提交更改,然后以正确的方式重新重命名

使用命令行工具,不要依赖第三方工具

假设重命名发生在版本12345中:

C> svn merge -c -12345 .
这将撤消更改12345


现在,您必须重命名每个文件。我不是批处理专家,但对于每个文件,请使用
svn move
进行重命名。

这几乎是命令行中“svn”修复移动的重复“一点也不”。我没有选择做svn mv。因为我只更改了文件名。此外,提到的解决方案只针对一个文件,但我有12000个。是否可以检查存储库的早期版本(在重命名之前),并以某种方式比较两个工作副本?编辑:这也可能是相关的:@DARKHalf,我的观点是他们有同样的问题,似乎发现了恢复的方法。基本上,你必须模仿乌龟的“修复动作”,然后做12000次。例如,您是否可以签出另一份副本,然后使用用于重命名的相同工具,生成重命名脚本,而不是执行重命名?@james:是的,这可能是解决此问题的唯一方法。问题是我在寻找一个现有的工具。似乎我必须自己开发/编写一个脚本才能解决这个问题。这几乎是“从命令行”复制的“SVN”修复动作“根本不是”。我没有选择做svn mv。因为我只换了一份