SVN跟踪文件的更改

时间:2014-03-14 12:18:04

标签: c++ svn

我正在开发一个传统的C ++项目,其中单个文件中有许多类,而某些文件最终为8k +行。我打算将其中一些类移到单独的文件中。该项目使用SVN。我想知道SVN是否可以追踪这种变化的历史,因为如果不能重构,我可能不会进行重构。

作为一个例子,我有old.cpp有3个类A B C.我想把它重构为A.cpp B.cpp C.cpp。如果我选择C.cpp的历史,我希望看到以前在old.cpp中的类以及old.cpp中对C的所有更改。

2 个答案:

答案 0 :(得分:2)

我从未尝试过使用单个文件(仅使用完整文件夹,实际上是分支),但在TortoiseSVN中,您可以使用鼠标右键拖放文件。当您在显示的上下文菜单中删除文件(在同一工作文件夹中)时,选择“SVN复制并在此处重命名版本化项目”。之后(以及其他更改)提交工作副本。

另一个选择是做同样的事情,但是从存储库浏览器。与先前选项的不同之处在于,此处每个操作都自动为新修订。我更喜欢第一种选择。

复制文件后,编辑它以删除无关内容。使用第一个选项,您可以在与复制相同的修订版本中执行此操作。

答案 1 :(得分:1)

由于您的SVN项目 - 您始终可以返回原始版本。 我强烈建议在更改之前编写单元测试,这样您就可以在每次更改后跟踪程序的完整性。

我过去经历过这样的改变,在这里我是如何做到的:

  1. 在SVN中创建单独的分支
  2. 查看此分支的来源
  3. 对于每个班级,请执行以下步骤:

    1. 将类移动到单独的(新)文件而不更改它。自创建以来,您将能够控制SVN中的每个更改
    2. 将更改提交给SVN - 这样您就知道文件内容没有任何变化。
    3. 对新创建的文件进行必要的更改。
    4. 运行单元测试
    5. 提交更改
相关问题