使用Visual Studio和TortoiseSVN重命名文件

29
我使用Visual Studio编辑源代码,有时候会切换到Windows Explorer使用TortoiseSVN提交更改。这个过程对我来说很有效,并且我对它感到非常满意。然而,最近我开始频繁地重命名类和重新组织命名空间。我喜欢在Visual Studio中重命名和移动文件,因为它会自动更新项目文件。然而,当我提交更改时,我必须告诉TortoiseSVN旧文件已被删除,新文件已被添加,这并不完全正确,而且会破坏特定代码的历史记录。
所以我的问题是:当我在Visual Studio中重命名文件时,有没有办法告诉TortoiseSVN我这么做是为了保留文件的历史记录?
更新(16:30):
Ankhsvn似乎是显而易见的答案,但我喜欢现在的情况。听起来有些奇怪,但我喜欢TortoiseSVN没有集成在Visual Studio中。这可能是因为我有两个显示器,在第二个显示器上一直打开文件管理器。也许是因为我觉得Solution Explorer有点笨重。也许是因为我喜欢将代码编辑和版本控制视为软件开发的分离步骤。我不知道。

似乎AnkhSVN是你的答案,因为几乎所有的答案都提到了它,包括我的 :-) - Nelson Reis
2
Jakub,我完全同意你的看法。我尝试过许多用于VS的CVS和SVN插件,但最终还是回到了Tortoise。 - sbi
2
如果我可以的话,为不需要插件的解决方案提出建议,这是一个非常好的问题,值得点赞。虽然AnkhSVN比过去更好了,但它仍然无法替代TSVN。根据我的经验,在没有AnkhSVN的情况下工作比使用AnkhSVN更加高效。 - Scotty.NET
7个回答

34
如果您使用的是更新版本的TSVN(1.5.0之后的版本),您可以使用“repair moves”功能。我经常用它来处理类似的情况。

你保存了我的历史记录。非常感谢。 - Jakub Šturc
谢谢!你也保存了我的历史记录。 - Cybis
1
是的,我经常使用这个功能来避免在VS中重命名。但是这需要很多工作量,所以我会尝试使用AnkhSVN。只是我最近想到的一个想法... 想象一下,如果TSVN在提交对话框中有一个“建议重命名”功能,那将是非常棒的,也能大大节省时间! - Mark Whitfeld
谢谢Jeff,你让我的一天变得美好! - Martin

7
请查看http://ankhsvn.open.collab.net/。它会查找这些内容并适当处理更改,并直接在“解决方案资源管理器”中显示更改内容。此外,您无需返回资源管理器!我非常喜欢它!
没有理由阻止文件历史记录。这是源代码控制系统的全部意义。

但最好你切换到这个 :-) - Andrejs Cainikovs

3

我认为AnkhSVN可以胜任这项工作。 它是Visual Studio的免费SVN插件。 还有另一个叫做VisualSVN,但它是共享软件。


0
也许你可以在 Visual Studio 中使用 ankhsvn 插件来处理 svn。
或者还有其他类似的插件可供选择。

0
不应该在代码中进行文件移动/重命名,而是应该使用TortoiseSVN(即文件资源管理器)来完成。对于Visual Studio,有一些SVN插件可以满足你的需求。

1
没错。首先,将文件重命名以更改名称,然后用更新的文件替换它,最后提交。这样 SVN 就知道已经完成了 2 次操作。 - Andrejs Cainikovs

0
据我所知,当你使用TortoiseSVN在源代码控制范围内重命名文件时,它也会将重命名的文件作为新文件删除并添加。

请参见此处:

提交父文件夹

由于重命名和移动是通过删除后添加完成的[...]


实际上,这是通过复制和删除来完成的。这样SVN就可以保留(复制)历史记录。 - sbi

0

我不知道你如何实现你所要求的,但我认为如果你开始使用AnkhSVN,你可以解决你的问题。

这是一个很棒的工具,它将Subversion集成到Visual Studio中,你可以从VS IDE中进行提交。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接