SVN跨文件跟踪更改 我正在研究一个遗留C++项目,其中单个文件中有很多类,有些文件最终是8K+行。我计划将其中一些类移动到单独的文件中。该项目使用SVN。我想知道SVN是否能够跟踪这种变化的历史,因为如果不能,我可能不会进行重构
例如,我有3个类A B C的old.cpp。我想将其重构为A.cpp B.cpp C.cpp。如果我选择C.cpp的历史记录,我希望看到old.cpp中使用的类以及old.cpp中对C的所有更改。因为您在SVN中的项目-您将始终能够返回到原始版本。 我强烈建议在更改之前编写单元测试,这样您就可以在每次更改之后跟踪程序的健全性 我过去经历过这样的变化,我是如何做到的:SVN跨文件跟踪更改 我正在研究一个遗留C++项目,其中单个文件中有很多类,有些文件最终是8K+行。我计划将其中一些类移动到单独的文件中。该项目使用SVN。我想知道SVN是否能够跟踪这种变化的历史,因为如果不能,我可能不会进行重构,c++,svn,C++,Svn,例如,我有3个类A B C的old.cpp。我想将其重构为A.cpp B.cpp C.cpp。如果我选择C.cpp的历史记录,我希望看到old.cpp中使用的类以及old.cpp中对C的所有更改。因为您在SVN中的项目-您将始终能够返回到原始版本。 我强烈建议在更改之前编写单元测试,这样您就可以在每次更改之后跟踪程序的健全性 我过去经历过这样的变化,我是如何做到的: 在SVN中创建一个单独的分支 从该分支签出源 对于每个类,请执行以下步骤: 将类移动到单独的(新)文件而不更改它。自创建以来,您将
我从未尝试过使用单个文件(仅使用完整的文件夹,这基本上是分支),但在OrtoiseSVN中,您可以使用鼠标右键拖放文件。当您在显示的上下文菜单中删除文件(在同一工作文件夹中)时,请选择“SVN复制并重命名此处的版本项目”。在此之后(以及其他更改),提交工作副本 另一个选择是做同样的事情,但从存储库浏览器。与上一个选项的不同之处在于,这里的每个操作都会自动成为一个新版本。我喜欢第一种选择
复制文件后,对其进行编辑以删除无关内容。使用第一个选项,您可以在与复制相同的版本中进行复制。不能直接进行。我还没有尝试过,但您可以尝试执行svn复制,而不只是创建一个新文件(即svn复制,然后从源代码中删除“移动的”代码,从目标代码中删除所有其他内容)。从技术上讲,您也在使用此技术对单个文件进行分支。