我正在开发一个传统的C ++项目,其中单个文件中有许多类,而某些文件最终为8k +行。我打算将其中一些类移到单独的文件中。该项目使用SVN。我想知道SVN是否可以追踪这种变化的历史,因为如果不能重构,我可能不会进行重构。
作为一个例子,我有old.cpp有3个类A B C.我想把它重构为A.cpp B.cpp C.cpp。如果我选择C.cpp的历史,我希望看到以前在old.cpp中的类以及old.cpp中对C的所有更改。
答案 0 :(得分:2)
我从未尝试过使用单个文件(仅使用完整文件夹,实际上是分支),但在TortoiseSVN中,您可以使用鼠标右键拖放文件。当您在显示的上下文菜单中删除文件(在同一工作文件夹中)时,选择“SVN复制并在此处重命名版本化项目”。之后(以及其他更改)提交工作副本。
另一个选择是做同样的事情,但是从存储库浏览器。与先前选项的不同之处在于,此处每个操作都自动为新修订。我更喜欢第一种选择。
复制文件后,编辑它以删除无关内容。使用第一个选项,您可以在与复制相同的修订版本中执行此操作。
答案 1 :(得分:1)
由于您的SVN项目 - 您始终可以返回原始版本。 我强烈建议在更改之前编写单元测试,这样您就可以在每次更改后跟踪程序的完整性。
我过去经历过这样的改变,在这里我是如何做到的:
对于每个班级,请执行以下步骤: